日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Verilog基本语法初学

發(fā)布時(shí)間:2023/12/2 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Verilog基本语法初学 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、語言要素

(一)概述

1、空白符(White Space)
空格、換行、換頁、Tab等;
是代碼錯(cuò)落有致,提高可讀性。
2、注釋(Comment)
單行注釋:“ // ”;
多行注釋:“ /* ”~“ */ ”。
3、標(biāo)識符(Identifier)
字母、數(shù)字、_、$,最長1023個(gè)字符。
4、關(guān)鍵字(Key Word)
所有的關(guān)鍵字都是小寫的。
5、運(yùn)算符(Operator)

(二)常量

1、整數(shù)(Integer)
+/-<位寬>’<進(jìn)制><數(shù)字>
(1)較長的數(shù)之間可用下劃線分開;
(2)未定義整數(shù)位寬,則默認(rèn)32位;
(3)定義位寬比數(shù)值位數(shù)長,通常在左邊填0補(bǔ)位,如果數(shù)最左邊一位為x或z,就相應(yīng)地用x或z在左邊補(bǔ)位;
(4)“?”是高阻態(tài)z的另一種表示符號,數(shù)字表示中與“z”等價(jià)可互相替代;
(5)x(或z)在二進(jìn)制中代表1位x(或z),在八進(jìn)制中代表3位x(或z),在十六進(jìn)制中代表4位x(或z),其代表的寬度取決于所用的進(jìn)制。;
(6)整數(shù)可以帶符號,且正負(fù)號應(yīng)寫在最左邊,負(fù)數(shù)通常表示為二進(jìn)制補(bǔ)碼形式;
(7)位寬與進(jìn)制默認(rèn)時(shí)默認(rèn)是十進(jìn)制數(shù);
(8)位寬和’之間、進(jìn)制與數(shù)值之間允許出現(xiàn)空格,‘和進(jìn)制之間、數(shù)值之間不允許出現(xiàn)空格;
(9)帶符號整數(shù)定義;例:8’sh5a。
2、實(shí)數(shù)(Real)
十進(jìn)制表示法 小數(shù)點(diǎn)兩側(cè)都必須有數(shù)字;
科學(xué)計(jì)數(shù)法
實(shí)數(shù)轉(zhuǎn)整數(shù) 四舍五入
3、字符串(String)
reg型變量
若聲明的reg型變量位數(shù)大于字符串實(shí)際長度,則賦值操作后字符串變量的左端(即高位)補(bǔ)0;若小于,則字符串左端被截去。

(三)數(shù)據(jù)類型

1、四值邏輯
0:低電平、邏輯0或邏輯非;
1:高電平、邏輯1或“真”;
z或Z:高阻態(tài);
x或X:不確定或未知的邏輯狀態(tài)。
2、數(shù)據(jù)類型:
net型
相當(dāng)于硬件電路各物理連接,特點(diǎn)是輸出的值緊跟輸入值的變化而變化。
(1)wire型
默認(rèn)為wire型。位連接到驅(qū)動(dòng),值為高阻態(tài)。
(2)tri型
增加程序可讀性,可以更清除地表示該信號綜合后的電路連線具有三態(tài)的功能。
variable型(register型)。
(1)reg型
綜合時(shí)綜合器根據(jù)具體情況映射成寄存器或連線。
(2)integer型
多用于表示循環(huán)的變量。不能做為位向量訪問。
綜合時(shí)初始值為x。
(3)real型
表示實(shí)數(shù)寄存器,主要用于仿真,不可綜合。
(4)time型
用于對模擬時(shí)間的存儲與處理,不可綜合。

(四)參數(shù)

1、參數(shù)parameter

2、參數(shù)聲明

3、參數(shù)傳遞
(1)“#”符號隱式重載
(2)在線顯式重載
(3)defparam語句顯示重載
4、localparam
定義局部參數(shù)。

(五)向量

1、標(biāo)量與向量
2、位選擇和域選擇
3、存儲器

(六)運(yùn)算符

1、算數(shù)運(yùn)算符
+
-
*
/
%
2、邏輯運(yùn)算符
&&
||
!
3、位運(yùn)算符
~
&
|
^
^~ ,~^
4、關(guān)系運(yùn)算符
<
<=
>
>=
5、等式運(yùn)算符
== 相等運(yùn)算符
!=
=== 全等運(yùn)算符
!==
6、縮減運(yùn)算符(是單目運(yùn)算符)
&
~&
|
~|
^ 異或
^~ , ~^ 同或
7、移位運(yùn)算符
>>
<<
>>>
<<<
算數(shù)移位操作符"<<<"">>>"
8、指數(shù)運(yùn)算符
**
9、條件運(yùn)算符
?:
10、位拼接運(yùn)算符
{ }
將兩個(gè)或多個(gè)信號某些位拼接起來;符號位擴(kuò)展;嵌套使用;移位操作。
11、運(yùn)算符的優(yōu)先級

二、語句語法

(一)過程語句

initial:用于初始化,只執(zhí)行一次;
always:重復(fù)執(zhí)行,可綜合。

always過程語句
帶觸發(fā)條件
1、敏感信號列表“sensitivity list”
邊沿敏感型、電平敏感型
2、posedge與negedge關(guān)鍵字
posedge clk:時(shí)鐘信號clk的上升沿作為觸發(fā)條件;
negedge clk:時(shí)鐘信號clk的下降沿作為觸發(fā)條件。
3、Verilog-2001標(biāo)準(zhǔn)對敏感信號列表
(1)敏感信號列表中可用逗號分隔敏感信號
(2)敏感信號列表中使用通配符“**”
4、用always過程塊實(shí)現(xiàn)較復(fù)雜的組合點(diǎn)亮

initial過程語句
initial語句不帶觸發(fā)條件,其塊語句沿時(shí)間軸只執(zhí)行一次。

(二)塊語句

串行塊begin-end
并行塊fork-join

(三)賦值語句

1、持續(xù)賦值與過程賦值
assign 為持續(xù)賦值語句,主要用于對wire型變量的賦值;
過程賦值語句主要用于對reg型變量進(jìn)行賦值。
2、阻塞賦值與非阻塞賦值

(四)條件語句

if-else語句
case語句
1、case語句
2、casez與casex語句

(五)循環(huán)語句

for語句
repeat語句:連續(xù)執(zhí)行一條語句n次
while語句
forever語句:連續(xù)執(zhí)行語句;多用在initial塊中,以生成時(shí)鐘等周期性波形。

(六)編譯指示語句

1、宏替換define
2、文件包含include
3、條件編譯ifdef、else、endif
if 宏名
endif
當(dāng)宏名在程序中被定義過的話,則下面的語句塊參與源文件的編譯,否則,該語句塊將不參與源文件的編譯。

(七)任務(wù)與函數(shù)

1、任務(wù)
2、函數(shù)

(八)順序執(zhí)行與并發(fā)執(zhí)行

(九)Verilog—2001語言標(biāo)準(zhǔn)

1、改進(jìn)和增強(qiáng)的語法結(jié)構(gòu)
提高Verilog行為級和RTL級建模的能力;
改進(jìn)Verilog在深亞微米設(shè)計(jì)和IP建模的能力;
糾正和改進(jìn)了Verilog-1995標(biāo)準(zhǔn)中的錯(cuò)誤和易產(chǎn)生歧義之處。
(1)ANSI C風(fēng)格的模塊聲明
(2)逗號分隔的敏感信號表
(3)在組合邏輯敏感信號列表中使用通配符“ * ”
(4)generate語句
(5)帶符號的算數(shù)擴(kuò)展
(6)指數(shù)運(yùn)算符 * *
(7)變量聲明時(shí)進(jìn)行賦值
(8)常數(shù)函數(shù)
(9)向量的位選和域選
(10)多維矩陣
(11)矩陣的位選則和部分選擇
(12)模塊的實(shí)例化時(shí)的參數(shù)重載
(13)register改為variable
(14)新增條件編譯語句
(15)超過32位的自動(dòng)寬度擴(kuò)展
(16)可重入任務(wù)(Re-entrant Task)和遞歸函數(shù)(Recursive Function)
(17)文件和行編譯指示
2、屬性及PLI接口
(1)設(shè)計(jì)管理
(2)屬性
(3)增強(qiáng)的文件輸入、輸出操作
(4)VCD文件的擴(kuò)展
(5)提高了對SDF(標(biāo)準(zhǔn)延時(shí)文件)的支持
(6)編程語言接口(PLI)的改進(jìn)

三、Verilog設(shè)計(jì)的層次與風(fēng)格

(一)Verilog設(shè)計(jì)的層次

抽象級別5級:
系統(tǒng)級(System Level)
算法級(Algorithm Level)
寄存器傳輸級(Register Transfer Level,RTL)
門級(Gate Level)
開關(guān)級(Switch Level)
描述方式:
結(jié)構(gòu)(Structural)描述
行為(Behavioural)描述
數(shù)據(jù)流(Data Flow)描述

(二)門級結(jié)構(gòu)描述

1、門元件
2、門級結(jié)構(gòu)描述
3、行為描述
4、數(shù)據(jù)流描述
5、不同描述風(fēng)格設(shè)計(jì)
6、多層次結(jié)構(gòu)電路設(shè)計(jì)
7、基本組合電路設(shè)計(jì)
8、基本時(shí)序電路設(shè)計(jì)
9、三態(tài)邏輯設(shè)計(jì)

總結(jié)

以上是生活随笔為你收集整理的Verilog基本语法初学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。