Verilog中的iniial和always语句

编程入门 行业动态 更新时间:2024-10-27 11:18:52

Verilog中的iniial和always<a href=https://www.elefans.com/category/jswz/34/1770772.html style=语句"/>

Verilog中的iniial和always语句

首先说一下结构说明语句,Verilog语言中的任何过程模块都从属于以下4种结构的说明语句:(1)initial说明语句;

(2)always说明语句;

(3)task说明语句;

(4)function说明语句。

一个程序模块可以有多个initial和always过程快。每个initial和always说明语句在仿真的一开始同时立即执行。initial语句只执行一次,而always语句则不断地重复活动着,直到仿真过程结束。但always语句后紧跟的过程块是否运行,则要看它的出发条件是否满足,如满足则运行过程中执行一次,再次满足再运行一次,直至仿真结束。

1 initial语句

initial语句格式如下:

initial 

        begin

                语句1;

                语句2;

                ........

                语句n;

        end

举例说明:

【例1】用initial快对存储器变量赋值。

 initialbeginareg=0;//初始化寄存器aregfor(index=0;index<size;index=index+1)memory[index]=0;//初始化一个memoryend

      在这个例子中initial语句在仿真开始时对各变量进行初始化,这个初始化过程不需要任何仿真时间,即在0ns时间内,便可完成存储器的初始化工作。

【例2】用initial语句来生成激励波形。
 

        initialbegininput ='b000000;//初始时刻0#10  input=‘b011001;#10  input=‘b011011;#10  input=‘b011000;#10  input=‘b001000;end

        从这个例子中,可以看到initial语句的另一个用途,即用initial语句来生成激励波形作为电路的测试仿真信号。

2 always语句

        always语句在仿真过程中是不断活动着的,但always语句后跟着的过程块死否执行,则要看它的触发条件是否满足,如满足则运行过程块一次;如不满足,则不断地循环执行。其声明格式如下:

                                        always <时序控制>  <语句>

        如果一个always语句没有时序控制,则这个always语句将会使仿真器产生死锁,如

               

 always areg=~areg;

这个always语句将会生成一个0延迟的无限循环跳变过程,这时会发生仿真死锁。

        always的时间控制可以是沿触发也可以是电平触发的,可以是单个信号也可以多个信号,中间需要用关键字or连接

always @(posedge clock or posedge reset)

摘自《Verilog数字系统设计教程》第四版,夏宇闻,韩彬编著

更多推荐

Verilog中的iniial和always语句

本文发布于:2024-02-25 18:39:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699919.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语句   Verilog   iniial

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!