色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Verilog HDL的基礎知識

FPGA技術實戰 ? 來源:FPGA技術實戰 ? 2024-10-24 15:00 ? 次閱讀

引言:本文繼續介紹Verilog HDL基礎知識,重點介紹賦值語句、阻塞與非阻塞、循環語句、同步與異步、函數與任務語法知識。

1. 賦值語句

在Verilog中,有兩種進行賦值的方法,即連續賦值語句和過程賦值語句(塊)。

1.1 連續賦值語句

連續賦值用于表示組合邏輯。左側必須是Net數據類型即wire和tri類型。

連續賦值始終處于活動狀態,這意味著,對右側值的任何更改都會導致賦值左側值被更新。

//連續賦值方法1    
wire [15:0] adder_out = mult_out + out;     
//連續賦值方法2    
wire [15;0] adder_out;     
assign adder_out = mult_out + out;
仿真測試中,可以對連續賦值語句分配延遲,但在綜合時,該延遲被忽略。
assign#5adder_out=mult_out+out;//延遲5ns

1.2 過程賦值語句(塊)

過程賦值語句包括initial和always兩種。intial語句用于初始化仿真使用,always使用行為功能描述電路功能。

每個always和initial塊都是并行運行的,但每個塊內部是順序執行的。

wKgZoWcZ8KuAR2-wAAEJRNCEn98019.png

圖1:過程賦值語句示例

2. 阻塞賦值和非阻塞賦值

always和initial過程塊有種類型賦值即阻塞賦值(=)和非阻塞賦值(<=)。

過程賦值的左側必須是變量數據類型,可以是reg、integer、real或time或realtime。賦值的右側可以是任何有效的表達式或信號

阻塞賦值和非阻塞賦值示例如下圖所示。

wKgaoWcZ8KuAIZBMAADs0kYMPg0368.png

圖2:阻塞賦值和非阻塞賦值示例

如圖2左側阻塞賦值,兩條語句同時執行,延遲#5時,a=b=2,再延遲#10時,c=a=2,即賦值語句立即執行,執行完畢后才執行下一條語句,左側值在賦值語句執行完后立即改變。如圖2右側非阻塞賦值,延遲#5時,a=b=2,而再延遲#5時,c=a=1,即c值并未立即為a的新值。

圖3展示了阻塞賦值和非阻塞賦值綜合后的RTL電路舉例。

wKgZoWcZ8KqAXzMsAAED48L7ro0164.png

圖3:阻塞賦值和非阻塞賦值綜合后的RTL電路舉例

阻塞賦值和非阻塞賦值使用規則

組合電路一般使用阻塞賦值,時序電路使用非阻塞賦值,這可以避免混淆,提高代碼可讀性。

3. 兩種類型RTL處理:組合邏輯處理和時序邏輯處理

組合邏輯處理:對所有輸入列表信號敏感,用于組合邏輯。

wKgaoWcZ8KqAB7j3AACTCQixCCU843.png

圖4:組合邏輯處理

時序邏輯處理:對時鐘信號或者控制信號沿敏感(通過添加posedge或者negedge關鍵字),用于時序邏輯。

wKgZoWcZ8KqAVqEdAAC4GIn5Aa0223.png
圖5:時序邏輯處理

4. 過程塊語句

initial和always過程塊中有三種常用語句:if-esle、case和循環語句。

4.1 if-else語句

語句以關鍵字if開頭,后跟一個條件,然后是條件為true時要執行的語句序列。else子句(如果存在)將在條件為false時執行。

wKgaoWcZ8KqAAalXAAEU_wwMuGY855.png

圖6:if-else示例

可以看到if語句合成為兩個輸入復用器。可以看到,多個if語句會導致多個復用,從而產生優先級。如果不需要在你的電路中進行優先級排序,case語句會更有效率。

4.2 case語句

在case語句中,所有條件都將根據表達式進行檢查。這導致一個多路復用器具有多個輸入。

wKgaoWcZ8KuAOuvoAAFKvljPJ48953.png

圖7:case語句示例

casez語句將表達式或條件中的所有'z'值視為不關心。

casex語句將所有“x”和“z”值視為不關心,而不是邏輯值。

wKgZoWcZ8KqAZhPyAAClsurGxns223.png

wKgaoWcZ8KqATY5XAACmUsAeoXI001.png

圖8:casez和casex語句示例

4.3 循環語句

(1)forever循環語句示例

initialbegin     
  clk = 0;    
forever#25clk=~clk;   
end

以上示例為周期為#50的clk時鐘,注意該語句不可綜合,只能用于仿真。

(2)repeat循環語句

if(rotate == 1)  
repeat(8)begin//循環8次  
temp=data[15];  
data = {data <<1,temp};  
??end   ?

repeat語句可以設置循環的次數,該語句可以用于綜合,要具有明確的循環表達式和循環條件。

(3)while循環語句

initial begin      
 cnt = 0;
while(cnt

cnt循環計數100次,在cnt為101時退出循環,該語句可以用于綜合,要具有明確的循環表達式和循環條件。

(4)for循環語句

integer i;    
always @(inp,cnt) begin    
result[7:4] = 0;  
result[3:0] = inp;  
if(cnt==1)begin  
for(i=4;i<=7;?i=i+1)?begin  
??????result[i]?=?result[i-4];  
????end ?   
??end     
end

以上for循環語句實現4bit左移位功能,for語句可以進行綜合,實現硬件電路。

5. 同步邏輯和異步邏輯

wKgaoWcZ8MiANRunAAFFIQkBijQ280.png

圖9:同步邏輯及異步邏輯

always敏度列表表達方式將導致控制信號是同步的或異步的。上圖中左側代碼具有同步預置和觸發器清除功能,該代碼僅在時鐘上升沿敏感,右側代碼敏感列表包含時鐘和異步清除信號,如果aclr上升沿觸發,就會引起q清零,不受時鐘控制。

6. 函數(function)和任務(task)

Verilog HDL有兩種子程序,函數和任務。它們都必須在模塊中定義。函數根據其輸入返回一個值。函數通常產生組合邏輯,并用于assign表達式中。

任務和函數對于模塊中的重復代碼非常有用。它們提高了代碼的可讀性。

wKgaoWcZ8MiAZjlbAAE75heiNDg598.png

wKgZoWcZ8MiAasp6AAC6_PxNQuo382.png

圖10:function示例

wKgZoWcZ8MiAXn1mAAEGxIwwbQg249.png

圖11:task示例

function和task的異同點

相同點:

(1)任務和函數必須在模塊內定義,其作用范圍僅適用于該模塊,可以在模塊內多次調用;

(2)任務和函數中可以聲明局部變量,如寄存器,時間,整數,實數和事件,但是不能聲明線網類型的變量;

(3)任務和函數中只能使用行為級語句,但是不能包含always和initial塊,設計者可以在always和initial塊中調用任務和函數。

差異點:

(1)函數能調用另一個函數,但是不能調用任務,任務可以調用另一個任務,也可以調用函數;

(2)函數總是在仿真時刻0開始 ,任務可以在非零時刻開始執行;

(3)函數一定不能包含任何延遲,事件或者時序控制聲明語句,任務可以包含延遲,事件或者時序控制聲明語句;

(4)函數至少要有一個輸入變量,也可以有多個輸入變量,任務可以沒有或者有多個輸入,輸出,輸入輸出變量;

(5)函數只能返回一個值,函數不能有輸出或者雙向變量,任務不返回任何值,或者返回多個輸出或雙向變量值。

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

    關注

    50

    文章

    4070

    瀏覽量

    133552
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110074
  • HDL
    HDL
    +關注

    關注

    8

    文章

    327

    瀏覽量

    47376
  • 循環語句
    +關注

    關注

    0

    文章

    10

    瀏覽量

    4859

原文標題:Verilog HDL基礎知識(二)

文章出處:【微信號:FPGA技術實戰,微信公眾號:FPGA技術實戰】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Verilog HDL練習題和Verilog基礎知識適合verilog新人

    Verilog HDL練習題和Verilog基礎知識適合verilog新人Verilog
    發表于 08-15 15:08

    FPGA就業培訓

    的設計流程;使學員掌握FPGA設計流程,對FPGA設計有一個宏觀認識。模塊二 Verilog HDL 基礎知識[size=12.0000pt]Verilog
    發表于 09-29 16:33

    FPGA就業培訓班

    的設計流程;使學員掌握FPGA設計流程,對FPGA設計有一個宏觀認識。模塊二 Verilog HDL 基礎知識[size=12.0000pt]Verilog
    發表于 09-30 10:36

    【妖精分享】Verilog HDL基礎知識

    歡迎下載
    發表于 02-03 10:43

    【干貨】史上最全的硬件描述語言Verilog學習資料(FPGA工程師進階必學)

    硬件描述語言Verilog,西安科大教學課件,總共包括完整八個章節學習內容。具體每章節內容如下第一章:Verilog HDL數字集成電路設計方法概述第二章:Verilog
    發表于 03-30 14:31

    Verilog數字系統設計教程(第3版)

    Verilog HDL 基礎知識。按照書上的步驟,可以使大學電子類及計算機工程類本科及研究生,以及相關領域的設計工程人員在半年內掌握Veri log HDL 設計技術。?本書可作為
    發表于 03-21 13:46

    Verilog HDL基礎知識

    Verilog HDL基礎知識:硬件描述語言是硬件設計人員和電子設計自動化工具之間的界面。其主要目的是用來編寫設計文件,建立電子系統行為級的仿真模型即利用計算機的巨大能力對用
    發表于 05-31 19:33 ?49次下載

    Verilog HDL綜合實用教程

    Verilog HDL 綜合實用教程第1章 基礎知識第2章 從Verilog結構到邏輯門第3章 建模示例第4章 模型的優化第5章 驗證附錄A 可綜合的語言結構附錄B 通用庫
    發表于 07-20 11:21 ?86次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>綜合實用教程

    Verilog HDL基礎知識

    發表于 02-19 19:29 ?21次下載

    Verilog_HDL基礎知識非常好的學習教程

    這是我個人整理的資料,希望大家有興趣的選擇性下載:FPGA系列
    發表于 01-08 17:39 ?125次下載

    Verilog基礎知識

    Verilog基礎知識,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-10 15:29 ?4次下載

    Verilog_HDL基礎知識非常好的學習教程 (1)

    Verilog_HDL基礎知識非常好的學習教程 (1)
    發表于 01-04 12:33 ?0次下載

    Verilog HDL基礎知識詳細說明

    硬件描述語言基本語法和實踐 (1)VHDL 和Verilog HDL的各自特點和應用范圍 (2)Verilog HDL基本結構語言要素與語法規則 (3)
    發表于 07-03 17:36 ?54次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>的<b class='flag-5'>基礎知識</b>詳細說明

    Verilog教程之Verilog HDL數字集成電路設計方法和基礎知識課件

    本文檔的主要內容詳細介紹的是Verilog教程之Verilog HDL數字集成電路設計方法和基礎知識課件
    發表于 12-09 11:24 ?53次下載
    <b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>數字集成電路設計方法和<b class='flag-5'>基礎知識</b>課件

    Verilog HDL基礎知識詳細概述

    計算機的巨大能力對用Ⅴ Verilog Hdl或ⅥHDL建模的復雜數字邏輯進行仿真然后再自動綜合以生成符合要求且在電路結構上可以實現的數字邏輯網表( Netlist),根據網表和某種工藝的器件自動生成具體電路,然后生成該工藝條件
    發表于 02-02 16:19 ?18次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>的<b class='flag-5'>基礎知識</b>詳細概述
    主站蜘蛛池模板: 春暖花开 性 欧洲| 亚洲在线国产日韩欧美| 琪琪午夜福利免费院| 另类欧美尿交| 久久免费看少妇级毛片蜜臀| 精品人妻伦一二三区久久AAA片| 国产午夜三级一区二区三| 国产精品美女久久久网站动漫| 俄罗斯18xv在线观看| 国产成久久免费精品AV片天堂| 成人毛片免费在线观看| 成人手机在线观看| 动漫在线观看免费肉肉| 国产成人高清视频| 国产乱人伦AV麻豆网| 国产在线精品亚洲一品区| 韩剧19禁啪啪无遮挡大尺度| 激情男女高潮射精AV免费| 精品亚洲麻豆1区2区3区| 久久综合香蕉久久久久久久| 麻豆国产原创中文AV网站| 免费精品一区二区三区AA片| 嫩草影院成人| 日韩高清在线亚洲专区| 天上人间影院久久国产| 小黄鸭YELLOWDUCK7596| 亚洲欧美日本国产在线观18| 一边摸一边桶一边脱免费| 折磨比基尼美女挠肚子| 97视频免费观看2区| 办公室的秘密2中文字幕| 国产 在线 亚洲 欧美 动漫| 国产精品-区区久久久狼| 国产亚洲AV精品无码麻豆| 久久ZYZ资源站无码中文动漫| 老牛天天晚上夜噜噜噜| 欧美午夜精品一区二区蜜桃| 色尼玛亚洲综合| 亚洲免费片| 99re久久热在线播放8| 抽插妇女疯狂视频|