<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è) > 嵌入式系統 > 設計應用 > 【E課堂】verilog之可綜合與不可綜合

【E課堂】verilog之可綜合與不可綜合

作者: 時(shí)間:2016-05-03 來(lái)源:電子產(chǎn)品世界 收藏

  可綜合的意思是說(shuō)所編寫(xiě)的代碼可以對應成具體的電路,不可綜合就是所寫(xiě)代碼沒(méi)有對應的電路結構,例如行為級語(yǔ)法就是一種不可綜合的代碼,通常用于寫(xiě)仿真測試文件。

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

  建立可綜合模型時(shí),需注意以下幾點(diǎn):

  不使用initial

  不使用#10之類(lèi)的延時(shí)語(yǔ)句

  不使用循環(huán)次數不確定的循環(huán)語(yǔ)句,如forever,while等

  不使用用戶(hù)自定義原語(yǔ)(UDP元件)

  盡量使用同步方式設計電路

  用always塊來(lái)描述組合邏輯時(shí),應列出所有輸入信號作為敏感信號列表,即always@(*)

  所有的內部寄存器都應該能夠被復位,在使用實(shí)現設計時(shí),盡量使用器件的全局復位端作為系統的總復位

  對時(shí)序邏輯描述和建模,盡量使用非阻塞賦值的方式,對組合邏輯描述和建模,雖然阻塞和非阻塞賦值的方式都可以,但在同一過(guò)程快中最好不要同時(shí)使用阻塞賦值和非阻塞賦值。我個(gè)人比較推薦用阻塞賦值的方式描述組合邏輯

  不能在多個(gè)always塊中對同一個(gè)變量進(jìn)行賦值。對同一個(gè)對象不能既使用非阻塞賦值,又使用阻塞賦值

  如果不打算讓變量生成鎖存器,那么必須在使用if語(yǔ)句或case語(yǔ)句時(shí)補全所有條件

  不可綜合語(yǔ)句:

  initial 初始化語(yǔ)句,只能在testbench中使用,不可綜合

  event event在同步testbench時(shí)更有用,不能綜合

  real 不支持real數據類(lèi)型的綜合

  time 不支持time數據類(lèi)型的綜合

  assign 和 deassign 不支持對reg數據類(lèi)型賦值的綜合,但支持wire 類(lèi)型賦值的綜合

  以#開(kāi)頭的延時(shí)語(yǔ)句不能被綜合

  是一種硬件描述語(yǔ)言,我們在寫(xiě) 代碼時(shí),首先要有所要寫(xiě)的module在硬件上如何實(shí)現的概念,而不是去想編譯器如何解釋這個(gè)module。比如在決定是否使用 reg 定義時(shí),要問(wèn)問(wèn)自己物理上是不是真正存在這個(gè) register, 如果是,它的clock 是什么? D 端是什么?Q 端是什么?有沒(méi)有清零和置位?同步還是異步?再比如上面討論的三態(tài)輸出問(wèn)題,首先想到的應該是在 register 的輸出后面加一個(gè)三態(tài)門(mén),而不是如何才能讓編譯器知道要“賦值”給一個(gè)信號為三態(tài)。同樣,Verilog 中沒(méi)有“編譯”的概念,而只有綜合的概念,我們只有綜合工具,而沒(méi)有所謂的編譯器。

  當然,并不是說(shuō)不可綜合的代碼就不重要了,在IC設計中,有70%的時(shí)間都是用來(lái)做驗證,所以說(shuō)仿真驗證的工作對于的設計同樣重要。



關(guān)鍵詞: verilog FPGA

評論


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