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