Quartus 软件中的Shift Register(RAM_based)仿真总不正确
# Region: /shift_reg_vlg_tst/i1/u1
# Error loading design
有哪位大神做过这个库函数的仿真,求解答!
源程序
module shift_reg(clk,clken,data_in,data_out);
input clk;
input clken;
input [7:0] data_in;
output [7:0] data_out;
/*always @(posedge clk)
begin
data_cnt=data_cnt+8'd1;
end*/
shift1 u1(
.clock(clk),
.clken(clken),
.shiftin(data_cnt),
.shiftout(data_out));
endmodule
测试程序:
initial
begin
clk=0;
data_in=8'b0;
clken=1'b0;
end
always #10 clk=~clk;
initial
begin
#100 clken=1'b1;
#200 clken=1'b0;
#100 clken=1'b1;
#200 clken=1'b0;
#100 clken=1'b1;
#200 clken=1'b0;
#100 clken=1'b1;
#200 clken=1'b0;
#100 clken=1'b1;
#200 clken=1'b0;
#100 clken=1'b1;
end
always @(posedge clk)
begin
if(clken)
data_in=data_in+1'b1;
end
endmodule
modelsim-ase编译正确,仿真时出错
恩,了解了
最好检查一下“shift1.v”这个的69行,例化了intended_device_family,这个文件,这个文件里面有个parameter,可能是shift1.v在defparam的时候定义错parameter了。
这是那个文件里的出错位置,还是不知道是什么原因啊,不会是我选的硬件不支持这个库函数吧?
defparam
ALTSHIFT_TAPS_component.intended_device_family = "Cyclone IV E", //第69行
ALTSHIFT_TAPS_component.lpm_hint = "RAM_BLOCK_TYPE=M4K",
ALTSHIFT_TAPS_component.lpm_type = "altshift_taps",
ALTSHIFT_TAPS_component.number_of_taps = 1,
ALTSHIFT_TAPS_component.power_up_state = "CLEARED",
ALTSHIFT_TAPS_component.tap_distance = 3,
ALTSHIFT_TAPS_component.width = 8;
