不同verilog代码的RTL视图

时间:2025-04-28  作者:Diven  阅读:0

刚开始玩CPLD/FPGA开发板的时候使用的一块基于EPM240T100的板子,alter的这块芯片虽说功耗小体积小,但是资源还是很小的,你写点稍微复杂的程序,如果不注意coding style,很容易就溢出了。当时做一个三位数的解码基本就让我苦死了,对coding style的重要性也算是有一个比较深刻的认识了。

不同verilog代码的RTL视图

后来因为一直在玩xilinx的spartan3 xc3s400,这块芯片资源相当丰富,甚至于我在里面缓存了一帧640*480*3/8BYTE的数据都没有问题(VGA显示用)。而最近接触EPM7128,资源似乎也不丰富,我写着写着有时不注意就无法布线了。由此可见coding style对设计的重要性,尤其是在资源紧张或者速度要求较高的设计中。我个人对前者的体会深一些,高速的设计没有涉及过,只是明白一些用流水线提高速度的方法。

可以步入正题了,先拿一段简单的代码开始吧。我先提一点,这回我用的是quartus II 7.0进行测试,其EDA工具综合出来的RTL视图可能会不一样,所以仅作为在quartus II 7.0环境下的一些参考吧。不过思路是一样的,可以借鉴的。

Ex1:

input[1:0] xin;

output dout;

assign dout = (xin == 2'b0);

代码很简单,就是当xin==2’b0时dout=1,否则dout=0。上面这段程序的RTL视图如下:

其实就是一个比较器,如果xin=2’h0,那么输出OUT就为1。和设想一样。

下面是我在参考一些别人的代码的时候看到别人常见的写法,是用了?语句。

input[1:0] xin;

output dout;

assign dout = (xin == 2'b0) ? 1'b1:1'b0;

RTL如下:

是不是发现多了以一个选择器(可能不叫选择器吧,但是你明白意思就可以),这样平白无故的就多耗用了一点资源,刚开始的时候我也是傻乎乎的跟着别人用这种写法,但是看到RTL视图后我就不这么干了,既然前者一样可以得到预期结果,为什么我还要画蛇添足多一个选择器呢。所以,推荐使用前者。资源的节约是潜移默化的~_~

(先说一点吧,其待我想起或者是感悟到了再提吧,以上也完全是我的个人愚见,如有不妥之处欢迎拍砖~_~)

猜您喜欢

贴片电阻上的01C标识并非直接表示阻值,而是采用EIA-96标准的3位数代码。其中,前两位数字01代表有效数字,第三位字母C代表乘数因子。根据EIA-96标准,...
2024-11-29 10:25:43

SAW谐振器(无源)的分类主要包括以下几种类型。根据谐振频率的不同,可以分为高频SAW谐振器和低频SAW谐振器。高频SAW谐振器通常用于移动通信、卫星通信等领域...
2014-01-18 00:00:00


护目镜是重要的防护装备,应用于多个领域。在工业生产中,护目镜保护工人在焊接、打磨和切割等过程中免受飞溅物和有害气体的伤害。在实验室环境中,护目镜是化学实验的必备...
2020-07-26 00:00:00


红光激光笔是常见的激光指示工具,应用于教学、演示和户外活动等场合。主要参数包括激光波长、输出功率、续航时间和工作模式。红光激光笔的波长在630到650纳米之间,...
2019-08-11 00:00:00

斜嘴钳是常见的手工工具,应用于电子、机械、珠宝等领域。主要作用在于夹持、弯曲和切割细小物件,尤其适合处理狭小空间中的任务。斜嘴钳的设计使得钳口呈斜角,便于在狭窄...
2016-04-11 00:00:00

聚丙烯薄膜电容是重要的电子元件。应用于电路中。本文将详细介绍的作用和应用。 优良的绝缘特性聚丙烯薄膜电容具有优良绝缘性。能有效防止电流漏电。这样可以保护电路安全...
2025-03-25 02:31:39

按钮指示灯附件是现代设备中不可少的重要组成部分,其参数直接影响到设备的性能和用户体验。亮度是一个关键参数,通常以流明(lm)或坎德拉(cd)来衡量,确保在各种环...
2016-06-14 00:00:00