最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

信號類型

2022-12-16 07:23 作者:明德?lián)P易老師  | 我要投稿

本節(jié)的文檔編號:001100000037

需要看對應(yīng)的視頻,請點擊視頻編號:?001100000052

1、本節(jié)主要介紹,Verilog HDL的信號類型,主要包括兩種數(shù)據(jù)類型:線網(wǎng)類型(net type)和寄存器類型(reg type),在進行工程設(shè)計中也只會使用到這兩個類型的信號;信號位寬,定義信號類型的同時,必須定義好信號的位寬,取決于該信號要表示的最大值,例如a信號的最大值為1000,那么信號a的位寬必須大于或等于10位;線網(wǎng)類型wire,用于對結(jié)構(gòu)化器件之間的物理連接的建模,代表的是物理連接線,不存儲其邏輯值,通常用assign進行賦值;寄存器類型reg,通常用于對存儲單元的描述,如D型觸發(fā)器、ROM等。必須注意的是:reg類型的變量不一定是存儲單元,如在always語句中進行描述的必須是用reg類型的變量;wire和reg的區(qū)別,

2、本書總結(jié)出一套解決方法:在本模塊中使用always設(shè)計的信號都定義為reg型,其他都定義為wire型。? ??
3、ALTERA和VIVADO文檔


第4節(jié)?信號類型

? ? Verilog HDL的信號類型有很多種,主要包括兩種數(shù)據(jù)類型:線網(wǎng)類型(net type)?和寄存器類型(reg type)。

筆者在進行工程設(shè)計過程中,也是只會使用到這兩個類型的信號。


4.1?信號位寬

定義信號類型的同時,必須定義好信號的位寬。默認(rèn)信號的位寬是1位,當(dāng)信號的位寬為1時可不表述,

如定義位寬為1的wire型信號a可直接用“wire??a;”來表示。但信號的位寬大于1位時就一定要表示出來,

如用“wire [7:0]”來表示該wire型信號的位寬為8位。

信號的位寬取決于要該信號要表示的最大值。該信號能表示的無符號數(shù)最大值是:2n-1,其中n

表示該信號的位寬。例如,信號a的最大值為1000,那么信號a的位寬必須大于或等于10位。

下面向讀者分享一個位寬計算技巧:打開電腦的“計算器”后選用程序員模式,在在10進制下

輸入信號值,如1000,隨后可以查看信號位寬。


4.2?線網(wǎng)類型wire

?線網(wǎng)類型用于對結(jié)構(gòu)化器件之間的物理連線的建模,如器件的管腳,芯片內(nèi)部器件如與門的輸出

等。由于線網(wǎng)類型代表的是物理連接線,因此其不存儲邏輯值,必須由器件驅(qū)動。通常用assign 進行賦值,

如 assign??A =??B ^ C。

wire?類型定義語法如下:

wire [msb: lsb] wire1, wire2, . . .,wireN;

  • msb和lsb定義了范圍,表示了位寬。例如[7:0]是8位位寬,也就是可以表示成8’b0至8’b1111_1111;

  • msb和lsb必須為常數(shù)值;

  • 如果沒有定義范圍,缺省值為1位;

  • 沒有定義信號數(shù)據(jù)類型時,缺省為wire 類型。

  • 注意數(shù)組類型按照降序方式,如[7:0] ,不要寫成[0:7]。

    下面對上述情況進行舉例說明:

wire [3:0]? ?Sat; // Sat為4?位線型信號

wire Cnt; //1?位線型信號

wire [31:0]? ?Kisp, Pisp, Lisp ;// Kisp, Pisp, Lisp?都是32位的線型信號。


4.3?寄存器類型reg

? ? reg?是最常用的寄存器類型,寄存器類型通常用于對存儲單元的描述,如D型觸發(fā)器、ROM?等。

寄存器類型信號的特點是在某種觸發(fā)機制下分配了一個值,在下一觸發(fā)機制到來之前保留原值。

但必須注意的是:reg?類型的變量不一定是存儲單元,

如在always語句中進行描述的必須是用reg?類型的變量。

reg?類型定義語法如下:

reg??[msb: lsb] reg1, reg2, . . . reg N;

  • msb和lsb定義了范圍,表示了位寬。例如[7:0]是8位位寬,

  • 也就是可以表示成8’b0至8’b1111_1111;

  • msb和lsb必須為常數(shù)值;

  • 如果沒有定義范圍,缺省值為1位;

  • 沒有定義信號數(shù)據(jù)類型時,缺省為wire 類型,不是reg型。

  • 對數(shù)組類型按照降序方式,如[7:0] ;不要寫成[0:7]。


例如:

reg [3:0]? ?Sat; // Sat為4?位寄存器。

reg Cnt; //1?位寄存器。

reg [32:1]??Kisp, Pisp, Lisp ; //不建議這樣定義。


4.4 wirereg的區(qū)別

?reg型信號并不一定生成寄存器。針對什么時候使用wire類型,什么時候用reg類型這一問題,

筆者總結(jié)出一套方法:在本模塊中使用always設(shè)計的信號都定義為reg型,其他信號都定義為wire型。

上述代碼中,cnt1是用always設(shè)計的,所以定義為reg型。

add_cnt1和end_cnt不是由always產(chǎn)生的,所以定義為wire型。

上述代碼中,信號x是用always設(shè)計的,所以要定義為reg型。

注意:實際的電路中信號x不是寄存器類型,但仍然定義為reg型。

以上是例化的代碼,其中df是例化模塊的輸出。

由于df不是由always產(chǎn)生的,而是例化產(chǎn)生的,因此要定義成wire型。

相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=6


信號類型的評論 (共 條)

分享到微博請遵守國家法律
彭阳县| 郁南县| 嘉祥县| 鄂伦春自治旗| 吴旗县| 根河市| 壤塘县| 江陵县| 宣汉县| 祁阳县| 六盘水市| 苍梧县| 应城市| 伊宁县| 乌拉特后旗| 星子县| 扎赉特旗| 岚皋县| 娱乐| 小金县| 石门县| 宁南县| 宣汉县| 东丽区| 吉林省| 丘北县| 石屏县| 库尔勒市| 澎湖县| 安阳市| 延吉市| 和田市| 宣恩县| 富源县| 韶山市| 沙河市| 辽源市| 博兴县| 柳江县| 绥江县| 安义县|