• Modelsim 10.0 对Altera FFT IP 进行仿真


    -

    查阅了很多资料,无意中看到有篇文章提到,要仿真成功这个IP的话,需要以下三个Library:
    220model、Altera_mf,还有个最最关键的就是sgate!

    另外还有一点需要注意的是,在用modelsim仿真时,在compile的时候,需要把.v、.vo和.tb这3个文件都加上才可以,否则在simulate时会提示错误。

    几个简单的系统任务,$readmemb,$readmemh,$fopen,$fdisplay;基本上就可以完成对文件的读写操作。

    用于读写的文件必须和modelsim建好的工程放在同一个文件夹中,否则会出现打不开文件的现象,即
    返回的文件句柄为0.摆放位置如下图所示。
     
    一、读任务
    在verilog语言中有两个系统任务$readmemb,$readmemh可以用来从文件中读取数据到存储器中。这两个任务可以在仿真的任何时刻被执行使用,其使用方法如下:$readmemb
    1,$readmemb("<数据文件名(路径地址和文件名)>",<存储器名>);
    2, $readmemb("<数据文件名>",<存储器名>,<起始地址(存储器的地址)>);
    3, $readmemb("<数据文件名>",<存储器名>,<起始地址>,<结束地址>);
    $readmemh
    4,$readmemh("<数据文件名(路径地址和文件名)>",<存储器名>);
    5, $readmemh("<数据文件名>",<存储器名>,<起始地址(存储器的地址)>);
    5, $readmemh("<数据文件名>",<存储器名>,<起始地址>,<结束地址>);
    这里需要注意的是:
    1,存储器的空间要足够,如设定[7:0] remember[0:15];即是初始化了一个15个字长为8位的存储器;
    2,文件中的数据是一次读到寄存器中的,仿真中通常使用数据文件来做信号源。并且读数据总是从文件起始地址读到结束地址结束,存储器容量要足够;
    3,文件应为标准数据文件,如果文件只存放数据就默认第一个数据地址为初始地址;若第一个数据设定
    @002
    11111111 10101011
    @004
    10xz0011 1100101x
    第0,和第1个数据没有写,系统读进存储器时默认为 xxxx_xxxx;
    4,文件若只写文件名需要将文件放置在默认文件路径下,可以通过modelsim->file->changedirectory来更改。
    二、写任务
    这里写任务用$fopen和$fdisplay两个系统任务完成,其中前者用来得到文件句柄,所谓句柄就是用来打开这个文件的读写通道,这里笔者在modelsim环境下试验了一下一旦用$fopen打开文件就会将文件清空。因此要读文件最好用$readmemb任务,写文件再用$fopen,注意最好新建个新文件来写,以免重要数据被清空。
    用$fopen取得想要写文件的句柄handle,然后我们desc=handle|1;(目的最低位置1)这样写文件时trancript框中也同样会输出;
    用$fdisplay(desc,"display=%b",remember[k]);通过for语句就可以将原文件中的数据写到另一个文件中去了;
    例子如下:
    module rewr_test();
    reg [7:0]mem[0:15];
    integer k,handle2,desc;
    initial
    begin
    handle2=$fopen("file2.dat");
    $readmemb("file1.dat",mem);
    desc=handle2 |1;
    $display("handle2=%b desc=%b",handle2,desc);
    for(k=0;k<=15;k=k+1)
    begin
    $fdisplay(desc,"%b",mem[k]);
    end
    end
    endmodule
  • 相关阅读:
    用spring tool suite插件创建spring boot项目时报An internal error occurred during: "Building UI model". com/google/common/
    Eclipse卸载插件SpringSoource-tool-suite
    spring-tool-suite使用教程,并创建spring配置文件
    MySQL获取指定长度的字符串的函数left(s,n)和right(s,n)
    maven web项目配置log4j,及log4j参数设置
    Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'zoneId' in 'class java.lang.String'
    ifconfig 输出里没有IP地址
    maven web项目生成WebContent或WebRoot目录
    Window 命令行神器:cmder
    Filezilla Download for Linux (deb, rpm, txz, xz, amd64, i386, i486, i586, i686, x86_64)
  • 原文地址:https://www.cnblogs.com/woshitianma/p/3091033.html
Copyright © 2020-2023  润新知