精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

verilog可綜合的語(yǔ)法子集

FPGA學(xué)習(xí)筆記 ? 來(lái)源:FPGA學(xué)習(xí)筆記 ? 作者:FPGA學(xué)習(xí)筆記 ? 2023-07-23 12:25 ? 次閱讀

可綜合的語(yǔ)法是指硬件能夠?qū)崿F(xiàn)的一些語(yǔ)法,這些語(yǔ)法能夠被EDA工具支持,能夠通過(guò)編譯最終生成用于燒錄到FPGA器件中的配置數(shù)據(jù)流。

一、模塊聲明類(lèi)語(yǔ)法:module...endmodule

每個(gè)verilog文件中都會(huì)出現(xiàn)模塊聲明類(lèi)語(yǔ)法,它是一個(gè)固定的用法,所有的功能實(shí)現(xiàn)都應(yīng)該包含在...之中。示例如下:

module my_first_prj(<端口信號(hào)列表>...)

<邏輯代碼>...

endmodule

二、端口聲明:input,output,inout

每一個(gè)module都會(huì)有輸入/輸出的信號(hào)用于和外部器件或其它module通信銜接。對(duì)于本地module而言,這些信號(hào)可以歸為三類(lèi),即輸入(input)信號(hào)、輸出(output)信號(hào)和雙向(inout)信號(hào)。示例如下:

input sys_clk;

input wite rst_n;

input[7:0] data_in;

三、參數(shù)定義:parameter

Parameter用于申明一些常量,主要是便于模塊的移植或升級(jí)時(shí)的修改。示例如下:

module<模塊命名>(<端口命名1>,<端口命名2>,...);

//輸入端口申明

input<端口命名1>;

input wire<端口命名2>;

input[<最高位>:<最低位>]<端口命名3>;

...

//輸出端口申明

output<端口命名4>;

output[<最高位>:<最低位>]<端口命名5>;

output reg[<最高位>:<最低位>]<端口命名6>;

...

//參數(shù)定義

parameter<參數(shù)命名1>=<默認(rèn)值1>;

parameter[<最高位>:<最低位>]<參數(shù)命名2>=<默認(rèn)值2>;

...

//具體功能邏輯代碼

...

endmodule

四、信號(hào)類(lèi)型:wite,reg等

在下圖所示的簡(jiǎn)單電路中,分別定義兩個(gè)寄存器(reg)鎖存當(dāng)前的輸入din。每個(gè)時(shí)鐘clk上升沿到來(lái)時(shí),reg都會(huì)鎖存到新的輸入數(shù)據(jù),而wire就是這兩個(gè)reg之間直接的連線(xiàn)。 //圖 作為input或inout的信號(hào)端口只能是wire型,而作為output的信號(hào)端口則可以是wire或reg。示例如下:

//定義一個(gè)wire信號(hào)

wire;變量名>

//給一個(gè)定義的wire信號(hào)直接連接賦值

//該定義等同于分別定義一個(gè)wire信號(hào)和使用assign語(yǔ)句進(jìn)行賦值

wire=<常量或變量賦值>;變量名>

//定義一個(gè)多bit的wire信號(hào)

wire[<最高位>:<最低位>];變量名>

//定義一個(gè)reg信號(hào)

reg;變量名>

//定義一個(gè)賦初值的reg信號(hào)

reg=<初始值>;變量名>

//定義一個(gè)多bit的reg信號(hào)

reg[<最高位>:<最低位>];變量名>

//定義一個(gè)賦初值的多bit的reg信號(hào)

reg[<最高位>:<最低位>]=<初始值>;變量名>

//定義一個(gè)二維的多bit的reg信號(hào)

reg[<最高位>:<最低位>][<最高位>:<最低位>];變量名>

多語(yǔ)句定義:begin...end

//含有命名的begin語(yǔ)句

begin:<塊名>

//可選申明部分

//具體邏輯

end

//基本的begin語(yǔ)句

begin

//可選申明部分

//具體邏輯

end

五、比較判斷:if...else,case...default...endcase

示例如下:

//if判斷語(yǔ)句

if(<判斷條件>)

begin

//具體邏輯

end

//if...else判斷語(yǔ)句

if(<判斷條件>)

begin

//具體邏輯1

end

else

begin

//具體邏輯2

end

//if...else if ...else判斷語(yǔ)句

if(<判斷條件1>)

begin

//具體邏輯1

end

else if(<判斷條件2>)

begin

//具體邏輯2

end

else

begin

//具體邏輯3

end

//case語(yǔ)句

case(<判斷變量>);

<取值1>:<具體邏輯1>

<取值2>:<具體邏輯2>

<取值3>:<具體邏輯3>

default:<具體邏輯4>

endcase

六、循環(huán)語(yǔ)句:for

使用較少,示例如下:

//for語(yǔ)句

for(<變量名>=<初值>;<判斷表達(dá)式>;<變量名>=<新值>)

begin

//具體邏輯

end

七、任務(wù)定義:task...endtask

task類(lèi)似于C的子函數(shù),可以有input、output和inout端口作為輸入口參數(shù),可以用來(lái)實(shí)現(xiàn)單時(shí)序控制,無(wú)返回值,不可用于表達(dá)式之中。示例如下:

task;命名>

//可選申明部分,如本地變量申明

begin

//具體邏輯

end

endtask

八、連續(xù)賦值:assign,問(wèn)號(hào)表達(dá)式(?:)

Assign用于直接互連不同的信號(hào)或者直接給wire變量賦值。其基本用法如下: assign=<變量或常量>;變量名> ?:表達(dá)式就是簡(jiǎn)單的if...else語(yǔ)句,示例如下:

(判斷條件)?(判斷條件為真時(shí)的邏輯處理):(判斷條件為假時(shí)的邏輯處理)

九、always模塊

敏感表可以為電平、沿信號(hào)posedge/negedge,通常和@連用。組合邏輯的用法如下:

always@(*)

begin

//具體邏輯

end

always之后若有沿信號(hào)(上升沿posedge,下降沿negedge)申明,則多為時(shí)序邏輯,用法如下:

//單個(gè)沿觸發(fā)的時(shí)序邏輯

always@(<沿變化>)

begin

//具體邏輯

end

always@(<沿變化1> or <沿變化2>)

begin

//具體邏輯

end

十、運(yùn)算操作符

包括邏輯操作符、移位操作符、算術(shù)操作符大多可以進(jìn)行綜合,列表如下:

+ //加

- //減 ! //邏輯非 ~ //取反 & //與 ~& //與非 | //或 ~| //或非 ^ //異或 ^~ //同或 ~^ //同或

* //乘,是否可綜合看綜合工具 / //除,是否可綜合看綜合工具 % //取模 << //邏輯左移

>> //邏輯右移 < //小于 <= //小于等于 < //大于 = //大于等于 == //邏輯相等 != //邏輯不相等 && //邏輯與 || //邏輯或

十一、賦值符號(hào):=和<=

分別為阻塞賦值和非阻塞賦值,后續(xù)博客詳細(xì)介紹。

以上便是Verilog基礎(chǔ)語(yǔ)法,在RTL設(shè)計(jì)中,需要掌握。


審核編輯:湯梓紅

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

    關(guān)注

    1626

    文章

    21678

    瀏覽量

    602037
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1345

    瀏覽量

    109996
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59710
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    654

    瀏覽量

    32813
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    綜合Verilog語(yǔ)法和語(yǔ)義(劍橋大學(xué),影印)

    綜合Verilog語(yǔ)法和語(yǔ)義(劍橋大學(xué),影印)
    發(fā)表于 08-06 13:03

    verilog HDL 綜合模型的結(jié)構(gòu)

    語(yǔ)句在用綜合工具綜合時(shí)將被忽略或者報(bào)錯(cuò)。作為設(shè)計(jì)者,應(yīng)該對(duì)綜合模型的結(jié)構(gòu)有所了解。 雖然不同的綜合工具對(duì)
    發(fā)表于 10-20 08:10

    Verilog綜合子集

    Verilog綜合子集
    發(fā)表于 04-01 12:44

    FPGA入門(mén):Verilog/VHDL語(yǔ)法學(xué)習(xí)的經(jīng)驗(yàn)之談

    10來(lái)?xiàng)l基本語(yǔ)法就可以打天下了,怎么樣?HDL語(yǔ)言一下變簡(jiǎn)單了吧。這么說(shuō)一點(diǎn)不夸張,本書(shū)的重點(diǎn)就是要通過(guò)各種實(shí)現(xiàn)到板級(jí)的例程讓大家快速的掌握如何使用綜合
    發(fā)表于 01-29 09:20

    FPGA實(shí)戰(zhàn)演練邏輯篇36:綜合語(yǔ)法子集1

    綜合語(yǔ)法子集1本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA設(shè)計(jì)實(shí)戰(zhàn)演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 所謂
    發(fā)表于 06-12 10:59

    FPGA實(shí)戰(zhàn)演練邏輯篇37:綜合語(yǔ)法子集2

    綜合語(yǔ)法子集2本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA設(shè)計(jì)實(shí)戰(zhàn)演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt(1) 參數(shù)定義:parameter
    發(fā)表于 06-15 14:57

    FPGA實(shí)戰(zhàn)演練邏輯篇38:綜合語(yǔ)法子集3

    綜合語(yǔ)法子集3本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA設(shè)計(jì)實(shí)戰(zhàn)演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt(1) 多語(yǔ)句定義:begin…end
    發(fā)表于 06-17 11:53

    勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載30:綜合語(yǔ)法子集1

    `勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載30:綜合語(yǔ)法子集1特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1i5LMUUD 所謂
    發(fā)表于 12-06 19:50

    勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載31:綜合語(yǔ)法子集2

    ` 本帖最后由 rousong1989 于 2017-12-12 20:46 編輯 勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載31:綜合語(yǔ)法子集2特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接
    發(fā)表于 12-12 20:43

    勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載32:綜合語(yǔ)法子集3

    `勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載32:綜合語(yǔ)法子集3特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1i5LMUUD 多語(yǔ)句定義
    發(fā)表于 12-14 19:53

    勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載33:綜合語(yǔ)法子集4

    `勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載33:綜合語(yǔ)法子集4特權(quán)同學(xué),版權(quán)所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1i5LMUUD 連續(xù)賦值
    發(fā)表于 12-19 21:36

    綜合Verilog語(yǔ)法和語(yǔ)義

    綜合Verilog語(yǔ)法和語(yǔ)義(劍橋大學(xué),影印):第七版
    發(fā)表于 05-21 14:50 ?27次下載
    <b class='flag-5'>可</b><b class='flag-5'>綜合</b>的<b class='flag-5'>Verilog</b><b class='flag-5'>語(yǔ)法</b>和語(yǔ)義

    如何設(shè)計(jì)綜合Verilog代碼和應(yīng)該遵循什么原則

    在接觸Verilog 語(yǔ)法參考手冊(cè)的時(shí)候,我們發(fā)現(xiàn)其提供了一組非常豐富的功能來(lái)描述硬件。所以大家往往會(huì)疑惑那些Verilog語(yǔ)句是綜合的,
    發(fā)表于 04-20 10:59 ?4541次閱讀

    綜合Verilog語(yǔ)法和語(yǔ)義詳細(xì)資料說(shuō)明

    合成VerilogVerilog HDL的一個(gè)子集,它位于當(dāng)前合成工具(RTL和行為)的領(lǐng)域內(nèi)。本文檔指定了Verilog的一個(gè)
    發(fā)表于 01-21 16:30 ?9次下載
    <b class='flag-5'>可</b><b class='flag-5'>綜合</b>的<b class='flag-5'>Verilog</b><b class='flag-5'>語(yǔ)法</b>和語(yǔ)義詳細(xì)資料說(shuō)明

    綜合Verilog語(yǔ)法和語(yǔ)義的資料合集免費(fèi)下載

    開(kāi)發(fā)所有綜合Verilog的語(yǔ)義所選擇的方法是從過(guò)于簡(jiǎn)單的{V0{開(kāi)始,然后在簡(jiǎn)單的語(yǔ)義中斷時(shí)使其更加復(fù)雜。這樣可以避免不必要的復(fù)雜性。計(jì)劃對(duì)越來(lái)越大的子集(V1、V2等)進(jìn)行重新排
    發(fā)表于 02-05 16:24 ?14次下載
    <b class='flag-5'>可</b><b class='flag-5'>綜合</b>的<b class='flag-5'>Verilog</b><b class='flag-5'>語(yǔ)法</b>和語(yǔ)義的資料合集免費(fèi)下載