0
我想設計一個簡單的8位2的補碼。這裏是我的代碼:如何在另一模塊內使用模塊?
twos_complement_of_8bits.v
//`include "complementor.v"
module twos_complement_of_8bits(output [7:0] out, input [7:0] in);
integer i;
initial
begin
for(i = 0; i <= 7; i = i + 1)
complementor C(out[i], in[i]);
end
assign out = out + 1;
endmodule
我在這行得到了一個錯誤:
complementor C(out[i], in[i]);
Syntax error near 'C' found.
我怎樣才能解決呢?
我的設計應該是分割成8點相同的模塊;每一個補足每一位然後加1.作爲最終設計的一個例子:如果輸入是11011100,輸出將是00100100.謝謝你的迴應順便說一句! – 2012-02-09 15:02:27
@ Eng.Fouad,使用8個相同模塊的約束似乎是任意的,就像作業問題一樣。一般來說,Verilog最適合像@toolic寫的一維向量。使用2D矢量會產生記憶,這些記憶不容易通過模塊邊界傳遞。使用'generate'語句來實例化多個1位模塊是笨重的,容易出錯,應該避免,除非沒有其他方式。這些主要是Verilog語言的限制。但是,當在羅馬,像羅馬人那樣做。 – 2012-02-09 15:45:14
根據要求,我用'generate'模塊更新了答案,以使用8個模塊。它爲該輸入提供所需的輸出。 – toolic 2012-02-09 16:39:30