在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog HDL的基礎(chǔ)知識(shí)

FPGA技術(shù)實(shí)戰(zhàn) ? 來源:FPGA技術(shù)實(shí)戰(zhàn) ? 2024-10-24 15:00 ? 次閱讀

引言:本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識(shí),重點(diǎn)介紹賦值語句、阻塞與非阻塞、循環(huán)語句、同步與異步、函數(shù)與任務(wù)語法知識(shí)。

1. 賦值語句

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

1.1 連續(xù)賦值語句

連續(xù)賦值用于表示組合邏輯。左側(cè)必須是Net數(shù)據(jù)類型即wire和tri類型。

連續(xù)賦值始終處于活動(dòng)狀態(tài),這意味著,對(duì)右側(cè)值的任何更改都會(huì)導(dǎo)致賦值左側(cè)值被更新。

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

1.2 過程賦值語句(塊)

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

每個(gè)always和initial塊都是并行運(yùn)行的,但每個(gè)塊內(nèi)部是順序執(zhí)行的。

wKgZoWcZ8KuAR2-wAAEJRNCEn98019.png

圖1:過程賦值語句示例

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

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

過程賦值的左側(cè)必須是變量數(shù)據(jù)類型,可以是reg、integer、real或time或realtime。賦值的右側(cè)可以是任何有效的表達(dá)式或信號(hào)

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

wKgaoWcZ8KuAIZBMAADs0kYMPg0368.png

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

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

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

wKgZoWcZ8KqAXzMsAAED48L7ro0164.png

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

阻塞賦值和非阻塞賦值使用規(guī)則

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

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

組合邏輯處理:對(duì)所有輸入列表信號(hào)敏感,用于組合邏輯。

wKgaoWcZ8KqAB7j3AACTCQixCCU843.png

圖4:組合邏輯處理

時(shí)序邏輯處理:對(duì)時(shí)鐘信號(hào)或者控制信號(hào)沿敏感(通過添加posedge或者negedge關(guān)鍵字),用于時(shí)序邏輯。

wKgZoWcZ8KqAVqEdAAC4GIn5Aa0223.png
圖5:時(shí)序邏輯處理

4. 過程塊語句

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

4.1 if-else語句

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

wKgaoWcZ8KqAAalXAAEU_wwMuGY855.png

圖6:if-else示例

可以看到if語句合成為兩個(gè)輸入復(fù)用器。可以看到,多個(gè)if語句會(huì)導(dǎo)致多個(gè)復(fù)用,從而產(chǎn)生優(yōu)先級(jí)。如果不需要在你的電路中進(jìn)行優(yōu)先級(jí)排序,case語句會(huì)更有效率。

4.2 case語句

在case語句中,所有條件都將根據(jù)表達(dá)式進(jìn)行檢查。這導(dǎo)致一個(gè)多路復(fù)用器具有多個(gè)輸入。

wKgaoWcZ8KuAOuvoAAFKvljPJ48953.png

圖7:case語句示例

casez語句將表達(dá)式或條件中的所有'z'值視為不關(guān)心。

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

wKgZoWcZ8KqAZhPyAAClsurGxns223.png

wKgaoWcZ8KqATY5XAACmUsAeoXI001.png

圖8:casez和casex語句示例

4.3 循環(huán)語句

(1)forever循環(huán)語句示例

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

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

(2)repeat循環(huán)語句

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

repeat語句可以設(shè)置循環(huán)的次數(shù),該語句可以用于綜合,要具有明確的循環(huán)表達(dá)式和循環(huán)條件。

(3)while循環(huán)語句

initial begin      
 cnt = 0;
while(cnt

cnt循環(huán)計(jì)數(shù)100次,在cnt為101時(shí)退出循環(huán),該語句可以用于綜合,要具有明確的循環(huán)表達(dá)式和循環(huán)條件。

(4)for循環(huán)語句

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循環(huán)語句實(shí)現(xiàn)4bit左移位功能,for語句可以進(jìn)行綜合,實(shí)現(xiàn)硬件電路。

5. 同步邏輯和異步邏輯

wKgaoWcZ8MiANRunAAFFIQkBijQ280.png

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

always敏度列表表達(dá)方式將導(dǎo)致控制信號(hào)是同步的或異步的。上圖中左側(cè)代碼具有同步預(yù)置和觸發(fā)器清除功能,該代碼僅在時(shí)鐘上升沿敏感,右側(cè)代碼敏感列表包含時(shí)鐘和異步清除信號(hào),如果aclr上升沿觸發(fā),就會(huì)引起q清零,不受時(shí)鐘控制。

6. 函數(shù)(function)和任務(wù)(task)

Verilog HDL有兩種子程序,函數(shù)和任務(wù)。它們都必須在模塊中定義。函數(shù)根據(jù)其輸入返回一個(gè)值。函數(shù)通常產(chǎn)生組合邏輯,并用于assign表達(dá)式中。

任務(wù)和函數(shù)對(duì)于模塊中的重復(fù)代碼非常有用。它們提高了代碼的可讀性。

wKgaoWcZ8MiAZjlbAAE75heiNDg598.png

wKgZoWcZ8MiAasp6AAC6_PxNQuo382.png

圖10:function示例

wKgZoWcZ8MiAXn1mAAEGxIwwbQg249.png

圖11:task示例

function和task的異同點(diǎn)

相同點(diǎn):

(1)任務(wù)和函數(shù)必須在模塊內(nèi)定義,其作用范圍僅適用于該模塊,可以在模塊內(nèi)多次調(diào)用;

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

(3)任務(wù)和函數(shù)中只能使用行為級(jí)語句,但是不能包含always和initial塊,設(shè)計(jì)者可以在always和initial塊中調(diào)用任務(wù)和函數(shù)。

差異點(diǎn):

(1)函數(shù)能調(diào)用另一個(gè)函數(shù),但是不能調(diào)用任務(wù),任務(wù)可以調(diào)用另一個(gè)任務(wù),也可以調(diào)用函數(shù);

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4124

    瀏覽量

    133991
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110392
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    328

    瀏覽量

    47468
  • 循環(huán)語句
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    4907

原文標(biāo)題:Verilog HDL基礎(chǔ)知識(shí)(二)

文章出處:【微信號(hào):FPGA技術(shù)實(shí)戰(zhàn),微信公眾號(hào):FPGA技術(shù)實(shí)戰(zhàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Verilog HDL練習(xí)題和Verilog基礎(chǔ)知識(shí)適合verilog新人

    Verilog HDL練習(xí)題和Verilog基礎(chǔ)知識(shí)適合verilog新人Verilog
    發(fā)表于 08-15 15:08

    FPGA就業(yè)培訓(xùn)

    的設(shè)計(jì)流程;使學(xué)員掌握FPGA設(shè)計(jì)流程,對(duì)FPGA設(shè)計(jì)有一個(gè)宏觀認(rèn)識(shí)。模塊二 Verilog HDL 基礎(chǔ)知識(shí)[size=12.0000pt]Verilog
    發(fā)表于 09-29 16:33

    FPGA就業(yè)培訓(xùn)班

    的設(shè)計(jì)流程;使學(xué)員掌握FPGA設(shè)計(jì)流程,對(duì)FPGA設(shè)計(jì)有一個(gè)宏觀認(rèn)識(shí)。模塊二 Verilog HDL 基礎(chǔ)知識(shí)[size=12.0000pt]Verilog
    發(fā)表于 09-30 10:36

    【妖精分享】Verilog HDL基礎(chǔ)知識(shí)

    歡迎下載
    發(fā)表于 02-03 10:43

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

    硬件描述語言Verilog,西安科大教學(xué)課件,總共包括完整八個(gè)章節(jié)學(xué)習(xí)內(nèi)容。具體每章節(jié)內(nèi)容如下第一章:Verilog HDL數(shù)字集成電路設(shè)計(jì)方法概述第二章:Verilog
    發(fā)表于 03-30 14:31

    Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程(第3版)

    習(xí) Verilog HDL 基礎(chǔ)知識(shí)。按照書上的步驟,可以使大學(xué)電子類及計(jì)算機(jī)工程類本科及研究生,以及相關(guān)領(lǐng)域的設(shè)計(jì)工程人員在半年內(nèi)掌握Veri log HDL 設(shè)計(jì)技術(shù)。?本書可作為
    發(fā)表于 03-21 13:46

    Verilog HDL基礎(chǔ)知識(shí)

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

    Verilog HDL綜合實(shí)用教程

    Verilog HDL 綜合實(shí)用教程第1章 基礎(chǔ)知識(shí)第2章 從Verilog結(jié)構(gòu)到邏輯門第3章 建模示例第4章 模型的優(yōu)化第5章 驗(yàn)證附錄A 可綜合的語言結(jié)構(gòu)附錄B 通用庫
    發(fā)表于 07-20 11:21 ?86次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>綜合實(shí)用教程

    Verilog HDL華為入門教程

    Verilog HDL 華為入門教程 本文主要介紹了Verilog HDL 語言的一些基本知識(shí),目的是使初學(xué)者能夠迅速掌握
    發(fā)表于 02-11 08:35 ?141次下載

    Verilog HDL基礎(chǔ)知識(shí)

    發(fā)表于 02-19 19:29 ?21次下載

    Verilog_HDL基礎(chǔ)知識(shí)非常好的學(xué)習(xí)教程

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

    Verilog_HDL基礎(chǔ)知識(shí)非常好的學(xué)習(xí)教程 (1)

    Verilog_HDL基礎(chǔ)知識(shí)非常好的學(xué)習(xí)教程 (1)
    發(fā)表于 01-04 12:33 ?0次下載

    Verilog HDL基礎(chǔ)知識(shí)詳細(xì)說明

    硬件描述語言基本語法和實(shí)踐 (1)VHDL 和Verilog HDL的各自特點(diǎn)和應(yīng)用范圍 (2)Verilog HDL基本結(jié)構(gòu)語言要素與語法規(guī)則 (3)
    發(fā)表于 07-03 17:36 ?54次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>的<b class='flag-5'>基礎(chǔ)知識(shí)</b>詳細(xì)說明

    Verilog教程之Verilog HDL數(shù)字集成電路設(shè)計(jì)方法和基礎(chǔ)知識(shí)課件

    本文檔的主要內(nèi)容詳細(xì)介紹的是Verilog教程之Verilog HDL數(shù)字集成電路設(shè)計(jì)方法和基礎(chǔ)知識(shí)課件
    發(fā)表于 12-09 11:24 ?53次下載
    <b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>數(shù)字集成電路設(shè)計(jì)方法和<b class='flag-5'>基礎(chǔ)知識(shí)</b>課件

    Verilog HDL基礎(chǔ)知識(shí)詳細(xì)概述

    計(jì)算機(jī)的巨大能力對(duì)用Ⅴ Verilog Hdl或ⅥHDL建模的復(fù)雜數(shù)字邏輯進(jìn)行仿真然后再自動(dòng)綜合以生成符合要求且在電路結(jié)構(gòu)上可以實(shí)現(xiàn)的數(shù)字邏輯網(wǎng)表( Netlist),根據(jù)網(wǎng)表和某種工藝的器件自動(dòng)生成具體電路,然后生成該工藝條件
    發(fā)表于 02-02 16:19 ?18次下載
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>的<b class='flag-5'>基礎(chǔ)知識(shí)</b>詳細(xì)概述
    主站蜘蛛池模板: 国产精品欧美激情在线播放 | 亚洲国产精品热久久2022 | 欧美电影一区二区 | 国模私拍福利一区二区 | 国产高清视频在线播放www色 | 午夜三级网站 | 久久国产乱子伦精品免费午夜 | 美女扒开腿让男人桶尿口 | 狠狠ri| 四虎影院永久 | 国产午夜毛片v一区二区三区 | 国内视频一区二区三区 | 狠狠操人人 | 手机成人在线视频 | 亚洲最大的黄色网址 | 六月丁香激情 | 亚洲精品mv在线观看 | 成人久久伊人精品伊人 | xxxx曰本 | www.97色| 性网站视频 | 夜夜想夜夜爽天天爱天天摸 | 在线二区 | 夜夜偷影视 | 轻点灬大ji巴太粗太长了爽文 | 黄网站在线观看 | 看黄在线观看 | 免费国产网站 | 午夜欧美成人久久久久久 | 天天在线天天综合网色 | 午夜精品久久久久久99热7777 | 成年午夜一级毛片视频 | 日本aaaaa高清免费看 | 在线91精品亚洲网站精品成人 | 国内真实下药迷j在线观看 国内自拍 亚洲系列 欧美系列 | 窝窝午夜看片 | 久久99久久精品国产99热 | 一级片免费观看视频 | 综合色99 | 亚洲精品影视 | 亚洲一区二区三区不卡视频 |