女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Verilog HDL語言中連續賦值的特征

電子工程師 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2021-03-05 15:38 ? 次閱讀

數據流模型化

本章講述Verilog HDL語言中連續賦值的特征。連續賦值用于數據流行為建模;相反,過程賦值用于(下章的主題)順序行為建模。組合邏輯電路的行為最好使用連續賦值語句建模。

7.1 連續賦值語句

連續賦值語句將值賦給線網(連續賦值不能為寄存器賦值),它的格式如下(簡單形式):assignLHS_target = RHS_expression ;例如,wire [3:0] Z, Preset, Clear; // 線網說明assign Z = Preset & Clear; //連續賦值語句連續賦值的目標為 Z,表達式右端為“ Preset & Clear”。注意連續賦值語句中的關鍵詞assign。連續賦值語句在什么時候執行呢 ?

只要在右端表達式的操作數上有事件 (事件為值的變化)發生時,表達式即被計算;如果結果值有變化,新結果就賦給左邊的線網。在上面的例子中,如果 P re s e t或C l e a r變化,就計算右邊的整個表達式。如果結果變化,那么結果即賦值到線網Z。連續賦值的目標類型如下:

1) 標量線網

2)。 向量線網

3) 向量的常數型位選擇4) 向量的常數型部分選擇5) 上述類型的任意的拼接運算結果下面是連續賦值語句的另一些例子:assgin BusErr = Parity| (One & OP) ;assign Z = ~ (A | B) & (C | D) & (E | F) ;只要A、B、C、D、E或F的值變化,最后一個連續賦值語句就執行。在這種情況下,計算右邊整個表達式,并將結果賦給目標 Z。

在下一個例子中,目標是一個向量線網和一個標量線網的拼接結果。wireCout, C i n ;wire [3:0] Sum, A, B;。 。 .assign{Cout, Sum} = A + B + Cin;因為A和B是4位寬,加操作的結果最大能夠產生 5位結果。左端表達式的長度指定為 5位(Cout 1位,Sum 4位)。

賦值語句因此促使右端表達式最右邊的 4位的結果賦給S u m,第5位(進位位)賦給C o u t。下例說明如何在一個連續賦值語句中編寫多個賦值方式。assgin M u x = (S = = 0)?

A : ‘bz, M u x = (S = = 1)?

B : ’bz, M u x = (S = = 2)?

C : ‘bz, M u x = (S = = 3)?

D : ’bz;這是下述4個獨立的連續賦值語句的簡化書寫形式。

assign M u x = (S = = 0)? A : ‘bz;assign M u x = (S = = 1)? B : ’bz;assign M u x = (S = = 2)? C : ‘bz;assign M u x = (S = = 3)? D : ’bz;

7.2 舉例

下例采用數據流方式描述1位全加器。

在本例中,有兩個連續賦值語句。這些賦值語句是并發的,與其書寫的順序無關。只要連續賦值語句右端表達式中操作數的值變化 (即有事件發生), 連續賦值語句即被執行。如果 A變化,則兩個連續賦值都被計算,即同時對右端表達式求值,并將結果賦給左端目標。

7.3 線網說明賦值

連續賦值可作為線網說明本身的一部分。這樣的賦值被稱為線網說明賦值。例如 :wire [3:0] S u m = 4‘b0;wire C l e a r = ’b1;wire A _ G T _ B = A 》 B, B_GT_A= B 》 A;線網說明賦值說明線網與連續賦值。說明線網然后編寫連續賦值語句是一種方便的形式。參見下例。wire Clear;assign Clear= ‘b1;等價于線網聲明e賦值:wire Clear= ’b1;不允許在同一個線網上出現多個線網說明賦值。如果多個賦值是必需的,則必須使用連續賦值語句。

7.4 時延

如果在連續賦值語句中沒有定義時延,如前面的例子,則右端表達式的值立即賦給左端表達式, 時延為0。如下例所示顯式定義連續賦值的時延。assign #6 Ask = Quiet | | L a t e;規定右邊表達式結果的計算到其賦給左邊目標需經過 6個時間單位時延。例如,如果在時刻5,L a t e值發生變化,則賦值的右端表達式被計算,并且 A s k在時刻11( = 5 +6)被賦于新值。圖7 - 1舉例說明了時延概念。

2dff7374-7c77-11eb-8b86-12bb97331649.png

如果右端在傳輸給左端之前變化,會發生什么呢?在這種情況下,應用最新的變化值。下例顯示了這種行為:assign #4 Cab = Drm;圖7 - 2顯示了這種變化的效果。右端發生在時延間隔內的變化被濾掉。例如,在時刻 5,Dr m的上升邊沿預定在時刻9顯示在Cab上,但是因為Drm在時刻8下降為0,預定在Cab上的值被刪除。同樣, Drm在時刻1 8和2 0之間的脈沖被濾掉。這也同樣適用于慣性時延行為:即右端值變化在能夠傳播到左端前必須至少保持時延間隔;如果在時延間隔內右端值變化,則前面的值不能傳輸到輸出。

2e69f7da-7c77-11eb-8b86-12bb97331649.png

對于每個時延定義,總共能夠指定三類時延值:1) 上升時延2) 下降時延3) 關閉時延這三類時延的語法如下:

在第一個賦值語句中,上升時延、下降時延、截止時延和傳遞到 x的時延相同,都為 4。在第二個語句中,上升時延為4,下降時延為8,傳遞到x和z的時延相同,是4和8中的最小值,即4。在第3個賦值中,上升時延為 4,下降時延為8,截止時延為6,傳遞到x的時延為4 ( 4、8和6中的最小值)。在最后的語句中,所有的時延都為 0。上升時延對于向量線網目標意味著什么呢 ? 如果右端從非0向量變化到0向量,那么就使用下降時延。如果右端值到達z,那么使用下降時延;否則使用上升時延。

7.5 線網時延

時延也可以在線網說明中定義,如下面的說明。wire #5 A r b;這個時延表明A r b驅動源值改變與線網A r b本身間的時延。考慮下面對線網 A r b的連續賦值語句:

assign # 2 Arb = Bod & Cap;

2ef9ce6e-7c77-11eb-8b86-12bb97331649.png

假定在時刻1 0,B o d上的事件促使右端表達式計算。如果結果不同,則在 2個時間單位后賦值給 A r b,即時刻1 2。但是因為定義了線網時延,實際對 A r b的賦值發生在時刻17( = 10 + 2 + 5)。圖7 - 3的波形舉例說明了不同的時延。圖7 - 4很好地描述了線網時延的效果。首先使用賦值時延,然后增加任意線網時延。如果時延在線網說明賦值中出現,那么時延不是線網時延,而是賦值時延。下面是 A的線網說明賦值,2個時間單位是賦值時延,而不是線網時延。w i r e #2 A = B - C; // 賦值時延

7.6 舉例

7.6.1 主從觸發器

下面是圖5 - 9所示的主從觸發器的Verilog HDL模型。

7.6.2 數值比較器

下面是8位(參數定義的)數值比較器數據流模型。

原文標題:Verilog入門-數據流模型化

文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Verilog
    +關注

    關注

    28

    文章

    1366

    瀏覽量

    111810
  • HDL
    HDL
    +關注

    關注

    8

    文章

    330

    瀏覽量

    47820

原文標題:Verilog入門-數據流模型化

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    在testbench中如何使用阻塞賦值和非阻塞賦值

    本文詳細闡述了在一個testbench中,應該如何使用阻塞賦值與非阻塞賦值。首先說結論,建議在testbench中,對時鐘信號(包括分頻時鐘)使用阻塞賦值,對其他同步信號使用非阻塞賦值
    的頭像 發表于 04-15 09:34 ?538次閱讀
    在testbench中如何使用阻塞<b class='flag-5'>賦值</b>和非阻塞<b class='flag-5'>賦值</b>

    FPGA Verilog HDL語法之編譯預處理

    Verilog HDL語言和C語言一樣也提供了編譯預處理的功能。“編譯預處理”是Verilog HDL
    的頭像 發表于 03-27 13:30 ?462次閱讀
    FPGA <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語法之編譯預處理

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語言,用于從算法級、門級到開關級的多種抽象設計層次的數字系統建模。現實生活中多用于專用集成電路
    的頭像 發表于 03-17 15:17 ?1824次閱讀
    一文詳解<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>

    淺談Verilog和VHDL的區別

    Verilog和VHDL是兩種廣泛使用的硬件描述語言HDL),它們用于描述和模擬數字電路系統的行為和結構。這兩種語言的主要作用是幫助工程師設計、仿真和驗證集成電路(IC)和系統級芯片
    的頭像 發表于 02-17 14:20 ?1183次閱讀
    淺談<b class='flag-5'>Verilog</b>和VHDL的區別

    Verilog 與 ASIC 設計的關系 Verilog 代碼優化技巧

    Verilog與ASIC設計的關系 Verilog作為一種硬件描述語言HDL),在ASIC設計中扮演著至關重要的角色。ASIC(Application Specific Integr
    的頭像 發表于 12-17 09:52 ?895次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風格 VerilogVerilog 的語法更接近于 C 語言,對于有 C 語言背景的工程
    的頭像 發表于 12-17 09:44 ?1456次閱讀

    數字系統設計與Verilog HDL

    數字系統設計與Verilog HDL 1.兼職職位 ,不坐班,等待公司分配任務,時間自由 2.薪資: 200-5000不等可具體協商 3.要求:國內985/211院校在讀或畢業,或者國外前100的院校 4.英語水平:四級500+/六級440+/雅思6.5+/托福90+
    發表于 11-06 17:57

    Verilog硬件描述語言參考手冊

    一. 關于 IEEE 1364 標準二. Verilog簡介三. 語法總結四. 編寫Verilog HDL源代碼的標準五. 設計流程
    發表于 11-04 10:12 ?4次下載

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的通信
    的頭像 發表于 11-01 16:51 ?1027次閱讀

    system verilog語言簡介

    ICer需要System Verilog語言得加成,這是ICer深度的表現。
    發表于 11-01 10:44 ?0次下載

    FPGA編程語言的入門教程

    FPGA(現場可編程邏輯門陣列)的編程涉及特定的硬件描述語言HDL),其中Verilog和VHDL是最常用的兩種。以下是一個FPGA編程語言(以V
    的頭像 發表于 10-25 09:21 ?994次閱讀

    Verilog HDL的基礎知識

    本文繼續介紹Verilog HDL基礎知識,重點介紹賦值語句、阻塞與非阻塞、循環語句、同步與異步、函數與任務語法知識。
    的頭像 發表于 10-24 15:00 ?1051次閱讀
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>的基礎知識

    FPGA Verilog HDL代碼如何debug?

    ,共同進步。 歡迎加入FPGA技術微信交流群14群! 交流問題(一) Q:Verilog代碼如何debug?最近學習fpga,寫了不少verilog,開始思考如何debug的問題!c語言是順序執行,而
    發表于 09-24 19:16

    FPGA Verilog HDL有什么奇技巧?

    時,可以通過合適的同步機制(如雙緩沖、握手信號等)來減少這些問題的發生,提高系統的穩定性和可靠性。 交流問題(三) Q:Verilog reg有沒有必要全部初始賦值Verilog reg開始時不賦初值
    發表于 09-12 19:10

    c語言中從左到右結合怎么看

    在C語言中,操作符的結合性(Associativity)是指當操作符在表達式中連續出現時,它們如何與操作數結合的順序。對于大多數二元操作符(即需要兩個操作數的操作符),C語言遵循兩種基本的結合方式
    的頭像 發表于 08-20 11:42 ?1460次閱讀