首页 理论教育 FPGA系统设计:行为级建模及电路示例

FPGA系统设计:行为级建模及电路示例

时间:2023-10-20 理论教育 版权反馈
【摘要】:行为级建模通常采用过程性赋值的方式,建立的通常为时序逻辑电路。行为级建模一般包括两种语句结构:initial语句和always语句。在仿真的0时刻开始执行。begin-end语句块是最经常使用的过程性语句。周期为20个时间单位。always语句经常会带一些事件控制,使用了always@,这样的例子我们前面遇到过。比如下面这段代码:由于initial语句和always语句都是顺序执行,上面这个模块里,先写initial语句还是先写always语句都是一样的。例5.3:D锁存器。例5.4:具有使能控制的D触发器。

FPGA系统设计:行为级建模及电路示例

行为级建模通常采用过程性赋值的方式,建立的通常为时序逻辑电路。

行为级建模一般包括两种语句结构:initial语句和always语句。

initial语句只执行一次。在仿真的0时刻开始执行。

begin-end语句块是最经常使用的过程性语句。上面这段代码在仿真的0时刻就开始执行。begin-end是顺序块,顺序块里的语句是按顺序执行的。

看下面这个例子:

上面这个initial语句由于使用了延迟,是在时刻3才执行对a赋值。

与initial语句不同,always语句是反复执行。always#10clk=~clk;

上面这种语句是最常用到的一种语句,它每隔10个时间单位就把clk取反,赋值给clk,也就是取反后赋值给它自己。周期为20个时间单位。我们经常使用这条语句来产生一个周期时钟。(www.xing528.com)

always语句经常会带一些事件控制(比如边沿触发事件或者电平触发事件),使用了always@,这样的例子我们前面遇到过。

也许有读者会问,如果一段代码里,既有initial语句,又有always语句,该如何执行呢?比如下面这段代码:

由于initial语句和always语句都是顺序执行,上面这个模块里,先写initial语句还是先写always语句都是一样的。

有时候,在过程赋值语句里也会用到fork-join并行语句。并行语句里的语句是每一条语句同时执行。看下面这个例子:

0时刻,语句1~5同时执行;时刻1,a=1;时刻2,a=0;时刻3,a=1;时刻4,a=0;时刻5,a=1。

例5.3:D锁存器。

例5.4:具有使能控制的D触发器

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈