微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > modelsim #Error loading design

modelsim #Error loading design

时间:10-02 整理:3721RD 点击:
本人菜鸟一枚,今天用modelsim仿真时出现如题问题,编译时全部通过了。请各位大侠知道一下
下面是代码
module rwt
(
  rst_n,
  clk,//
     s1,//
     s2,
     oe//
);

input clk,rst_n;

output s1,s2;
output  oe;


wire [15:0] s1,s2;

reg oe;
reg  [15:0] a;  
reg  [15:0] a_reg;
reg  [15:0] pre_a_reg;
reg  [15:0] pre2_a_reg;

reg  [15:0] d;
reg  [15:0] d_reg;
reg  [15:0] pre_d_reg;
reg  [15:0] pre2_d_reg;
  
reg  [15:0] sum1;  
reg  [15:0] sum2;  
reg  [15:0] s01;  
reg  [15:0] s01_per;
reg  [15:0] s02;
  
  reg [12:0] i;
//reg [12:0] j;
reg [14:0] data_mem_c[0:8192];

reg [12:0] m;
//reg [12:0] j;
reg [14:0] data_mem_d[0:8192];

initial
begin
   $readmemh("c1.txt",data_mem);
end

always @(negedge rst_n or posedge clk)
begin
   if(!rst_n)
     begin
       //j<=13'd0;
       i<=13'd0;
     end
   else
     begin
       a<=data_mem_c[i];
       i<=i+13'd1;
       //j<=i>>1;
     end
end

initial
begin
   $readmemh("d1.txt",data_mem);
end

always @(negedge rst_n or posedge clk)
begin
   if(!rst_n)
     begin
       //j<=13'd0;
       m<=13'd0;
     end
   else
     begin
       d<=data_mem_d[i];
       m<=m+13'd1;
       //j<=i>>1;
     end
end


always @(negedge rst_n or posedge clk)
if (!rst_n)
   oe=1;
else     
begin
  oe=~oe;
  if(oe)
  begin
   pre2_a_reg=pre_a_reg;
   pre_a_reg=a_reg;   
   a_reg=a;
  end
  else
   begin
   pre2_d_reg=pre_d_reg;
   pre_d_reg=d_reg;
   d_reg=d;
   end
end  

//
always @(negedge rst_n or posedge oe)
if (!rst_n)
   begin
   sum1=0;
   s01=0;
   end
   else
begin  
  sum1=pre_a_reg+a_reg+2'd2;
  sum1=sum1>>2;
  sum1[14]=sum1[13]; sum1[15]=sum1[13];
  s01_per=s01;
  s01=d_reg-sum1;
end
  
//
always @(negedge rst_n or posedge oe)
  if (!rst_n)
    begin
   sum2=0;
   s02=0;
   end
   else
begin  
  sum2=s01+s01_per;
  sum2=sum2>>1;
  sum2[15]=sum2[14];
  s02=sum2+pre2_a_reg;
end

  
assign  s1=s01;//
assign  s2=s02; //

endmodule
testbench:
`include "rwt.v"
//`timescale 1ns/1ns
module t_rwt;
       reg clk;
       reg rst_n;
       wire [15:0] s1,s2;
       wire oe;
rwt     DUT
(
.rst_n        (rst_n),
. clk         (clk),
. s1      (s1),
. s2      (s2),
.oe   (oe)
);
initial begin
        clk=0;
        rst_n=0;
        end
        
initial  #15 rst_n=1;
always #5 clk=~clk;
   
        
initial #163840 $stop;//13600
endmodule

敢把错误贴上来?

虽然很低级,但确实纠结了很久了

……沙发的意思是让LZ把error信息贴出来,只不过用的是卖萌的口气……

sorry,理解错误
# Compile of rwt.v was successful.
# Compile of t_rwt.v was successful.
# 2 compiles, 0 failed with no errors.
vsim -voptargs=+acc work.t_rwt
# vsim -voptargs=+acc work.t_rwt
# Error loading design
我是直接在modelsim中进行仿真的,其他的程序可以仿真出来,就这个有问题,而且也没有说明错误的地方

这句话, `include "rwt.v"
注释掉先



    3q,但还是不行,追问一下,注释掉有什么作用呢

你仿真的时候没有inc这种参量能找到include 的东西么?(很少用modelsim)

错误已找出
$readmemh("d1.txt",data_mem);
$readmemh("c1.txt",data_mem);
应改为
$readmemh("d1.txt",data_mem_d);
$readmemh("d1.txt",data_mem_c);
还是很感谢各位啦!

$readmemh("d1.txt",data_mem);
$readmemh("c1.txt",data_mem);
应改为
$readmemh("d1.txt",data_mem_d);
$readmemh("d1.txt",data_mem_c);
请问你的这个在哪儿改啊?

好多年没用modelsim了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top