组合逻辑电路
1:与门
assign c=a&b;
always@(*)
c=a&b;
2:或门
assign c=a|b;
always@(*)
c=a|b;
3:非门
assign c=~a;
always@(*)
c=~a;
4.比较器
assign c=(a>=b)?1'b1:1'b0;
always@(*)
if(a>=b)
c=1'b1;
else
c=1'b0;
5.选择器
assign c=(a>=b)?d:e;
always@(*)
if(a>=b)
c=d;
else
c=e;
6.译码器
always@(*)
case(a)
2'd0:c=4'b0001;
2'd1:c=4'b0010;
2'd2:c=4'b0100;
2'd3:c=4'b1000;
endcase
7.编码器
always@(*)
case(a)
4'b0001:c=2'd0;
4'b0010:c=2'd1;
4'b0100:c=2'd2;
4'b1000:c=2'd3;
endcase
8.加法器
assign c=a+b;
时序逻辑D触发器
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
q<=1'b0;
else
q<=d;
end