Verilog的数据流、行为、结构化与RTL级描述

本文介绍了Verilog语言的三种基本描述方式:数据流、行为和结构化。数据流描述通过assign语句模拟组合逻辑,行为描述使用always和initial块描述信号行为,结构化描述则通过实例化模块构建设计的层次结构。RTL级描述关注数据在寄存器层次的流动,适合综合成电路,而行为级描述主要用于验证仿真,不考虑综合。
摘要由CSDN通过智能技术生成

Verilog语言可以有多种方式来描述硬件,同时,使用这些描述方式,又可以在多个抽象层次上设计硬件,这是Verilog语言的重要特征。

  在Verilog语言中,有以下3种最基本的描述方式:

  • 数据流描述:采用assign连续赋值语句
  • 行为描述:使用always语句或initial语句块中的过程赋值语句(推荐掌握)
  • 结构化描述:实例化已有的功能模块或原语

  以一个4位全加器为例:

 

数据流描述
行为描述
结构化描述
module Full_Add_4b_1( A, B, Cin, Sum, Cout ); 
input[3:0] A; input[3:0] B; input Cin; output[3:0] Sum; output Cout; 
 assign {Cout, Sum} = A + B + Cin; 
 endmodule
module Full_Add_4b_2( A, B, Cin, Sum, Cout );
input[3:0] A; 
input[3:0] B;
input Cin; 
output[3:0] Sum; output Cout; 
reg [3:0] Sum; 
reg Cout; 
 always @(A or B or Cin) begin {Cout, Sum} <= A + B + Cin;
 end endmodule
`include "Full_Add_4b_1.v" 
 module Full_Add_4b_3( A, B, Cin, Sum, Cout ); 
input[3:0] A; 
input[3:0] B; 
input Cin;
output[3:0] Sum; 
output Cout; //实例化全加器 Full_Add_4b_1 FA0( A, B, Cin, Sum, Cout ); 
endmodule
4位全加器.jpg
 




  下面逐一对这些描述方式进行介绍:

 

  数据流描述

  在数字电路中,信号经过组合逻辑时会类似于数据流动,即信号从输入流向输出,并不会在其中存储。当输入发生变化时,总会在一定时间以后体现在输出端。同样,我们可以模拟数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值