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

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

HDLBits (9) — 線網(wǎng)聲明

2021-09-11 10:33 作者:僚機(jī)Wingplane  | 我要投稿

本題鏈接:

https://hdlbits.01xz.net/wiki/Wire_decl

到目前為止的電路都是輸出是輸入的簡單函數(shù)。隨著電路變得越來越復(fù)雜,您將需要線網(wǎng)將內(nèi)部組件連接在一起。 當(dāng)您需要使用線網(wǎng)( wire )時(shí),您應(yīng)該在模塊的主體中,在首次使用之前的某處聲明它。(將來,您會遇到更多類型的信號和變量,它們也以相同的方式聲明,但現(xiàn)在,我們將從類型為 wire 的信號開始)。

例子

module top_module (
 ? ?input in, ? ? ? ? ? ? ?// Declare an input wire named "in"
 ? ?output out ? ? ? ? ? ? // Declare an output wire named "out"
);

 ? ?wire not_in; ? ? ? ? ? // Declare a wire named "not_in"

 ? ?assign out = ~not_in; ?// Assign a value to out (create a NOT gate).
 ? ?assign not_in = ~in; ? // Assign a value to not_in (create another NOT gate).

endmodule ? // End of module "top_module"

在上面的模塊中,有三條線網(wǎng)( in、out 和 not_in ),其中兩條已經(jīng)聲明為模塊的輸入和輸出端口的一部分(這就是為什么您不需要在前面的練習(xí)中聲明任何線網(wǎng)的原因)。線網(wǎng)?not_in 需要在模塊內(nèi)聲明,所以從模塊外部看不到線網(wǎng)?not_in。 然后,使用兩個(gè)賦值( assign )語句創(chuàng)建兩個(gè)非門。 請注意,首先創(chuàng)建哪個(gè)非門并不重要:最終綜合后的電路依舊相同。

練習(xí)

實(shí)現(xiàn)以下電路。 創(chuàng)建兩條中間線網(wǎng)(命名隨意)將與門和或門連接在一起。 注意輸出線網(wǎng)也就是反饋到非門的線網(wǎng),因此不一定需要在此處聲明第三條線網(wǎng)。 注意線網(wǎng)是如何由一個(gè)源(門的輸出)驅(qū)動的,但可以反饋為多個(gè)輸入。

如果您遵循圖中的電路結(jié)構(gòu),您應(yīng)該得到四個(gè)賦值語句,因?yàn)橛兴膫€(gè)信號需要賦值。

(當(dāng)然,可以在沒有中間線網(wǎng)的情況下創(chuàng)建具有相同功能的電路。)


預(yù)期的解決方案長度:大約 5 行。

模塊聲明:

`default_nettype none
module top_module(
 ? ?input a,
 ? ?input b,
 ? ?input c,
 ? ?input d,
 ? ?output out,
 ? ?output out_n ? ); 

題目

`default_nettype none
module top_module(
 ? ?input a,
 ? ?input b,
 ? ?input c,
 ? ?input d,
 ? ?output out,
 ? ?output out_n ? ); 

endmodule

答案

`default_nettype none
module top_module(
 ? ?input a,
 ? ?input b,
 ? ?input c,
 ? ?input d,
 ? ?output out,
 ? ?output out_n ? ); 
 ? ?wire g1,g2,g3;
 ? ?assign g1 = a & b;
 ? ?assign g2 = c & d;
 ? ?assign g3 = g1 | g2;
 ? ?assign out = g3;
 ? ?assign out_n = ~g3;
endmodule

輸出波形

以反引號?`?開始的某些標(biāo)識符是 Verilog 系統(tǒng)編譯指令。

編譯指令為 Verilog 代碼的撰寫、編譯、調(diào)試等提供了極大的便利。

在編譯階段,`define?用于文本替換,類似于 C 語言中的?#define。

一旦?`define?指令被編譯,其在整個(gè)編譯過程中都會有效。

`undef?用來取消之前的宏定義。

連續(xù)賦值語句是 Verilog 數(shù)據(jù)流建模的基本語句,用于對 wire 型變量進(jìn)行賦值。

LHS(left hand side) 指賦值操作的左側(cè),RHS(right hand side)指賦值操作的右側(cè)。

assign 為關(guān)鍵詞,任何已經(jīng)聲明 wire 變量的連續(xù)賦值語句都是以 assign 開頭。

需要說明的是:

  • LHS_target 必須是一個(gè)標(biāo)量或者線型向量,而不能是寄存器類型。

  • RHS_expression 的類型沒有要求,可以是標(biāo)量或線型或存器向量,也可以是函數(shù)調(diào)用。

  • 只要 RHS_expression 表達(dá)式的操作數(shù)有事件發(fā)生(值的變化)時(shí),RHS_expression 就會立刻重新計(jì)算,同時(shí)賦值給 LHS_target。

Verilog 還提供了另一種對 wire 型賦值的簡單方法,即在 wire 型變量聲明的時(shí)候同時(shí)對其賦值。wire 型變量只能被賦值一次,因此該種連續(xù)賦值方式也只能有一次。

參考內(nèi)容:

2.5 Verilog 編譯指令?| 菜鳥教程:https://www.runoob.com/w3cnote/verilog-compile-instruction.html

3.1 Verilog 連續(xù)賦值?| 菜鳥教程:

https://www.runoob.com/w3cnote/verilog-assign.html


HDLBits (9) — 線網(wǎng)聲明的評論 (共 條)

分享到微博請遵守國家法律
垫江县| 枞阳县| 冕宁县| 乐平市| 枝江市| 界首市| 阿勒泰市| 油尖旺区| 洛扎县| 西平县| 泽普县| 临湘市| 成安县| 保靖县| 深泽县| 门源| 寻乌县| 吴桥县| 吕梁市| 化德县| 太原市| 曲麻莱县| 玉环县| 襄樊市| 孟连| 沙田区| 宜春市| 清远市| 视频| 清镇市| 温泉县| 搜索| 尼玛县| 汉中市| 洛南县| 庄浪县| 碌曲县| 山丹县| 波密县| 晴隆县| 大足县|