Verilog HDL组合电路设计
组合电路的特点是:电路中任意时刻的稳态输出仅仅取决于该时刻的输入,而与电路原来的状态无关。
组合电路的设计需要从以下几个方面考虑:
1.所用的逻辑器件数目最少,器件的种类最少,且器件之间的连线最简单,这样的电路称为“最小化”电路;
2.其次,为了满足速度需求,应使级数尽量少,以减少门电路的延迟,电路的功耗应尽可能的小,工作时稳定可靠;
描述组合逻辑电路有四种方式:结构描述,逻辑代数,真值表,抽象描述。
举例说明
例:设计一个3个裁判的表决电路,当两个或两个以上裁判同意时,判决器输出“1”,否则输出“0”。
方法一:真值表方式
真值表是对电路功能最直接和简单的描述方式。
module desingn(OUT,A,B,C);
output OUT;
input A,B,C;
reg OUT;
always@(A or B or C)
case ({A,B,C})
3’b000:OUT<=0;
3’b001:OUT<=0;
3’b010:OUT<=0;
3’b100:OUT<=0;
3’b011:OUT<=1;
3’b101:OUT<=1;
3’b110:OUT<=1;
3’b111:OUT<=1;
endcase
endmodule
方法二:逻辑代数方式
将真值表用卡诺图表示,然后化简电路,得出逻辑函数表达式。
module desingn(OUT,A,B,C);
output OUT;
input A,B,C;
assign OUT=(A&b)|(B&C)|(A&C);
endmodule
方法三、结构描述方式
结构描述方式是对电路最直接的表示。
module desingn(OUT,A,B,C);
output OUT;
input A,B,C;
and U1 (w1,A,B);
and U2 (w2,B,C);
and U3 (w3,A,C);
or U4 (OUT,w1,w2,w3);
endmodule
方法四:抽象描述方式
采用抽象描述进行电路设计的方法,直接从电路功能出发,编写代码。
module desingn(OUT,A,B,C);
output OUT;
input A,B,C;
wire [1:0] sum;
reg OUT;
assign sum=A+B+C; //加法器
always @(sum)
if (sum>1) OUT=1; //数据比较器
else OUT=0;
endmodule
具体例子,待更新。