原创 [博客大赛]Verilog-FPGA硬件电路设计之三——关于迟滞信号

2013-10-18 09:56 4350 26 28 分类: FPGA/CPLD 文集: Verilog-FPGA硬件电路设计

 

Verilog-FPGA硬件电路设计之三——关于迟滞信号

在条件选择语句中,由于信号的处理存在时间上的差异,从前级传递到下级的数据就存在到达时间先后的问题,因此为了提高电路的速度,对迟滞信号要安排在当前单元最后处理,也就是放在本级靠近输出的位置。

1if语句条件分支中的判断信号迟滞

在之前的文章中介绍了if语句的优先级和生成硬件电路的关系,自然对于迟滞信号的处理,当然是放在优先级比较高的if分支中,下面两个例子可以对此作说明。

1.1   迟滞信号放在最低优先级的if分支中

20130625000817838001.jpgRTL:

20130625000825465002.gif

Tec 图:红线是迟滞信号

20130625000831856003.jpg

RTL图和Tec图都可以看出迟滞信号在本级的前部分就被处理了。这样很容易因为信号的迟滞而处理的并非有效信号。

1.2   利益if语句的优先级对迟滞信号进行处理

20130625000836335004.jpg RTL图:QQ截图20130622150732副本

Tec图,红线是迟滞信号

20130625000847368006.jpg

可以看出如果输入有迟滞信号输出,应该将其放在第一个if语句中,让其靠近输出端,减小延时。

2if-case嵌套语句中,case内部有迟滞信号

在文章“Verilog-FPGA硬件电路设计之二——if语句和case语句的区别”中的case内部存在着迟滞信号。对于case 分支的输入 DATA_is_late_arriving 迟滞信号,怎么将其从case分支中提出来呢?就是说,如果将case分支中的语句从case中提取处理,并且将其向后移。

可以先来看看优化后的代码:

20130625000853313007.jpg说明:

1always块中有两个if分支结构,按照“Verilog-FPGA硬件电路设计之一——if语句优先级”所说,第二个if的优先级高于第一个if(因为always块中是顺序执行的)。所以我们将 DATA_is_late_arriving 单独放在一个if的分支结构中,并将其放在最高优先级中,靠近电路的输出。

2、最后的else Z1 = Z1; 此句可以注释掉,但不能将其改成Z1 = 0;或者Z1 = 1; 因为,改了之后,else就实际包括了第1if的所有判断情况,那么自然,第一个if就被阻塞掉了。关于组合逻辑电路中, 一个always块中包含两个以上的if分支结构,并且都对同一个信号操作,且都包含有else分支时,要注意被阻塞的情况。

RTL图:

20130625000858245008.jpg

3if语句的条件表达中包含有操作符

20130625000903303009.jpg20130625000909425010.gif

优化

20130625000914148011.jpg20130625000920602012.gif

 

 

文章评论2条评论)

登录后参与讨论

用户379288 2013-10-28 16:44

来的比较慢的信号要放在优先级比较高的语句中,尽量靠近输出端,减小延时。 这个时候就看代码的写法和优化了。 高深啊。

用户441844 2013-6-25 08:26

嗯 有道理 学习了
相关推荐阅读
用户442508 2013-10-18 09:56
[博客大赛]Verilog-FPGA硬件电路设计之二——if语句和case语句的区别
Verilog-FPGA硬件电路设计之二——if语句和case语句的区别 一个if语句中嵌套了case语句的例子,可以很好的看出if语句和case语句的区别。 module case_in...
用户442508 2013-10-18 09:56
[博客大赛]Verilog-FPGA硬件电路设计四——最大公约数功能仿真和时序仿真区别
综合软件:QuartusII 12.1 仿真软件:Modelsim-Altera   1、输出done无寄存器,直接从组合逻辑电路输出 1.1功能仿真   1.2时序...
用户442508 2013-10-18 09:55
Verilog-FPGA硬件电路设计之五——脉动矩阵计算FIR
脉动阵列(Systolic Array)计算有限冲激响应(FIR) 综合软件:QuartusII 12.1 仿真软件:Modelsim-Altera FIR:有限脉冲响应滤波器。有限说...
用户442508 2013-10-18 09:55
Verilog FPGA硬件电路设计之六——脉动矩阵计算矩阵乘法
脉动阵列(Systolic Array)计算矩阵乘法(Array Multiplication) 下一个目标是实现流水线输出,提升硬件资源的利用率。 脉动阵列(Systoli...
用户442508 2013-10-18 09:54
Verilog-FPGA硬件电路设计之七——矩阵乘法流水线结构
二维流水线结构矩阵乘法(Array Multiplication) 上一篇文中建立了矩阵乘法运算的数据路径,从仿真结构中可以看出整个计算方案的可行性,但是存在一个问题,就是硬件运算单...
我要评论
2
26
关闭 站长推荐上一条 /2 下一条