verilog的結構化描述形式
在veriloghdl中可使用如下方式描述結構:
1)內建門原語(在門級);
2)開關級原語(在電晶體級);
3)使用者定義的原語(在門級);
4)模組例項(建立層次結構)。
在這一例項中,模組包含門的例項語句,也就是說包含內建門xor、and和or的例項語句。門例項由線網型別變數s1、t1、t2和t3互連。由於沒有指定的順序,門例項語句可以以任何順序出現;圖中顯示了純結構;xor、and和or是內建門原語;x1、x2、a1等是例項名稱。緊跟在每個門後的訊號列表是它的互連;列表中的第乙個是門輸出,餘下的是輸入。例如,s1與xor門例項x1的輸出連線,而a和b與例項x1的輸入連線。
4位全加器可以使用4個1位全加器模組描述。下面是4位全加器的結構描述形式。
modulefourbitfa(fa,fb,fcin,fsum,fcout);
parametersize=4;
input[size:1]fa,fb;
output[size:1]fsum
inputfcin;
inputfcout;
wire[1:size-1]ftemp;
fa_str
fa1(.a(fa[1]),.b(fb[1]),.cin(fcin),
.sum(fsum[1]),.cout(ftemp[2])),
fa2(.a(fa[2]),.b(fb[2]),.cin(ftemp[1]),
.sum(fsum[2]),.cout(ftemp[2])),
fa3(fa[3],fb[3],ftemp[2],fsum[3],ftemp[3],
fa4(fa[4],fb[4],ftemp[3],fsum[4],fcout);
endmodule
在這一例項中,模組例項用於建模4位全加器。在模組例項語句中,埠可以與名稱或位置關聯。前兩個例項fa1和fa2使用命名關聯方式,也就是說,埠的名稱和它連線的線網被顯式描述(每乙個的形式都為「.port_name(net_name))。最後兩個例項語句,例項fa3和fa4使用位置關聯方式將埠與線網關聯。這裡關聯的順序很重要,例如,在例項fa4中,第乙個fa[4]與fa_str的埠a連線,第二個fb[4]與fa_str的埠b連線,餘下的由此類推。
verilog-混合設計描述方式
在模組中,結構的和行為的結構可以自由混合。也就是說,模組描述中可以包含例項化的門、模組例項化語句、連續賦值語句以及always語句和initial語句的混合。它們之間可以相互包含。來自always語句和initial語句(切記只有暫存器型別資料可以在這兩種語句中賦值)的值能夠驅動門或開關,而來自於門或連續賦值語句(只能驅動線網)的值能夠反過來用於觸發always語句和initial語句。
下面是混合設計方式的1位全加器例項。
module fa_mix (a, b, cin, sum, cout);
input a,b, cin;
output sum, cout;
reg cout;
reg t1, t2, t3;
wire s1;
xor x1(s1, a, b);
// 門例項語句。
always
@ ( a or b or cin ) begin
// always 語句。
t1 = a & cin;
t2 = b & cin;
t3 = a & b;
cout = (t1| t2) | t3;
endassign sum = s1 ^ cin;
// 連續賦值語句。
endmodule
只要a或b上有事件發生,門例項語句即被執行。只要a、b或cin上有事件發生,就執行always 語句,並且只要s 1或c i n上有事件發生,就執行連續賦值語句。
VGA學習筆記(verilog
參考大大大神 杜老師實驗 關於本實驗採用的vga引數解釋 800 600 72hz 800 600解析度 800 行同步訊號區間內,應該連續傳送800個有效的rgb資料。此時有效訊號是rgb資料 600 場同步訊號區間內,應該連續傳送600個有效的行訊號。此時有效訊號是行訊號。同步頭訊號 下降沿可作...
Verilog學習筆記(四)
initial語句 在 中只執行一次,用於初始化變數,描述一次性行為,在 時刻0開始執行。下面是initial語句的示例 timescale 1ns 1ns moduletest pop,pid outputpop,pid regpop,pid initial begin pop 0 語句1。pid...
Verilog學習筆記(二) 模組
模組是 verilog 的基本描述單位,用於描述某個設計的功能或結構及其與其他模組通訊的外部埠。乙個設計的結構可使用開關級原語 門級原語和使用者定義的原語方式描述 設計的資料流行為使用連續賦值語句進行描述 時序行為使用過程結構描述。乙個模組可以在另乙個模組中使用。乙個模組的基本語法如下 module...