求教關於模塊復用的問題.
求教關於模塊復用的問題.
比如一个16bit的加法器,要做成32bit的
把16bit的加法器例化2个,一个为低16bit,另一个为高16bit
把低16bit的进位输出接到高16bit的进位输入端
求教關於模塊復用的問題.
这样生成的电路还是两个模块吧?
并没有节约资源!只是代码简洁些!
能不能考虑时分复用呢!先计算低16位再计算高16和低进位。
求教關於模塊復用的問題.
先謝謝小编了.
我想我該更清楚的說一次,麻煩多多指教.
我做的是一個動態總線反相的功能,16位的模塊接口是這樣寫的:
module dbi(busin,busout,clk,dbi);
其中busin[15:0]和clk是輸入,busout[15:0]和dbi是輸出.
32位的模塊我是這樣寫的.不過編譯的時候出錯了說我非法的使用了例化.
module dbi32(busin32,busout32,dbih,dbil,clk);//dbih,dbil:表示要輸出的高16位和低16位//
input clk;
input[31:0] busin32;
output[31:0] busout32;
output dbih,dbil;
reg [31:0] busout32;
reg dbih,dbil;
dbi,dbih16(.busin(businh16),.busout(busouth16),.clk(clk),.dbi(dbih));
dbi,dbil16(.busin(businl16),.busout(busoutl16),.clk(clk),.dbi(dbih));
always @(posedge clk)
begin
busin32<={dbih16.businh16,dbil16.dbil16};
busout32<={dbih16.busouth16,dbil16.busoutl16};
dbih<=dbih16.dbih;
dbil<=dbil16.dbil;
end
endmodule
多各位高手多多指教.謝謝了.
求教關於模塊復用的問題.
当然可以了
求教關於模塊復用的問題.
你的错误太多,看看语法书吧
module dbi32(busin32,busout32,dbih,dbil,clk);
input clk;
input[31:0] busin32;
output[31:0] busout32;
output dbih,dbil;
wire [31:0] busout32;
wire dbih,dbil;
dbi dbih16(.busin(busin[31:16]),.busout(busout[31:16]),.clk(clk),.dbi(dbih));
dbi dbil16(.busin(busin[15:0]),.busout(busout[15:0]),.clk(clk),.dbi(dbil));
endmodule
求教關於模塊復用的問題.
[这个贴子最后由一声叹息在 2005/01/19 01:30pm 第 4 次编辑]
使用parameter。
例如:
module counter (
clk, reset_b
counter_out
);
parameter COUNTER_WIDTH = 8;
inputclk;
inputreset_b;
output [(COUNTER_WIDTH-1):0] counter_out;
reg [(COUNTER_WIDTH-1):0] counter_out;
always @(posedge clk or negedge reset_b) begin
if (!reset_b) begin
counter_out <= 0;
end
else begin
counter_out <= counter_out + 1;
end
end
endmodule
在另外的模块实例化时:
counter counter_inst (
.clk (),
.reset_b (),
.counter_out ()
);
defparam counter_inst.COUNTER_WIDTH=32.
求教關於模塊復用的問題.
謝謝了.