网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

Verilog HDL行为建模--- 过程赋值语句

7.3 过程赋值语句
Verilog HDL 中提供两种过程赋值语句 initial 和 always 语句,用这两种语句来实现行为的建
模。这两种语句之间的执行是并行的,即语句的执行与位置顺序无关。这两种语句通常与语句块
(begin ....end)相结合,则语句块中的执行是按顺序执行的。

1. initial 语句
initial 语句只执行一次,即在设计被开始模拟执行时开始(0时刻)。通常只用在对设计进行
仿真的测试文件中,用于对一些信号进行初始化和产生特定的信号波形。
语法如下:(大家只要先有个概念就可以)

initial
[timing_control] procedural_statement
procedural_statement 是下列语句之一:
procedural_assignment (blocking or non-blocking ) / / 阻塞或非阻塞性过程

赋值语句/ /
procedural_continuous_assignment
conditional_statement
case_statement
loop_statement
wait_statement
disable_statement
event_trigger
task_enable (user or system)

事例如上产生一个信号波形:

initial

begin
#2 Stream = 1;
#5 Stream = 0;
#3 Stream = 1;
#4 Stream = 0;
#2 Stream = 1;
#5 Stream = 0;


end

2004-08-16 第36页,共41页
版权所有,侵权必究


绝密
Verilog HDL 入门教程请输入文档编号

2. always 语句
always 语句与initial 语句相反,是被重复执行,执行机制是通过对一个称为敏感变量表的事件
驱动来实现的,下面会具体讲到。always 语句可实现组合逻辑或时序逻辑的建模。

例[1]:

initial

Clk = 0 ;

always
#5 Clk = ~Clk;
因为always 语句是重复执行的,因此,Clk 是初始值为0 的,周期为10 的方波。


例[2] D 触发器

always @ ( posedge Clk or posedge Rst )

begin

if Rst

Q <= ‘ b 0;

else

Q <= D;

上面括号内的内容称为敏感变量,即整个always 语句当敏感变量有变化时被执行,否则不执
行。因此,当Rst 为1 时,Q被复位,在时钟上升沿时,D被采样到Q。有@ 的用来描述一个时序器
件。

例[3] 2 选一的分配器
always @( sel ,a ,b)
C = sel ? a :b;
这里的sel ,a,b 同样称为敏感变量,当三者之一有变化时,always 被执行,当sel 为 1 ,C被
赋值为a ,否则为b 。描述的是一个组合逻辑 mux 器件。

注意以下几点:

1、对组合逻辑的always 语句,敏感变量必须写全,敏感变量是指等式右边出现的所有标识符
如上的a,b和条件表达式中出现的所以标识符如上例3的sel。

2、对组合逻辑器件的赋值采用阻塞赋值“=”

3、时序逻辑器件的赋值语句采用非阻塞赋值“<=”,如上的 Q 〈= D;



热门搜索:01T1001JF 2866349 PDU2430 TLP6B 01M1001JF 02T5000JF PSF2408 PS120420 SBB2808-1 2838733 2839211 LC1200 PS480806 2986122 BT151S-800R118 PS-410-HGOEMCC TLM626SA 2839648 LED12-C2 SS3612 2817958 02T0500JF 6SPDX-15 RS-1215 6NX-6
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质