Verilog HDL 编程

半加器:

P59:

1 module text (A,B,SO,CO);
2     
3     input A,B;
4     output SO,CO;
5     assign SO = A ^ B;
6     assign CO = A & B;
7     
8 endmodule 

RTL电路:

 

四选一多路选择器

P64:

 1 module text (a,b,c,d,s1,s0,y);
 2     
 3     input a,b,c,d,s1,s0;
 4     output y;
 5     reg    y;
 6     
 7     always @ (a,b,c,d,s1,s0,y)
 8         begin    :    MUX41        //语句块开始 
 9             case({s1,s0})
10                 2'b00:    y<=a;
11                 2'b01:    y<=b;
12                 2'b10:    y<=c;
13                 2'b11:    y<=d;
14                 default: y<=a;
15             endcase
16         end
17         
18 endmodule 

RTL:

P69:

 1 module text (a,b,c,d,s1,s0,y);
 2     
 3     input a,b,c,d,s1,s0;
 4     output y;
 5     //    reg    y;    assign变量类型为wire
 6     wire [1:0] SEL;
 7     wire AT,BT,CT,DT;
 8     
 9     assign SEL = {s1,s0};
10     assign AT = (SEL == 2'd0);
11     assign BT = (SEL == 2'd1);
12     assign CT = (SEL == 2'd2);
13     assign DT = (SEL == 2'd3);
14     
15     assign y = (a&AT)|(b&BT)|(c&CT)|(d&DT);
16         
17 endmodule 

RTL:

 

posted @ 2017-12-25 22:19  T丶jl  阅读(423)  评论(0编辑  收藏  举报