2.1. Thit k mch gii m 2.1.1. Thit k mch gii m 2 ng sang 4 ng Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
module decoder (out,i); (*LOC="A12,B11,D11,C11"*) output [3:0] out; (*LOC="J12,J11"*) input [1:0] i; reg [3:0] out; always @(i) begin if (i=='b00) out='b0001; if (i=='b01) out='b0010; if (i=='b10) out='b0100; if (i=='b11) out='b1000; end endmodule 2.1.2. Thit k mch gii m 3 ng sang 8 ng vi ng ra tch cc mc 0, 1 ng vo cho php E Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh module decoder (out,i,e); (*LOC="B14,A14,B13,A13,A12,B11,D11,C11"*) output [7:0] out; (*LOC="H16,J12,J11"*) input [2:0] i; (*LOC="H13"*) input e; reg [7:0] out; always begin if(e) begin if (i=='b000) out='b11111110; if (i=='b001) out='b11111101; if (i=='b010) out='b11111011; if (i=='b011) out='b11110111; if (i=='b100) out='b11101111; if (i=='b101) out='b11011111; if (i=='b110) out='b10111111; if (i=='b111) out='b01111111; end else out='b11111111; end endmodule 2.1.2. Thit k mch m ha t 4 ng sang 2 ng Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
module encoder (out,i); (*LOc="D11,C11"*) output [1:0] out; (*LOC="H13,H16,J12,J11"*) input [3:0] i; reg [1:0] out; always begin if (i=='b0001) out='b00; if (i=='b0010) out='b01; if (i=='b0100) out='b10; if (i=='b1000) out='b11; end endmodule 2.2. Thit k mch a hp gii a hp 2.2.1. Thit k mch a hp 4 ng vo, 1 ng ra v 2 ng la chn Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
module mux4 (out,i,s); (*LOc="C11"*) output out; (*LOC="H13,H16,J12,J11"*) input [3:0] i; (*LOC="E14,G12"*) input [1:0] s; reg out; always begin if (s=='b00) out=i[0]; if (s=='b01) out=i[1]; if (s=='b10) out=i[2]; if (s=='b11) out=i[3]; end endmodule 2.2.2. Thit k mch gii a hp 1 ng vo, 4 ng ra, 2 ng la chn
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh module demux4 (out,i,s); (*LOc="A12,B11,D11,C11"*) output [3:0] out; (*LOC="J11"*) input i; (*LOC="H16,J12"*) input [1:0] s; reg out; always begin if (s=='b00) out[0]=i; if (s=='b01) out[1]=i; if (s=='b10) out[2]=i; if (s=='b11) out[3]=i; end endmodule Bi Tp 1. Thiet ke mach giai ma 2 ng sang 4 ng vi ngo ra tch cc mc thap va co mot tn hieu cho phep E tch cc mc cao. 2. Thiet ke mach giai ma 2 ng sang 4 ng vi ngo ra tch cc mc thap va co mot tn hieu cho phep E1 tch cc mc cao, va mot tn hieu cho phep E2 tch cc mc thap. 3. Thiet ke mach giai ma ben trong co 4 mach giai ma 2 ng sang 4 ng vi ngo ra tch cc mc thap. 4. Thiet ke mach giai ma 3 ng sang 8 ng vi ngo ra tch cc mc thap va co mot tn hieu cho phep E1 tch cc mc cao, va mot tn hieu cho phep E2 tch cc mc thap. 5. Thiet ke mach ma hoa 8 ng sang 3 ng vi cac ngo vao tch cc mc thap. 6. Thiet ke mach ma hoa 8 ng sang 3 ng vi cac ngo vao tch cc mc cao. 7. Thiet ke mach a hp 8 ngo vao, 1 ngo ra va 3 ngo la chon. 8. Thiet ke mach giai a hp 1 ngo vao, 8 ngo ra va 3 ngo la chon. 9. Thiet ke mach so sanh 2 so 4 bit A va B va co 3 led hien th LEDLH, LEDBA, LEDNH. Neu A>B th LEDLH sang, neu A=B th LEDBA sang, neu A<B th LEDNH sang. 10. Thiet ke mach chuyen oi so nh phan 8 bit thanh so BCD. 11. Thiet ke mach kiem tra chan le cua mot so nh phan 8 bit, neu la so chan th en chan sang, neu la so le th en le sang. 12. Thiet ke mach kim tra mt s nh phn 8 bit nu s bit 1 nhiu hn 4 th n A sng, n B tt, ngc li th n A tt, n B sng. 13. Thiet ke mach kim tra mt s nh phn 8 bit bit cc trng thi l s nh phn chn hay l, ln hn 100, bng 100 hay nh hn 100. 3. Thit k cc loi flipflop 3.1. FlipFlop JK Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Bc 1: V s khi ca mch
Bc 2: Lp bng trng thi
Bc 3: Vit chng trnh
Mch m nh phn 8 bit m ln module up_counter (out,enable,clk,reset); (*LOC="B14,A14,B13,A13,A12,B11,D11,C11"*) output [7:0] out; (*LOC="J11"*) input enable; (*LOC="B8"*) input clk; (*LOC="J12"*) input reset; reg [7:0] out; reg [31:0] out1; always @(posedge clk) begin if (reset) out = 'b0 ; else if (enable) out1 = out1 + 1; if(out1=='d10000000) begin out=out + 1; out1='d0; end end endmodule Mch m nh phn 8 bit m ln/ m xung module up_counter (out,enable,clk,reset,ud); (*LOC="B14,A14,B13,A13,A12,B11,D11,C11"*) output [7:0] out; (*LOC="J11"*) input enable; (*LOC="B8"*) input clk; (*LOC="J12"*) input reset; (*LOC="h16"*) input ud; reg [7:0] out; reg [31:0] out1; always @(posedge clk) begin if (reset) out = 'b0 ; else if (enable) begin if(ud) begin out1 = out1 + 1; if(out1=='d10000000) begin out=out + 1; out1='d0; end end else begin out1 = out1 + 1; if(out1=='d10000000) begin out=out - 1; out1='d0; end end end end endmodule mch