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

發(fā)布時(shí)間:2016-2-19 09:02    發(fā)布者:designapp
關(guān)鍵詞: verilog , RTL
  我們來(lái)做一個(gè)4選一的Mux的實(shí)驗,首先是利用if…else語(yǔ)句來(lái)做,如下。
  (由輸入xsel來(lái)選擇輸出的路數xin0,xin1,xin2,xin3其一,輸出yout)
  Ex3:
  input clk;
  input xin0,xin1,xin2,xin3;
  input[1:0] xsel;
  output yout;
  reg youtr;
  always @ (posedge clk)
  if(xsel == 2'b00) youtr RTL視圖如下:
  


  上面的視圖里,可以看出有三個(gè)等于比較器,然后在觸發(fā)器前會(huì )有三個(gè)2選1的選擇器。和我們的代碼是一樣的,第一個(gè)if語(yǔ)句的優(yōu)先級是最高的(這里所謂的優(yōu)先級最高不是軟件意義上的高優(yōu)先級,由于HDL設計的并行性,判斷語(yǔ)句綜合后不是先后進(jìn)行判斷,而是在同一時(shí)刻進(jìn)行判斷,也就是說(shuō)if和后面的if else 或者else其實(shí)是同時(shí)進(jìn)行判斷的),看紅線(xiàn)連接的網(wǎng)絡(luò ),如果它的等于比較器的邏輯值為1,那么決定了最后一個(gè)2選1mux的值必定是和xin0連接的而與前面的結果無(wú)關(guān)。依次類(lèi)推,如果它的等于比較器的值為0,那么最后的輸出就由前面的邏輯來(lái)決定。其實(shí),綜合出來(lái)這樣的結果和我們的設想還是有出入的,一個(gè)4選1mux何必如此復雜呢。
  下面就看用case語(yǔ)句來(lái)做這個(gè)4選1mcu吧。
  input clk;
  input xin0,xin1,xin2,xin3;
  input[1:0] xsel;
  output yout;
  reg youtr;
  always @ (posedge clk)
  case (xsel)
  2'b00: youtr RTL視圖如下:
  


  呵呵,上面應該就是我們所要的,4選1的mux,一目了然。Case與if的用法還是應該根據具體的情況而定,但是盡量多用case往往會(huì )更簡(jiǎn)化硬件電路。
                               
                                                               
                               
               
本文地址:http://selenalain.com/thread-160910-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页