<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à) > 零基礎學(xué)FPGA(四)Verilog語(yǔ)法基基礎基礎(中)

零基礎學(xué)FPGA(四)Verilog語(yǔ)法基基礎基礎(中)

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

  4、循環(huán)語(yǔ)句

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

  語(yǔ)法**有4中循環(huán)語(yǔ)句,這里只簡(jiǎn)單說(shuō)一下C語(yǔ)言里沒(méi)有的兩種

  (1) forever語(yǔ)句

  連續執行語(yǔ)句,這種語(yǔ)句主要用在產(chǎn)生周期性的波形,用來(lái)做仿真信號。個(gè)人理解和always語(yǔ)句差不多的功能,但是,forever語(yǔ)句只能用在initial塊中。

  (2)repeat 語(yǔ)句后面接常量表達式,可以指定循環(huán)次數,例如;

  repeat (8)

  begin

  …

  end

  表示循環(huán)8次相應語(yǔ)句。

  5、順序塊和并行塊

  所謂順序塊就是前面說(shuō)的begin…end,他的作用就是把多條語(yǔ)句組合到一起執行,在順序塊里面,語(yǔ)句是一條一條順序執行的,如果遇到#10延遲語(yǔ)句,延遲也是相對于上一條語(yǔ)句的延遲,這一點(diǎn)比較重要。

  相對于順序塊的就是并行塊,用fork…end語(yǔ)句表示,并行塊里的語(yǔ)句是同時(shí)執行的。

  順序塊和并行塊可以嵌套使用。

  如果在begin或者fork語(yǔ)句后面加上名字,這個(gè)塊語(yǔ)句就成了命名塊,例如

  begin :xiaomo

  ……

  end

  命名塊有什么好處呢?有了命名塊,我們就可以用verilog提供的disable語(yǔ)句來(lái)隨時(shí)終止命名塊,例如disable xiaomo;這樣,當程序運行到此時(shí),就會(huì )禁用命名塊,就會(huì )直接跳出塊語(yǔ)句,相當于C語(yǔ)言里面的break語(yǔ)句一樣,看下面這個(gè)例子:

  

360桌面截圖20140308132040.jpg

 

  6、生成塊

  生成塊語(yǔ)句可以動(dòng)態(tài)的生成代碼,這一聲明語(yǔ)句方面了參數化模塊的生成。黨對矢量中的多個(gè)位進(jìn)行重復操作時(shí),或者進(jìn)行多個(gè)模塊的實(shí)力引用時(shí),或者在根據參數的定義來(lái)確定程序中是否應該包括末端代碼的時(shí)候,使用生成語(yǔ)句能夠大大簡(jiǎn)化程序的編寫(xiě)過(guò)程。

  生成語(yǔ)句可以控制變量的聲明、任務(wù)或函數的調用,還能對實(shí)力引用進(jìn)行全面的控制。編寫(xiě)代碼時(shí)必須在模塊中說(shuō)明生成塊的實(shí)例范圍,關(guān)鍵字 generate…endgenerate用來(lái)指定該范圍。

  Verilog中有三種生成語(yǔ)句的方法,分別是循環(huán)生成,條件生成和case生成。

  (1)循環(huán)生成

  

360桌面截圖20140308142337.jpg

 

  

360桌面截圖20140308142446.jpg

 

  注:genvar 是關(guān)鍵詞,用于生成生成變量,生成變量只存在于生成塊中,在確立后的方針代碼中,生成變量是不存在的。

  xor_loop是賦予生成語(yǔ)句的名字,目的在于溝通它對循環(huán)生成語(yǔ)句之中的變量進(jìn)行層次化引用。因此循環(huán)生成語(yǔ)句中的各個(gè)異或門(mén)的相對層次為:xor_loop[0].gl,xor_loop[1].gl…,xor_loop[31] 這句話(huà)什么意思啊

  這個(gè)例子中的 xor gl (out [ j ] , i0 [ j ], i1 [ j ] );什么意思??求大神指點(diǎn)

  當然這個(gè)異或門(mén)還可用always塊實(shí)現

  生成塊程序

  generate

  for (j=0;j

  begin :xiaomo

  always @(i0[ j ] or i1[ j ]) out [ j ]=i0[ j ]^i1[ j ];

  end

  endgenerate

  (2)條件生成

  

360桌面截圖20140308145303.jpg

 

  下面是一段生成語(yǔ)句

  

360桌面截圖20140308145416.jpg

 

  (3)case生成

  

360桌面截圖20140308150117.jpg

 

  下面是一個(gè)例子使用case語(yǔ)句生成N位的加法器

  

360桌面截圖20140308150759.jpg

 

  

360桌面截圖20140308150809.jpg

 

  說(shuō)實(shí)話(huà)上面這些東西我自己也是看的模模糊糊,好多地方不懂,只能先截個(gè)圖放這兒了。唉...基礎還是不行啊...

fpga相關(guān)文章:fpga是什么


c語(yǔ)言相關(guān)文章:c語(yǔ)言教程




關(guān)鍵詞: FPGA Verilog

評論


相關(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>