国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
verilog語法學(xué)習(xí)心得(轉(zhuǎn)載)
From:http://forum.eepw.com.cn/thread/163726/1
這是我在查verilog的有符號數(shù)和無符號數(shù)時(shí)看到的,覺得很好,轉(zhuǎn)載于此,共同學(xué)習(xí)

--------------------------------------------------------------------------------------------------------------------------
verilog語法學(xué)習(xí)心得

1.數(shù)字電路基礎(chǔ)知識: 布爾代數(shù)、門級電路的內(nèi)部晶體管結(jié)構(gòu)、組合邏輯電路分析與設(shè)計(jì)、觸發(fā)器、時(shí)序邏輯電路分析與設(shè)計(jì)

2.數(shù)字系統(tǒng)的構(gòu)成: 傳感器  AD  數(shù)字處理器  DA  執(zhí)行部件

3.程序通在硬件上的執(zhí)行過程:
     C語言(經(jīng)過編譯)-->該處理器的機(jī)器語言(放入存儲(chǔ)器)-->按時(shí)鐘的節(jié)拍,逐條取出指令、分析指令、執(zhí)行指令

4.DSP處理是個(gè)廣泛概念,統(tǒng)指在數(shù)字系統(tǒng)中做的變換(DFT)、濾波、編碼解碼、加密解密、壓縮解壓等處理

5.數(shù)字處理器包括兩部分:高速數(shù)據(jù)通道接口邏輯、高速算法電路邏輯

6.當(dāng)前,IC產(chǎn)業(yè)包括IC制造和IC設(shè)計(jì)兩部分,IC設(shè)計(jì)技術(shù)發(fā)展速度高于IC設(shè)計(jì)

7.FPGA設(shè)計(jì)的前續(xù)課程:數(shù)值分析、DSP、C語言、算法與數(shù)據(jù)結(jié)構(gòu)、數(shù)字電路、HDL語言 計(jì)算機(jī)微體系結(jié)構(gòu)

8.數(shù)字處理器處理性能的提高:軟件算法的優(yōu)化、微體系結(jié)構(gòu)的優(yōu)化

9.數(shù)字系統(tǒng)的實(shí)現(xiàn)方式:
     編寫C程序,然后用編譯工具得到通用微處理器的機(jī)器指令代碼,在通用微處理器上運(yùn)行(如8051/ARM/PENTUIM)
     專用DSP硬件處理器
     用FPGA硬件邏輯實(shí)現(xiàn)算法,但性能不如ASIC
     用ASIC實(shí)現(xiàn),經(jīng)費(fèi)充足、大批量的情況下使用,因?yàn)橥镀杀靖摺⒅芷陂L

10.FPGA設(shè)計(jì)方法: IP核重用、并行設(shè)計(jì)、層次化模塊化設(shè)計(jì)、top-down思想
   FPGA設(shè)計(jì)分工:前端邏輯設(shè)計(jì)、后端電路實(shí)現(xiàn)、仿真驗(yàn)證

11.matlab的應(yīng)用:
     matlab中有許多現(xiàn)成的數(shù)學(xué)函數(shù)可以利用,節(jié)省了復(fù)雜函數(shù)的編寫時(shí)間
     matlab可以與C程序接口
     做算法仿真和驗(yàn)證時(shí)能很快生成有用的數(shù)據(jù)文件和表格
     DSP builder可以直接將simulink模型轉(zhuǎn)換成HDL代碼,跳過了中間的C語言改寫步驟

12.常規(guī)從算法到硬件電路的開發(fā)過程:
     算法的開發(fā)
     C語言的功能描述
     并行結(jié)構(gòu)的C語言改寫
     verilog的改寫
     仿真、驗(yàn)證、修正
     綜合、布局布線、投入實(shí)用

13.C語言改寫成verilog代碼的困難點(diǎn):
     并行C語言的改寫,因?yàn)镃本身是順序執(zhí)行,而不是并行執(zhí)行
     不使用C語言中的復(fù)雜數(shù)據(jù)結(jié)構(gòu),如指針
     目前有將C語言轉(zhuǎn)換成verilog的工具?

14.HDL
     HDL描述方法是從電路圖描述方法演化來的,相比來說更容易修改
     符合IEEE標(biāo)準(zhǔn)的有verilog HDL和VHDL
     VHDL由美國國防部開發(fā),有1987和1993兩個(gè)版本
     verilog由cadence持有,有1995、2001、2005三個(gè)版本
     verilog較VHDL更有前景:具有模擬電路描述能力、不僅可以開發(fā)電路還可以驗(yàn)證電路、門級以下描述比VHDL強(qiáng)
     RTL級和門級的綜合已經(jīng)成熟,主要是注意行為級的綜合結(jié)果,使用可綜合的編程風(fēng)格
     SYSTEM VERILOG是VERILOG的一種延伸

15.IP核的應(yīng)用:
     軟核soft core: 功能經(jīng)過驗(yàn)證的、可綜合的、實(shí)現(xiàn)后門數(shù)在5K以上的HDL代碼
     固核firm core: 功能經(jīng)過驗(yàn)證的、可綜合的、實(shí)現(xiàn)后門數(shù)在5K以上的電路結(jié)構(gòu)編碼文件,如edif,不可更改
     硬核hard core:  功能經(jīng)過驗(yàn)證的、可綜合的、實(shí)現(xiàn)后門數(shù)在5K以上的電路結(jié)構(gòu)版圖,已帶工藝參數(shù),不可更改

16.HDL語言綜合后得到EDIF,這是一種標(biāo)準(zhǔn)電路網(wǎng)表
   EDIF經(jīng)過具體工藝庫匹配、布局布線、延時(shí)計(jì)算后得到網(wǎng)表
   EDIF不可更改,作為固核存在

17.verilog特點(diǎn):
     區(qū)分大小寫,所有關(guān)鍵字都要求小寫
     不是強(qiáng)類型語言,不同類型數(shù)據(jù)之間可以賦值和運(yùn)算
     //是單行注釋  可以跨行注釋
     描述風(fēng)格有系統(tǒng)級描述、行為級描述、RTL級描述、門級描述,其中RTL級和門級別與具體電路結(jié)構(gòu)有關(guān),行為級描述要遵守可綜合原則
     門級描述使用門級模型或者用戶自定義模型UDP來代替具體基本元件,在IDE中針對不同F(xiàn)PGA器件已經(jīng)有對應(yīng)的基本元件原語
   
18.verlog語法要點(diǎn):
     module endmodule之間由兩部分構(gòu)成:接口描述和邏輯功能描述
     IO端口種類: input  output  inout
     相同位寬的輸入輸出信號可以一起聲明, input[3:0] a,b; 不同位寬的必須分開寫
     內(nèi)部信號為reg類型,內(nèi)部信號信號的狀態(tài): 0  1  x   z,  3'bx1=3'bxx1 x/z會(huì)往左擴(kuò)展  3'b1=3'b001 數(shù)字不往左擴(kuò)展
     邏輯功能描述中常用assign描述組合邏輯電路,always既可以描述組合邏輯電路又可以描述時(shí)序邏輯電路,還可以用元件調(diào)用方法描述邏輯功能
     always之間、assign之間、實(shí)例引用之間以及它們之間都是并行執(zhí)行,always內(nèi)部是順序執(zhí)行
     常量格式: <+/-><二進(jìn)制位寬><'><進(jìn)制><該進(jìn)制的數(shù)值>:
          默認(rèn)進(jìn)制為10進(jìn)制
          默認(rèn)位寬為32位
          位寬是從二進(jìn)制寬度角度而言的
          由位寬決定從低位截取二進(jìn)制數(shù)2'hFF=2'b11,通常由被賦值的reg變量位寬決定
     parameter常用于定義延遲和變量位寬,可用常量或常量表達(dá)式定義
     變量種類: wire reg  memory
          IO信號默認(rèn)為wire類型,除非指定為reg類型
          wire可以用作任何輸入輸出端口
          wire包括input output inout
          wire不帶寄存功能
          assign賦值語句中,被賦值的信號都是wire類型
          assign之所以稱為連續(xù)賦值,是因?yàn)椴粩鄼z測表達(dá)式的變化
          reg類型可以被賦值后再使用,而不是向wire一樣只能輸出,類似VHDL中的buffer端口
          reg類型變量初始值為x (VHDL中初始值為本類型最小值,通常是0)
          always模塊里被賦值的信號都必須定義為reg類型,因?yàn)閍lways可以反復(fù)執(zhí)行,而reg表示信號的寄存,可以保留上次執(zhí)行的值
          reg類型變量與integer變量不同,即使賦負(fù)值,實(shí)質(zhì)上也是按二進(jìn)制無符號數(shù)存儲(chǔ)的,integer是有符號數(shù)
          verilog中所有內(nèi)部信號都是靜態(tài)變量,因?yàn)樗鼈兊闹刀荚趓eg中存儲(chǔ)起來了
          memory型只有一維數(shù)組,由reg型變量組成
          memory初始化只能按地址賦值,不能一次性賦值
          1*256的memory寫法: reg mema[255:0]     mema[3]=0;
          不同位寬的變量之間賦值,處理之前都以被賦值的變量位寬為準(zhǔn)擴(kuò)展或截取
          A[a:b] 無論a b誰大,a總是實(shí)際電路的信號高位,b總是實(shí)際電路的信號低位
          算術(shù)運(yùn)算中如果有X值則結(jié)果為X
          for循環(huán)中的變量另外定義成integer,因?yàn)樗皇菍?shí)際信號,有正負(fù);reg則以無符號數(shù)存在
     == 和!=只比較0、1,遇到z或x時(shí)結(jié)果都為x (x在if中算做假條件),結(jié)果可能是1、0、x
     ===和!==比較更加苛刻,包括x和z的精確比較,結(jié)果可能是0、1
     &&的結(jié)果只有1'b1或1'b0兩種, A&A的結(jié)果位寬則是與A相同的
     {1,0}為 64'h100000000,所以拼接運(yùn)算中各信號一定要指定位寬
     移位運(yùn)算左移將保留 4'b1000<<1等于5'b10000,右移則舍棄 4'b0011等于4'b0001
     數(shù)字電路里位運(yùn)算應(yīng)用普遍,包括按位邏輯運(yùn)算、移位運(yùn)算、拼接運(yùn)算、縮減運(yùn)算
   
     非阻塞式賦值<=與阻塞式賦值=
         阻塞:在同一個(gè)always過程中,后面的賦值語句要等待前一個(gè)賦值語句執(zhí)行完,后面的語句被該賦值語句阻塞
         非阻塞:在同一個(gè)always過程中,非阻塞賦值語句是同時(shí)進(jìn)行的,排在后面的語句不會(huì)被該賦值語句阻塞
         <=:
             塊結(jié)束后才能完成賦值
             塊內(nèi)所有<=語句在always塊結(jié)束時(shí)刻同時(shí)賦值
             <=右邊各變量的值是上一次時(shí)鐘邊沿時(shí),這些變量當(dāng)時(shí)的值
             用于描述可綜合的時(shí)序電路
         =:
             =語句結(jié)束之后過程always才可能結(jié)束
             在always過程中,begin end塊內(nèi)按先后順序立即賦值,在fork join內(nèi)同時(shí)賦值(可能造成沖突)
             與assign連用描述組合電路
             begin end中阻塞的含義:begin  ...@(A) B=C...;  end   如果A事件不發(fā)生則永遠(yuǎn)不能執(zhí)行下去,被阻塞了
         由于時(shí)鐘的延時(shí)(往往在ps級),多個(gè)always(posedge)之間究竟誰先執(zhí)行是個(gè)未知數(shù)
         使用原則:同一個(gè)always過程塊內(nèi)建立時(shí)序電路用<=
                    純組合邏輯電路用=,生成的電路結(jié)構(gòu)最簡單,執(zhí)行速度最快
                    同一個(gè)always塊內(nèi)不要混用<=和=
                    不要在多個(gè)always塊內(nèi)對同一個(gè)變量賦值(多源驅(qū)動(dòng))
      
     if else的三種形式,第三種形式適合描述優(yōu)先編碼器
     if條件中0/x/z當(dāng)成假,1當(dāng)成真,非0的數(shù)值也當(dāng)成真
     case語句的三種: case(四種狀態(tài)的比較)  casez(忽略z)  casex(忽略x和z,只看哪些位的信號有用)
     case語句中所有表達(dá)式值的位寬必須相等,default中不能將n'bx用'bx代替
     避免生成鎖存器的方法: 電平觸發(fā)時(shí)if后加else   case中加default    ?
     使用casex會(huì)將不必要的狀態(tài)視為無關(guān)項(xiàng),使得綜合出來的電路最簡單
     兩種特殊的括號: begin 順序語句... end     fork 并行語句... join,其差別在于塊內(nèi)語句的起止時(shí)間、執(zhí)行順序、相對延時(shí)
  
     塊被命名后,其內(nèi)部變量可以被調(diào)用,因?yàn)樽兞慷际庆o態(tài)的(調(diào)用信號:對應(yīng)電路中的一個(gè)信號線被引到另一處)
  
     initial塊只無條件執(zhí)行一次  always塊在滿足條件時(shí)不斷執(zhí)行
     initial常用來寫測試文件, always塊常用來寫電路描述
     always既可以描述組合邏輯電路又可以描述時(shí)序邏輯電路
     always如果后面有敏感信號列表則不能用wait語句
     always既可以描述電平觸發(fā)又可以描述邊沿觸發(fā),wait只能描述電平觸發(fā)
     assign常用于描述組合邏輯電路
     測試文件中一般都是現(xiàn)initial 后always
 
     生成語句:生成快的本質(zhì)是使用循環(huán)內(nèi)的一條語句代替多條重復(fù)的verilog語句,簡化了用戶的編程
               genvar用于聲明生成變量,生成變量只能用在生成快之間
               仿真時(shí),仿真器會(huì)將生成塊中的代碼展平,在確立后的方針代碼中,生成變量是不存在的
               最好是先想象出來循環(huán)生成語句被展平后的電路樣子,再寫相關(guān)的描述語句

     task和function的區(qū)別:
               task可以定義自己的仿真時(shí)間單位,function與主模塊共用同一個(gè)仿真時(shí)間單位
               函數(shù)不能啟動(dòng)任務(wù),任務(wù)能夠啟動(dòng)函數(shù)
               函數(shù)至少要有一個(gè)輸入變量,任務(wù)沒有輸入變量
               函數(shù)返回一個(gè)值,任務(wù)不返回值
  
     一個(gè)模塊的設(shè)計(jì)包括3個(gè)部分: 電路模塊的設(shè)計(jì)  測試模塊的設(shè)計(jì)  設(shè)計(jì)文檔的編寫
     設(shè)計(jì)者通過布局布線工具生成具有布線延遲的電路,再進(jìn)行后仿真,得到時(shí)序分析報(bào)告
     從時(shí)序分析報(bào)告中可以知道電路的實(shí)際延遲t,同步電路內(nèi)每個(gè)時(shí)鐘周期要大于t,從而可確定該運(yùn)算邏輯的最高頻率
     綜合器之所以能夠?qū)崿F(xiàn)加法器、乘法器是因?yàn)閹熘幸呀?jīng)存在可配置的參數(shù)化器件模型
     FPGA內(nèi)總線寬度容易自定義,以便實(shí)現(xiàn)高速數(shù)據(jù)流,三態(tài)數(shù)據(jù)總線相當(dāng)于數(shù)據(jù)流的控制閥門
     數(shù)字系統(tǒng)內(nèi)數(shù)據(jù)流的控制: 開關(guān)(或三態(tài)數(shù)據(jù)總線)、數(shù)據(jù)暫存部件(寄存器)、 同步狀態(tài)機(jī)控制(整個(gè)系統(tǒng)在一個(gè)時(shí)鐘域內(nèi))
  
     流水線操作pipe line:
         K級流水線就是從組合邏輯的輸入到輸出恰好有K個(gè)寄存器組,上一級的輸出是下一級的輸入
         流水線操作獲得第一個(gè)結(jié)果的時(shí)間要比不用流水線操作的時(shí)間長,但以后結(jié)果獲得時(shí)間都只需要一個(gè)時(shí)鐘周期,提高了數(shù)據(jù)吞吐量
         流水線操作的保證:Tclk>K*(組合邏輯延遲+觸發(fā)器的建立保持時(shí)間/觸發(fā)時(shí)間),即時(shí)間片段要長于最大路徑延遲
         體現(xiàn)了面積換速度的思想,在綜合時(shí)考慮的是以面積小為主還是以速度為主
         本質(zhì)上是一種同步邏輯
  
     同步時(shí)序邏輯和異步時(shí)序邏輯:
         同步時(shí)序邏輯指所有寄存器組由唯一時(shí)鐘觸發(fā)   always@(posedge clk)  或always@(negedage clk)
         異步時(shí)序邏輯指觸發(fā)條件不唯一,任意一個(gè)條件都會(huì)引起觸發(fā)  always@(posedge clk or posedage reset)
         目前的綜合器是以同步時(shí)序邏輯綜合的,因?yàn)橥綍r(shí)序邏輯較異步時(shí)序邏輯可靠
         嚴(yán)格的同步要求時(shí)鐘信號傳遞速度遠(yuǎn)遠(yuǎn)大于各部分的延遲,實(shí)際中clk要單獨(dú)用線,而不要經(jīng)過反相器等部件
         always @(posedge.. )  begin ...<=... end  表示同步時(shí)序邏輯(同時(shí)刻賦值)
         不同速率數(shù)據(jù)接口的處理方法(異步數(shù)據(jù)的處理方法):幀同步    FIFO  雙端口RAM
  
     同步狀態(tài)機(jī):
         包括moore和mealy型兩種,及其反饋模型(是一種反饋控制系統(tǒng),當(dāng)前狀態(tài)就是其內(nèi)部狀態(tài)變量)
         狀態(tài)機(jī)的開發(fā)步驟:
             根據(jù)實(shí)際問題列出輸入輸出變量和狀態(tài)數(shù)
             畫出狀態(tài)圖并化簡
             寫出狀態(tài)轉(zhuǎn)移真值表得到邏輯表達(dá)式
             用D觸發(fā)器或JK觸發(fā)器構(gòu)建電路(目前用D觸發(fā)器多)
         verilog描述時(shí)只需要得到簡化的狀態(tài)圖就可以描述
         狀態(tài)編碼方式: 獨(dú)熱碼   格雷碼
         狀態(tài)機(jī)主體程序有單always描述方式和多always描述方式
         采用case/casez/casex建立模型最好,因?yàn)閤是無關(guān)態(tài),生成的電路最簡單
         default: state='bx與實(shí)際情況更一致,效果等同于 default: state<=idle
         只有同步狀態(tài)機(jī)才能被目前的綜合


for語句會(huì)將所有變量的情況展開,占用巨量邏輯資源,替代辦法是用計(jì)數(shù)器和case語句說明所有情況
有優(yōu)先級的if else結(jié)構(gòu)會(huì)消耗更多資源,建議用無優(yōu)先級的case替代
模塊的復(fù)用往往比代碼上修改節(jié)省的資源多
PLL的分頻、倍頻、移相操作會(huì)增加設(shè)計(jì)精度
同步時(shí)序電路的延時(shí):#x通常用于仿真測試,實(shí)際硬件延時(shí)是:長延遲用計(jì)數(shù)器,小延遲用D觸發(fā)器,此方法用來取代延遲鏈
同步電路中,穩(wěn)定的數(shù)據(jù)采用必須滿足采樣寄存器的建立和保持時(shí)間
reg類型在always中不一定綜合成時(shí)序電路,也可能是組合邏輯電路
乒乓操作與作用  異步時(shí)鐘域同步問題
延遲包括門延遲和線延遲
組合邏輯產(chǎn)生的時(shí)鐘僅能應(yīng)用在時(shí)鐘頻率較低、精度要求不高的情況下
增減敏感信號得到的結(jié)果一樣

補(bǔ)充部分:

verilog HDL起初是作為寫testbench而產(chǎn)生的
verilog 有1995進(jìn)入IEEE標(biāo)準(zhǔn),為IEEE-1364, 于2001年進(jìn)行了擴(kuò)展,為IEEE 1364-2001;
verilog AMS可用于模擬電路和數(shù)字電路的綜合,目前正在不斷發(fā)展和完善中;

verilog的標(biāo)識符區(qū)分大小寫,關(guān)鍵字使用小寫;
用\\來進(jìn)行單行注釋,用\* *\來進(jìn)行跨行注釋;
標(biāo)識符由字母、數(shù)字、下劃線構(gòu)成,并以字母開頭;
關(guān)鍵字又叫保留字,只有小寫的關(guān)鍵字才是保留字;

信號的狀態(tài)有4種: 0 1 x z
x和z在描述電路時(shí)不區(qū)分大小寫,在仿真時(shí)大小寫有不同意義;

常量表達(dá)式中:
x z不區(qū)分大小寫;
進(jìn)制符號h o d b與H O D B不區(qū)分大小寫;
十六進(jìn)制中a~f不區(qū)分大小寫;
下劃線_用于提高可讀性;
?在數(shù)中可以代替z;
x和z的左端補(bǔ)位;

字符和字符串都以ASICII碼形式存在,也可以當(dāng)成電路內(nèi)的信號;
字符串必須包含在同一行,不能分成多行書寫;
如果表達(dá)式或者賦值語句中將字符串當(dāng)成操作數(shù),則字符串中的每個(gè)字符都被看成8位的ASCII值序列;

可綜合的信號類型:wire reg memory 它們用來描述數(shù)字電路
不可綜合的數(shù)據(jù)類型:integer real 它們只用仿真,位于testbench中

wire是連線的抽象模型,不能保存數(shù)據(jù),其值由驅(qū)動(dòng)元的值決定;
wire不能用在always或initial塊中;
wire的默認(rèn)值為高阻z;
wire的使用情形: 1.作為模塊的輸出端口  2.用連續(xù)賦值語句assign賦值;
reg是1位寄存器(觸發(fā)器)的抽象模型,可以保存數(shù)據(jù);
reg必須用在always或initial塊中;
reg的默認(rèn)值為x;
reg的使用情形:1.阻塞賦值<= 2.非阻塞賦值=
memory只能是一維的;
memory只能對每個(gè)單元分別初始化,方法:1.一個(gè)一個(gè)賦值  2. 通過系統(tǒng)任務(wù)$readmem賦值
reg[3:0] fc;//一個(gè)4位寄存器   reg fc[3:0]  //4個(gè)一位寄存器

parameter的作用:仿真開始以前對其進(jìn)行賦值,整個(gè)仿真過程中保持其值不變;

關(guān)系運(yùn)算符將以邏輯1或邏輯0返回比較的結(jié)果;
== !=的返回值有0 1 x三種情況,=== !==的返回值只有0 1兩種情況;

verilog由于是描述電路的,用于位的操作較多,有: 位邏輯操作,移位操作,并置操作,歸約操作;
位邏輯運(yùn)算的結(jié)果中,位數(shù)與原操作數(shù)一樣多;
歸約符是在原操作數(shù)的所有位上進(jìn)行操作,并產(chǎn)生1位結(jié)果;
并置運(yùn)算可以發(fā)生在bit與bit之間 bit與矢量之間 矢量與矢量之間

用于仿真的系統(tǒng)任務(wù):
所有系統(tǒng)任務(wù)都必須在initial或always內(nèi);
所有系統(tǒng)任務(wù)都必須以$開頭;
常見系統(tǒng)任務(wù):
  顯示任務(wù)($diplay系列和$write系列)
  監(jiān)控任務(wù)($monitor系列)
  探測任務(wù)($strobe系列)
  文件打開、輸入、關(guān)閉任務(wù)(&fopen &fclose &fdisplay...)
  讀取文件任務(wù)($readmemb $readmemh)
  仿真結(jié)束控制任務(wù)($finish  $stop)
  隨即信號任務(wù)($random)

過程塊: initial塊和always塊
一個(gè)module內(nèi)可以包含多個(gè)initial或always模塊;
所有initial或always塊在0時(shí)刻開始并行執(zhí)行,各initial或always塊內(nèi)部順序執(zhí)行;
initial過程塊主要是面向testbench的,通常不具有可綜合性;
always過程塊在描述電路時(shí)既可以描述組合邏輯電路(電平敏感)又可以描述時(shí)序邏輯電路(邊沿敏感);
寫testbench時(shí)initial通常用于初始化以及順序波形的描述,always通常用于重復(fù)波形的描述;

任務(wù)task與函數(shù)function: 為了描述模塊中被多次執(zhí)行的部分以及為了增強(qiáng)代碼的易讀性
verilog中的高級程序語句如for循環(huán)語句只用在寫testbench中;
begin end和fork join是兩種特殊的括號
if語句的第三種形式適合描述優(yōu)先編碼器,case語句適合描述數(shù)據(jù)選擇器和狀態(tài)機(jī);

case的條件表達(dá)式如果與分支項(xiàng)表達(dá)式長度不同,則在比較前將所有表達(dá)式都統(tǒng)一為這些表達(dá)式的最長長度;
casez忽略z,casex忽略z和x;

assign語句只在右端表達(dá)式發(fā)生變化時(shí)才重新計(jì)算并重新賦值,其余時(shí)間都是連續(xù)賦值;
assign語句可以指定bit、vector或是任意拼接操作的結(jié)果;
assign語句是連續(xù)賦值的,用于驅(qū)動(dòng)網(wǎng)線wire, reg類型不需要連續(xù)賦值,reg類型一旦被賦值就會(huì)一直保存;

過程賦值語句有兩種:阻塞式=和非阻塞式<=,只能在過程塊initial和always中使用;
@對事件觸發(fā)的控制與wait語句不能同時(shí)使用;

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Verilog中 reg和wire 用法和區(qū)別以及always和assign的區(qū)別
FPGA知識大梳理(二)verilogHDL語法入門(1)
verilog 不可綜合語句 總結(jié) 匯總
零基礎(chǔ)學(xué)FPGA(三)Verilog語法基基礎(chǔ)基礎(chǔ)(上)
【Verilog學(xué)習(xí)】Verilog基礎(chǔ)語法
【精品博文】解析 wire與reg的運(yùn)用區(qū)別
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服