原创 不同的verilog代码风格看RTL视图之一

2008-10-1 09:53 6863 13 17 分类: FPGA/CPLD

不同的verilog代码风格看RTL视图之一<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


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


    后来因为一直在玩xilinxspartan3 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’b0dout=1,否则dout=0。上面这段程序的RTL视图如下:


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


db7e26b5-aff4-4211-b1d8-49dbc84244f8.jpg


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


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


input[1:0] xin;


output dout;


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


    RTL如下:



点击看大图


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


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

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

ilove314_323192455 2011-3-5 10:49

有你说的这种可能,但是不能一概而论。在调试中,一些稀奇古怪的问题有可能是板级问题、时序问题、也可能是FPGA逻辑的功能性问题。要具体问题具体分析

用户591598 2011-3-3 22:19

特权你好!我碰到这样一个奇怪的情况:通过JTAG口第一次配置好FPGA后,个种功能是可以正确实现的;但掉电后再次加载就出现类似“程序跑飞”似的情况,各种功能就不正常了。是不是在EPCS中加载时不能正确的配置呢?不知道特权同学有何高见?

ilove314_323192455 2010-12-21 10:35

可以,jic文件就能够通过JTAG配置EPCS配置器件

用户591598 2010-12-21 10:09

特权同学,请问在板级设计时只有一个JTAG下载口,不要AS下载口可以正常配置吗?

用户282447 2010-12-17 10:58

向特权同学致敬! 正在做一个基于sdram的tft驱动器,从你这儿偷学了不少东西,应该说核心部分来源于你的博客,哈哈

用户1635818 2010-12-15 15:21

还是像以前一样发PDF格式的吧!看起来挺累!还不清晰!

用户1492539 2010-12-14 15:01

博主发个PDF吧,这样一个一个看太累了,还不清晰

ilove314_323192455 2010-12-10 12:44

没问题,谢谢支持

用户1401907 2010-12-10 00:06

大牛,我在http://www.ziyanziyu.org/转了几篇文章,不介意吧,我注明特权了。。。拜

用户190615 2010-12-9 11:53

怎么没有PDF下载呢
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
EE直播间
更多
我要评论
4
13
关闭 站长推荐上一条 /3 下一条