1、在使用verilog描述電路時,既可以進行行為級的描述,也可以進行結構級的描述。
①行為級描述:側重對模塊行為功能的
抽象
描述。
②結構級描述:側重對模塊內部結構實現的
具體
描述。
2、行為級描述
①描述體的組成
※由多個
並行運行的
過程塊組成。
※過程塊由
過程語句(initial和always)和
塊語句(串行塊begin-end和並行塊fork-join)組成。
※塊語句由
過程賦值語句和
高級程序語句構成。
◇過程賦值語句:阻塞與非阻塞式賦值。
◇高級程序語句:C語言如if-else、case、while、wait等組成。
②行為級描述模塊的構成圖
Verilog Code
//例:全加器行為級描述
module fadder(sum,a,b,cin);//模塊定義
output sum,cout;//端口聲明
input a,b,cin;//端口聲明
reg sum,cout;//數據類型聲明
always @(a or b or cin)//過程語句
begin//高級程序語句
sum=a^b^cin;//過程賦值語句
cout=(a&b)|(b&cin)|(a&cin);//過程賦值語句
end
endmodule//結束行
module fadder(sum,a,b,cin);//模塊定義
output sum,cout;//端口聲明
input a,b,cin;//端口聲明
reg sum,cout;//數據類型聲明
always @(a or b or cin)//過程語句
begin//高級程序語句
sum=a^b^cin;//過程賦值語句
cout=(a&b)|(b&cin)|(a&cin);//過程賦值語句
end
endmodule//結束行
3、結構級描述
①描述體的組成
※
門級描述:對由基本邏輯門(and、or、not、xor等)互連而成的具有一定功能的電路模塊的描述。
※
結構級描述:將上述邏輯門用一個個功能模塊替換,就拓展到一般意義的結構級描述。
②結構級描述模塊
例:全加器門級
Verilog Code
//例:全加器結構級描述
module fadder(sum,a,b,cin);//模塊定義
output sum,cout;//端口聲明
input a,b,cin;//端口聲明
/*******門級互連*****/
xor U0(sum,a,b,cin);
and U1(net1,a,b);
and U2(net2,a,cin);
and U3(net3,b,cin);
or U4(cout,net1,net2,net3);
endmodule//結束行
module fadder(sum,a,b,cin);//模塊定義
output sum,cout;//端口聲明
input a,b,cin;//端口聲明
/*******門級互連*****/
xor U0(sum,a,b,cin);
and U1(net1,a,b);
and U2(net2,a,cin);
and U3(net3,b,cin);
or U4(cout,net1,net2,net3);
endmodule//結束行


