微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于modelsim和testbench的问题,请教了

关于modelsim和testbench的问题,请教了

时间:10-02 整理:3721RD 点击:
关于modelsim和testbench的问题,请教了1,modelsim管理加入的工程里的文件,能否像ISE那样,很清晰的显示某个模块被某个模块调用呢?(就是ISE里,上一层下包含哪些子层,都有很清晰的分层"+"号)
2,仿真时,为了验证我的模块功能,我要导入一批由matlab产生的数据,用$readmemh,读到寄存器组吗?之后呢,如何在一个时钟给出一个数吗?或者fopen?,总之就是我想在每个时钟的上升沿给我需要验证的模块datain送一个由matlab产生的数据。另外能否在每个时钟的上升沿,保存被测模块的dataout到数据文件中呢。就是系统任务能在always@()块中写吗?
3,定义一个寄存器组和一个ram意义不同的意义是什么,谢谢啦

关于1,工程里面是平铺的,但是开始仿真以后的sim窗口下,就是层次化的路径了。
关于3,虽然能够实现类似的功能,但是寄存器组就是用寄存器搭建的,而RAM你可以选择用寄存器搭建,也可以使用内部的IP来搭建。

谢谢啦,我另外我在ise中启动modelsim就可以正常仿真,但是用modelsim建立工程,添加.V文件,仿真时报很多错,库我使用ise提供的工具编译的。关于2能解答一下吗 谢谢啦

报什么错误呢?是不是modelsim中没有加载库文件?
关于2,可以这样:
parameter DATA_WIDTH= 8;
parameter MAX_SAMPLE = 256;
reg [DATA_WIDTH-1:0] sample[MAX_SAMPLE-1:0];
reg [7:0] counter;
initial $readmemh("matlab.dat", sample);
always @ (posedge clk)
begin
    datain <= dample[counter];
    counter <= counter + 1;
end
当然counter的初值为0.
将dout写入到文件中有相应的系统函数:$fwrite

应该是没有把编译好的库映射到modelsim的工作目录中,同时还要在modelsim.ini文件里留下痕迹。

谢谢了
库的问题ok了,是因为没有选择search lib。还要请教
写到数据文件的时候可以在always块中,每一个时钟写一个数到文件中吗?

可以每一个时钟写一个数
这个自己试试不就知道了吗?

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

网站地图

Top