数据拼接
时间:10-02
整理:3721RD
点击:
写了个串型数据的拼接程序,数据分时输入,整体输出。可综合,无语法错误,但modelsim仿真输出一直为低电平,请各位大神能够指出程序中的错误,万分感谢!module test(input [31:0] text_in,output [127:0] out
);
reg [127:0] int;
always @(text_in) begin
int=text_in;
int={int[127:0],32'h0};
end
assign out = int;
endmodule
激励:
module test_tb;
reg [31:0] text_in;
test uu(.text_in(text_in),
.out(out));
initial begin
text_in=32'h11111111;
#30 text_in=32'h22222222;
#30 text_in=32'h11111111;
#30 text_in=32'h22222222;
end
endmodule
);
reg [127:0] int;
always @(text_in) begin
int=text_in;
int={int[127:0],32'h0};
end
assign out = int;
endmodule
激励:
module test_tb;
reg [31:0] text_in;
test uu(.text_in(text_in),
.out(out));
initial begin
text_in=32'h11111111;
#30 text_in=32'h22222222;
#30 text_in=32'h11111111;
#30 text_in=32'h22222222;
end
endmodule
text_in 32bit,怎么会是串行数据呢 你这个不是时序电路吗?
int没放到敏感列表里面
如果将int加入敏感信号表,仿真的结果就成了out与text_in同步输出,而无法将数据拼接。我将always语句块换成了int={int[95:0],text_in};实现了拼接数据的结果,对原程序的错误依旧不清楚,但也算目标完成。谢谢楼上各位回复。
module test(input [31:0] text_in,output [127:0] out
);
reg [127:0] int;
always @(text_in) begin
int=text_in;
int={int[127:0],32'h0};
end
assign out = int;
endmodule
这个地方? 你拼个160位给128位,什么意思?
你靠敏感信号表来实行并行输出?怎么也应该弄个时钟来控制吧?然后弄个计数器,每4拍输出1次。
那句是int左移32位,这样写移位是错的吗?本人初学Verilog,有错多指教。谢谢。
初学Verilog,基础略差。欠考虑,多谢指导,谢谢。