Verilog HDL 设计的不同描述方式:门级描述、行为级描述、数据流描述
数据流描述通过使用assign语句进行连续型赋值运算。主要针对于wire型变量。
行为级描述:把系统同级、算法级、以及RTL级三种描述统称为行为级描述方式。最常见的是使用always过程语句进行实现,此外通常配套使用if~else条件语句以及case语句。特点:当对一个硬件进行描述时,完全不用考虑电路的具体组成结构,只需要对输入输出信号的行为进行描述即可。
例子:2to1选择器
module MUX2to1(s,x,y,q);//端口是声明
input s,x,y;//输入端口
output q;//输出端口
reg q;
//主程序二选一
always @(s,x,y)
if(s==1)
q=x;
else
q=y;
endmodule
实验结果:
选择电路的设计
组合逻辑电路的系统设计中,最常用的电路是选择电路,选择电路的编写有三种,分别为if~else语句、case语句与多路选择器。
例子:4位比较器
module Com_4bit(a,b,max,eq);
//输入端口配置
input [3:0]a;
input [3:0]b;
//输出端口
output eq;//等于1,则a=b,否则不等
output [3:0] max;//输出最大数
//寄存器设置
reg [3:0]max;
reg eq;
//主程序设计
always @(a,b)
if(a>b)
begin
max<=a;
eq<=1'b0;
end
else if(a<b)
begin
max<=b;
eq<=0;
end
else
begin
max<=a;
eq<=1'b1;
end
endmodule
实验结果: