久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3107|回復: 0
打印 上一主題 下一主題
收起左側

關于一段verilog代碼的思考

[復制鏈接]
跳轉到指定樓層
樓主
ID:82781 發表于 2015-6-24 16:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
     前段時間有人在網上問以下一段代碼,代表什么意思。










     初看這段代碼,發現這里的din有兩次進行賦值,首先是進行din的自加1操作,然后去判斷en的值,為1的話然后將另外一個值減1在賦值給din,那最終的結果應該為什么了?



為此,特意寫了一段代碼,以及給代碼的測試激勵來測試輸出結果為什么。

代碼如下:      





用modelsim進行仿真。其仿真圖如下所示:


從上圖中進行分析

在復位信號為低電平,即復位信號有效。輸出b的結果一直為0.

當復位信號沒有效的時候,而且en為低電平,每當一個時鐘的上升沿,輸出b的值自加1一次。

當en為高電平的時候,輸出b的值為輸入a的值。。



其實,對于verilog中的always塊中的信號賦值,如果采用的是非阻塞,也就是<=賦值。

每次<=賦值后,值不是立即更新,而是要等待所有的<=賦值結束后,才進行更新。而<=右邊的值,都是最初始的值,不是計算后的值。

分析上面那段代碼,在時鐘的上升沿,

b <= b + 1'b1; b的值自加1,但是因為是<=賦值,因此b的值還沒有改變,依然還是沒有自加1時候的b。

if( en )
b <= a; 當判斷en為1的時候,a的值就賦值給b,但是也不是立刻改變,要等所有always塊中的<=賦值結束后,才會改變。

這個時候,我們就發現了矛盾,首先b的值自加1,但是同時再把a的值給b,這就給人一種雙重賦值的感覺,因為verilog的語句是并行執行,兩個都同時執行,那最后b的值為什么。

其實,這就要追朔到verilog這個語言對<=賦值的規定了。。。verilog規定,所有的<=賦值后,值不是立刻改變,而是要等所有的<=賦值后才進行改變,而對同一個變量,如果進行多次<=賦值,那最終的賦值結果以最后一個<=賦值結果為準。

所以說,對于上面那個代碼,雖然對b進行了兩次<=賦值操作,但是最后一個<=賦值是 b<=a,所以最后的結果是把a的值賦值給b,仿真結果說明了這點。

其實,上面那個代碼功能其實是一個選擇器,當en為1的時候,輸出的值b等于輸入的值a,否則輸出的值b就自加1.



由上面代碼,可總結到,對于同一個alywas塊中的<=賦值,如果同一個信號進行多次<=賦值,那么結果,那個信號以最后一個賦值結果為準,也就是前面的賦值都是無效的。。



所以說,以下賦值:(假設初始a的值為0)

a < = a+1’b1;

a <= a +1’b1;

a <= a +1’b1;

**** (若干次對a賦值)

a <= a +1’b1;

最后a的值都是為1。也就是初始的a的值加1,也就是最后一句語句表達的。。。。其中間的賦值通通都被省略了。。。
   



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲情视频 | 99免费 | 中文字幕 在线观看 | 久久天堂网 | 欧美9999| 男女国产网站 | 色视频成人在线观看免 | 精品av | 999热视频| 羞羞色影院 | 欧美日韩一区在线播放 | 欧美精品网 | 日本又色又爽又黄的大片 | aaaaaa大片免费看最大的 | 国产精品99久久久久久动医院 | 草久网| 国产精品国产精品国产专区不蜜 | 国产无人区一区二区三区 | 久久久久国产成人精品亚洲午夜 | 在线小视频 | 国产精品精品视频一区二区三区 | 日本一区二区三区在线观看 | 欧美久久一区二区三区 | 久久69精品久久久久久久电影好 | 日本一区二区高清视频 | 国产人成在线观看 | 精品亚洲一区二区三区四区五区 | 综合久久综合久久 | 精品视频一区二区 | 狠狠草视频 | 永久av | 国产精品精品视频 | 亚洲精品电影网在线观看 | 久久免费视频2 | 欧美理论片在线观看 | 国产精品一区久久久 | 免费a级毛片在线播放 | 亚洲色视频 | 毛片免费看 | 在线成人免费视频 | 欧美成人精品一区 |