在使用ALTFP浮点运算IP核仿真时得到的一些经验教训
程序员文章站
2022-07-06 12:28:42
...
背景
在尝试《基于FPGA的数字图像处理原理及
应用》上P93关于浮点运算的例子时,遇到了一些问题,所以在此记录一下。
仿真过程
由于书上已经给出了代码,并且本次仿真没有修改其代码,所以这里就不贴代码了,主要想记一下仿真时遇到的状况。
首先生成IP核,我使用的是quartus17.1,选择器件是cyclone IV,目前没有什么现象表明这个的选择会对仿真造成影响,在IP catalog中搜索ALTFP即会列出各类浮点运算核。
依照书上要求选择并配置相应的IP核即可,要记下来生成的目录,目录下产生的.v文件在仿真的时候是一定要放进去编译的,我产生的如下图。
接下来就可以仿真了,我使用的仿真工具是modelsim SE 10.2c,把以上文件和仿真顶层文件放在一个目录下,并创建一个此目录下的仿真工程,然后运行run.do文件。
#create work library
vlib work
vlog "./altera_lib/*.v"
vlog "./*.v"
#vsim -L xilinxcorelib_ver -L unisims_ver -L unimacro_ver -L secureip -lib work -voptargs=\"+acc\" -t 1ps work.tb_top #这个是#ISE的ip核仿真才需要的
vsim -voptargs=+acc work.float_tb
# Set the window types
view wave
view structure
view signals
add wave -divider {float_tb}
add wave float_tb/*
#add wave -divider {adc_clock}
#add wave tb_top/adc_clock_inst/*
#.main clear
run 0.1us
注意其中的float_tb是仿真文件名,如果使用其他名字需要做更改。vlog "./altera_lib/*.v"把目录下一个lib中的文件加了进来,这是本次仿真的关键,该文件夹下有两个库文件。是我在一开始仿真的时候,modelsim报错找不到某些函数,所以我从altera\17.1\quartus\eda\sim_lib中将这两个文件放过来并在do文件中加入编译,然后才解决的。sim_lib下还有很多文件,具体看以后报错缺少的函数是在哪个库中,然后相应的复制进工程就好了。
仿真结果
do文件完全执行即会生成波形,但是初始生成的不是模拟波形,看不到正余弦,需要按如下配置,radix我选择的是use global radix,其他的没有显示成功,目前我已知的是这一个办法,希望能找到其他方法。