<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > 不同的verilog代碼風(fēng)格看RTL視圖之一

不同的verilog代碼風(fēng)格看RTL視圖之一

作者: 時(shí)間:2015-01-21 來(lái)源:網(wǎng)絡(luò ) 收藏

  剛開(kāi)始玩CPLD/開(kāi)發(fā)板的時(shí)候使用的一塊基于EPM240T100的板子,alter的這塊芯片雖說(shuō)功耗小體積小,但是資源還是很小的,你寫(xiě)點(diǎn)稍微復雜的程序,如果不注意coding style,很容易就溢出了。當時(shí)做一個(gè)三位數的解碼基本就讓我苦死了,對coding style的重要性也算是有一個(gè)比較深刻的認識了。

本文引用地址:http://dyxdggzs.com/article/268450.htm

  后來(lái)因為一直在玩xilinx的spartan3 xc3s400,這塊芯片資源相當豐富,甚至于我在它里面緩存了一幀640*480*3/8BYTE的數據都沒(méi)有問(wèn)題(VGA顯示用)。而最近接觸EPM7128,它的資源似乎也不豐富,我寫(xiě)著(zhù)寫(xiě)著(zhù)有時(shí)不注意就無(wú)法布線(xiàn)了。由此可見(jiàn)coding style對設計的重要性,尤其是在資源緊張或者速度要求較高的設計中。我個(gè)人對前者的體會(huì )深一些,高速的設計沒(méi)有涉及過(guò),只是明白一些用流水線(xiàn)提高速度的方法。

  可以步入正題了,先拿一段簡(jiǎn)單的代碼開(kāi)始吧。我先提一點(diǎn),這回我用的是quartus II 7.0進(jìn)行測試,其它的EDA工具綜合出來(lái)的視圖可能會(huì )不一樣,所以?xún)H作為在quartus II 7.0環(huán)境下的一些參考吧。不過(guò)思路是一樣的,可以借鑒的。

  Ex1:

  input[1:0] xin;

  output dout;

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

  代碼很簡(jiǎn)單,就是當xin==2’b0時(shí)dout=1,否則dout=0。上面這段程序的視圖如下:

  

 

  其實(shí)就是一個(gè)比較器,如果xin=2’h0,那么輸出OUT就為1。和設想一樣。

  下面是我在參考一些別人的代碼的時(shí)候看到別人一種常見(jiàn)的寫(xiě)法,它是用了?語(yǔ)句。

  input[1:0] xin;

  output dout;

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

  如下:

  

點(diǎn)擊看大圖

 

  是不是發(fā)現多了以一個(gè)選擇器(可能不叫選擇器吧,但是你明白意思就可以),這樣平白無(wú)故的就多耗用了一點(diǎn)資源,剛開(kāi)始的時(shí)候我也是傻乎乎的跟著(zhù)別人用這種寫(xiě)法,但是看到RTL視圖后我就不這么干了,既然前者一樣可以得到預期結果,為什么我還要畫(huà)蛇添足多一個(gè)選擇器呢。所以,推薦使用前者。資源的節約是潛移默化的~_~

  (先說(shuō)一點(diǎn)吧,其它的待我想起或者是感悟到了再提吧,以上也完全是我的個(gè)人愚見(jiàn),如有不妥之處歡迎拍磚~_~)



關(guān)鍵詞: FPGA verilog RTL

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>