模塊化設計是FPGA設計中一個很重要的技巧,它能夠使一個大型設計的分工協作和仿真測試更加容易,使代碼維護和升級更加便利。所謂模塊化設計,就是將一個比較複雜的系統按照一定的規則劃分爲多個小模塊,然後我們再分別對每個小模塊進行設計,當這些小模塊全都完成以後,我們再將這些小模塊有機的組合起來,最終我們就能夠完成整個複雜系統的設計。這裏我們以半加器爲例進行說明。
1. 模塊層次劃分
我們將半加器分爲了與門模塊和異或模塊,我們只需要完成實現與門模塊和異或模塊,然後再將實現的與門模塊和異或模塊相結合,最終我們就能實現半加器。下面給出圖相對應的Verilog代碼。
module Half_adder(input a, input b, output s, output c);
AndGate_Module AndGate_Ins
(
.andgate_a(a),
.andgate_b(b),
.andgate_c(c)
);
XOR_Moudle XOR_Ins
(
.XOR_a(a),
.XOR_b(b),
.XOR_s(s)
);
endmodule
看完頂層模塊,下面我們再來看下與門和異或的代碼。
module AndGate_Module(input andgate_a, input andgate_b, output andgate_c);
assign andgate_c = andgate_a && andgate_b;
endmodule
module XOR_Module(input XOR_a, input XOR_b, output XOR_c);
assign XOR_c = XOR_a ^ XOR_b;
endmodule