ip核如何加密的仿真IP核

后使用快捷导航没有帐号?
查看: 3640|回复: 3
altera的FIR ip核为什么不能仿真呢?[更新1]
在线时间287 小时
威望1955 分
芯币4627 枚
TA的帖子TA的资源
纯净的硅(高级), 积分 1955, 距离下一级还需 45 积分
纯净的硅(高级), 积分 1955, 距离下一级还需 45 积分
添加了个FIR的ip核,但是modelsim仿真一直输出都是0,参数设置如下
fir50order myFIR(
& & .clk(clk),
& & .reset_n(rst_n),
& & .ast_sink_valid(1'b1),
& & .ast_source_ready(1'b1),
& & .ast_sink_error(2'b0),
& & .ast_sink_data(if_multed[23:12]),
& & .ast_source_data(zf_fir)
看了simulation文件夹中rtl_work也一切正常,modelsim也没有报什么奇怪的warning,就是没数据..
请教大牛们,我这问题出哪了?
=================================
附上modelsim控制台输出:
# ** Warning: (vsim-3017) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/pll_10x10m.v(88): [TFMPC] - Too few port connections. Expected 37, found 35.
#& && && &Region: /SDR_Platform_vlg_tst/i1/PLL_10X10M_M/altpll_component
# ** Warning: (vsim-3722) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/pll_10x10m.v(88): [TFMPC] - Missing connection for port 'fref'.
# ** Warning: (vsim-3722) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/pll_10x10m.v(88): [TFMPC] - Missing connection for port 'icdrclk'.
# ** Warning: (vsim-3016) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/mult12x12.v(60): Port type is incompatible with connection (port 'clock').
#& && && &Region: /SDR_Platform_vlg_tst/i1/ComplexDDC_12BIT_M/mult12x12_IF_INxcos_I/lpm_mult_component
# ** Warning: (vsim-3016) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/mult12x12.v(60): Port type is incompatible with connection (port 'clock').
#& && && &Region: /SDR_Platform_vlg_tst/i1/ComplexDDC_12BIT_M/mult12x12_IF_INxsin_Q/lpm_mult_component
# ** Warning: (vsim-3016) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/mult16x16.v(64): Port type is incompatible with connection (port 'clock').
#& && && &Region: /SDR_Platform_vlg_tst/i1/Costas_PD_M/mult16x16_my/lpm_mult_component
# ** Warning: (vsim-3015) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/SDR_Platform.v(323): [PCDPC] - Port size (12 or 12) does not match connection size (14) for port 'if_in'. The port definition is at: E:/loc13/33softwareWireless/DBPSKmoddemod_V11/diff_lpf.v(18).
#& && && &Region: /SDR_Platform_vlg_tst/i1/Diff_LPF_Inst
# ** Warning: (vsim-3016) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/mult12x12.v(60): Port type is incompatible with connection (port 'clock').
#& && && &Region: /SDR_Platform_vlg_tst/i1/Diff_LPF_Inst/IF_INxIF_DELAY/lpm_mult_component
# ** Warning: (vsim-3017) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/diff_lpf.v(68): [TFMPC] - Too few port connections. Expected 10, found 7.
#& && && &Region: /SDR_Platform_vlg_tst/i1/Diff_LPF_Inst/myFIR
# ** Warning: (vsim-3722) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/diff_lpf.v(68): [TFMPC] - Missing connection for port 'ast_sink_ready'.
# ** Warning: (vsim-3722) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/diff_lpf.v(68): [TFMPC] - Missing connection for port 'ast_source_error'.
# ** Warning: (vsim-3722) E:/loc13/33softwareWireless/DBPSKmoddemod_V11/diff_lpf.v(68): [TFMPC] - Missing connection for port 'ast_source_valid'.
# add wave *
# view structure
# .main_pane.structure.interior.cs.body.struct
# view signals
# .main_pane.objects.interior.cs.body.tree
# run 100 ns
# ** Warning: (vsim-PLI-3407) Too many data words read on line 127500 of file &BPSK_data.txt&. (Current address [127501], address range [1:127500])& & : E:/loc13/33softwareWireless/DBPSKmoddemod_V11/simulation/modelsim/SDR_Platform.vt(74)
#& & Time: 0 ps&&Iteration: 0&&Instance: /SDR_Platform_vlg_tst
#&&Note : Cyclone II PLL is enabled
# Time: 0&&Instance: SDR_Platform_vlg_tst.i1.PLL_10X10M_M.altpll_component.stratixii_pll.pll1
# Warning : Invalid transition to 'X' detected on StratixII PLL input clk. This edge will be ignored.
===日 10:40:36追加===
之前的问题被解决,参数和配置没有问题,错误有两个可能性:
一是rst正负极接反了,这个肯定是错了..
二是需要把所有input都接上,这个不确定是不是所有的,至少目前都接上是可以用的,稍后有时间会排查下.
现在还有俩问题,
一是为嘛加上这个fir模块以后仿真变得超级慢,绝对不是心理作用,确实是超级慢了.看手册没有指出来哪里能修改仿真速度,TestBench精度是没变的,这个不知道能不能解决.
二是是不是FIR2这个ip核只能用file来输入滤波器参数?FIR和FIR2有什么区别么?除了构建时候的形式.
[ 本帖最后由 astwyg 于
10:46 编辑 ]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
在线时间287 小时
威望1955 分
芯币4627 枚
TA的帖子TA的资源
纯净的硅(高级), 积分 1955, 距离下一级还需 45 积分
纯净的硅(高级), 积分 1955, 距离下一级还需 45 积分
再追加一点:
生成FIR ip核以后需要手动把.vo文件拷贝到modelsim文件夹下,然后再编译一次项目,否则会报错让你看.rpt文件,log大意是使用的ip核过旧.
FIR ip核是需要额外破解的,破解方法发个链接:
在线时间4 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
后面我也出现了你的那个问题输出全为0,也不知道是不是配置错了
在线时间13 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 10, 距离下一级还需 190 积分
一粒金砂(中级), 积分 10, 距离下一级还需 190 积分
可以自己写个testbench,仿真一下,更能够了解IP核的使用。好像只能进行时序仿真,RTL级的不行!
荣誉会员勋章
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
Powered by
逛了这许久,何不进去瞧瞧?  1. 在 ISE 集成环境中仿真 IP核
  IP 核应该在新建的工程中进行仿真与例化;在原工程中可以例化使用,但好像不能直接对它加 testbench 后进行仿真。如下两图所示。
图 1:直接在工程中对 ip核加 testbench 仿真时出错图 2:新建工程单独对 ip核仿真
modelsim 中仿真 ip 核
  a.在 modelsim中编译库(Xiliinx)
(1)在$Modeltech_6.0d/Xilinx_lib_tt下新建文件夹 Xilinx_lib($代表安装盘符)(2)打开 Modelsim-&File-&Change Diriectory,将路径指向刚才新建的文件夹 Xilinx_lib,这样 Xilinx 编译的所有库都将会在该文件夹下。(3)编译 Xilinx 库。在$Xilinx-&verilog-& 下有三个库“simprims”,“unisims”和“xilinxcorelib”。在 modelsim 的 worke 窗口 Library 属性中点右键-&new-&library(或在File 菜单下 new-&libary),输入库名(自定义)如 Xilinx_lib_tt,这样在 workpace library 属性下就可看到 Xilinx_lib_tt 了。(4)modelsim 中选中 compile,在弹出的对话框中,library 选择刚才新建的 xilinx_lib_tt,查找范围为 xilinx 库($Xilinx/verilog/src/),如 XilinxCoreLib,选中文件编译即可。
  b. 在 modelsim中加载已编译的库
  当要在 modelsim 中仿真带有 ip 核的设计时,需要加载对应公司的库才能仿真。仿真Xilinx 公司ip 核时需要在原工程文件中加入 ip 核的行为描述文件(&核名&.v)。
  如果工程文件直接包含在 xilinx“ XilinxCoreLib” library中,则可直接进行仿真。如果工程文件开始默认包含在“work”library 中,则需要在 Simulation-&Start Simulation-&library 中添加已编译的库,如图示。这样就可以对 ip 核进行仿真了。&  aa.在 modelsim中编译 Altera 的库与 Xilinx方法一样
  bb.在 modelsim中对 ip 核进行仿真,与 xilinx 一致;首先需要在 modelsim工程中加入设计文件,testbench 文件以及核的行为描述文件(&核名&.v);其次,自 File 菜单中更改库路径指向已编译的 altera库路径(否则原先编译的 altera 库将变为不可用,unavailable),这时原先编译的库将变为可用,然后在 Simulation-&Start Simulation-&library中添加库路径(同Xilinx,图4,图附 3)。
图 3:编译xilinx 库&& 图 4:加入库进行核仿真
  使用 modelsim 进行仿真,相对在 ISE 或 Qus 中直接调用 modelsim,至少有三个好处:
  1.速度快。仿真必然会不停的修改设计,每次修改设计后在 ISE 中需要重新综合后才能调用 modelsim;而在 Quartus 中时间花费更多,它还要等布局布线完成了才能调用。这样每次等待是件很痛苦的事。而直接在 modelsim 里面仿真,修改后只要重新编译即可仿真,速度要快的多。不过这样有一个坏处,那就是设计不一定是可综合的。但只要我们编程时时刻遵循可综合设计规则,培养良好的编程风格,这个缺点影响可减到最低。
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670&后使用快捷导航没有帐号?
查看: 4587|回复: 3
注册时间最后登录阅读权限50积分2287精华0帖子
进士, 积分 2287, 距离下一级还需 713 积分
TA的每日心情开心 13:39签到天数: 48 天[LV.5]常住居民I
摘要 利用FPGA IP核设计了一种快速、高效的傅里叶变换系统。针对非整数倍信号周期截断所导致的频谱泄露问题,提出了一种通过时输入信号加窗处理来抑制频谱泄露的方法。利用Modelsim和Matlab对设计方案进行了仿真,同时在Altera公司的CycloneⅡ硬件平台上进行了验证。验证结果表明,系统性能良好,改进效果明显。FFT是离散傅里叶变换(DFT)的一种快速算法,被广泛应用于频谱分析、音频编码、图像处理等数字信号处理领域。FFT运算复杂,需要大量的存储器和运算单元,其硬件实现平台多种多样。DSP需要外置存储器和特定接口,限制了运算速度。ASIC虽能满足速度要求,但其硬件电路复杂、可扩展性差、且价格昂贵。FPGA具有陕速并行运算、高集成度、低功耗等特点,且具有丰富的IP核资源,方便调用,适合FFT算法的实现。对于512点FFT处理器,如果该512个输入数据不是信号周期的整数倍,即非整数倍周期截断,则会出现频谱泄露现象。窗函数处理的宗旨是减小频谱泄露。常规的FFT硬件实现方法均不考虑由于非整数倍截断导致的频谱泄露问题。针对以上问题,本文设计了一种基于Altera IP核的512点FFT系统,同时通过对输入信号的加窗处理,抑制了非整数倍信号周期截断所产生的频谱泄露。1 原理概述1.1 FFT原理离散傅里叶变换(DFT)算法为
09:39 上传
FFT为DFT的快速算法,其方法多种多样,基本可以分为按时间抽取法和按频率抽取法两类。此处介绍基-4频率抽取法。令N=4M,对式(1)N点的DFT可按如下方法作按频率出抽取
09:39 上传
4个等式可定义为一个蝶形运算,蝶形运算可看作基-4FFT基本运算单元。参与蝶形运算的4个节点是有规律的,分别为(n)、(n+N/4)、(n+2N/4)和(n+3N/4)。接着再将X(4r)、X(4r+1)、X(4r+2)和X(4r+3)分别分解为4个长度为N/16的序列,基本结构是每一级的运算由N/4个蝶形运算构成,经过迭代log4N次后完成计算。FFT算法的本质是利用系数
09:40 上传
的共轭对称性和周期性,将长序列DFT分解成短序列DFT,避免了大量的重复运算,从而提高运算效率。1.2 窗函数原理当对输入信号非整数倍周期截断,即512个输入数据不是输入信号周期的整数倍时,会出现频谱泄露现象。对输入信号进行加窗处理,可以有效地抑制频谱泄露。常用的窗函数有矩形窗(Rectangle Window)、汉宁窗(Hanning Window)、海明窗(Hamming Window)、布拉克曼窗(Blackman Window)等,不同的窗函数具有不同的特点,表现在主瓣旁瓣宽度,频率识别精度及幅度识别精度等方面。图1为Matlab仿真图,分别为原始信号,原始信号加窗(海明窗)结果,原始信号做512点FFT结果,原始信号加窗后再做512点FFT结果,这4幅图直观形象地描述了时域信号做FFT后的频域结果,以及原始信号是否加窗对FFT结果的影响。
09:39 上传
2 FFT IP核FFT IP核是高速执行的,参数可配置的FFT处理器,可以实现复数形式的FFT变换和IFFT变换。想要正确地使用FFT IP核,首先需要了解其引擎结构、数据流结构和关键管脚信号。2.1 引擎结构FFI IP核有两种不同的引擎结构:四输出和单输出,结构如图2(a)和图2(b)所示。核心区别在于FFT蝶形处理器的吞吐量。一个时钟周期内,四输出结构可以计算出所有4个蝶形输出,单输出结构可以计算出一个蝶形输出。
09:39 上传
2.2 数据流结构FFI IP核支持流、变量流、缓冲突发、突发4种数据流结构。流结构允许连续输入数据,同时输出连续的复数数据流。变量流产生一个与流结构类似的连续输出数据流。缓冲突发结构需要存储资源相对较少,但平均吞吐量也相应降低。突发结构的执行过程与缓冲突发结构类似,对于给定的参数设置,突发结构需要更少的存储资源。
09:39 上传
其中,clk为时钟信号;reset_n为复位信号;inverse为FFT处理器变换模式选择信号,选择FFT或IFFF;sink_valid为输入数据有效信号;sink_sop为输入第一个数据标志信号;sink_eop为输入最后一个数据标志信号;sink_real为输入实部数据;sink_imag为输入虚部数据;sink_error为输入错误标志;source_ready为输出等待状态标志;sink_ready为输入等待状态标志;source_error为输出错误标志;source_real为结果实部数据;source_imag为结果虚部数据;source_exp为结果补偿系数;source_valid为结果有效信号;source_sop为输出第一个数据标志信号;source_eop为输出最后一个数据标志信号。3 方案设计系统主要由三部分组成:A/D采集模块、FPGA处理模块及MCU运算显示模块,系统框图如图4所示。A/D采集外部信号数据,将其存入FPGA内部缓存RAM。当FFT输入有效时,读取缓存中的数据,同时与窗函数表中的对应系数做乘法运算,结果输入FFT核中,FFT核处理结束后将数据存入缓存RAM中。单片机读取缓存RAM中的结果数据,进行相应的模值计算,并通过LCD显示结果频谱图形。该方案的核心在于窗函数与FFT运算核的设计与实现。
09:39 上传
3.1 窗函数设计前端数据缓存采用双口RAM核,深度512,位宽8 bit,存放A/D采集到的信号数据。窗函数表采用ROM核,深度512,位宽8 bit,存放窗函数数据。通过Matlab生成512点Hamming窗函数系数表,由于该数据为浮点数,而本设计中全部采用定点运算,故对窗函数系数进行256倍放大,将其变为定点整数,数据范围为0~255。将系数表生成mif文件,作为ROM的初始化文件。该RAM和ROM采用同一套读出地址,保证相应数据同步读出,做乘法运算,得到16 bit结果数据。由于Hamming窗数据是实际数据的256倍,所以需要对乘法结果进行右移8位操作,得到8bit FFT输入数据。设计模块如图5所示,该模块实现了输入信号数据的加窗处理。
09:41 上传
3.2 FFT核设计FFT核采用MegaWizard FFT v11.1,变换点数选择512,数据精度8 bit,引擎结构选择单输出结构,引擎数为1,I/O数据流结构选择突发(Burst)结构。FFT输出数据有3种:实部数据、虚部数据和补偿指数数据。采用两个双口RAM核,深度均为512,宽度均为8 bit,分别存放FFT核的实部结果数据和虚部结果数据。由于每512个FFT输出数据,补偿指数均相同,所以设置一个8 bit的寄存器存放补偿指数即可。设计模块如图6所示,该模块实现了加窗处理后的信号数据的快速傅里叶变换。
09:41 上传
4 仿真与硬件验证4.1 系统仿真FPGA开发环境为QuartusII 11.1,仿真环境为Modelsiml0.0。仿真时,由Matlab生成波形数据mif文件,作为仿真测试数据文件存入波形缓存RAM中。通过Quartus II调用Modesim对测试工程进行仿真,仿真时序如图7所示。经时序分析可知,工作时钟频率为100 MHz(period= 10 ns),每进行一次512点处理到全部输出处理结果共耗时36.9μs。
09:41 上传
将仿真结果数据导入Matlab,得到结果由图8(a)知,对信号周期整数倍截断FFT处理后,得到单一的正确的频谱图;如图8(b)知,对信号周期非整数倍截断FFT处理后,频谱出现严重泄露,且幅度值下降;如图8(c)知,对信号周期非整数倍截断,加窗后做FFT处理,频谱泄露现象有明显的改进,但幅度值因为加窗处理而相应下降。仿真结果表明,FFT系统设计正确,且加窗处理对信号周期非整数倍截断导致的频谱泄露问题有良好的改进效果。
09:41 上传
4.2 硬件验证ADC选用ADS9238,它是一款高速高动态范围A/D转换器,12 bit,最高采样时钟达65 MSample·s-1。MCU选用c单片机,LCD选用ZLG320240K-FFSSWE-YBC,分辨率为320×240,可以满足字符、汉字及图形等各种显示需求。FPGA选用Altera公司的Cyclone II EP2C8Q208 C8N,该芯片资源丰富,包含8256个LEs,36个4 kbit Block RAM,18个内部乘法器和208个I/O资源,并支持FFT IP核。FFT处理时钟为100 MHz,A/D采样率为10 MHz,采样点数为512,故频谱分辨率f=10 MHz/512=19.531 kHz。当输入信号为390.625 kHz时,512个采样点表示20个信号周期;当输入信号为400.390 kHz时,512个采样点表示20.5个信号周期。在加窗和不加窗两种情况下分别对频率为390.625 kHz和400.390 kHz的正弦信号进行采样,得到如图9的结果。
09:41 上传
图9中(a)为不加窗的情况下对390.625 kHz的输入信号进行采样,由于512个点正好是20倍截断,所以只在频谱的第20个点有单一幅值,说明FFT系统工作正常。而且由于是整数倍截断,结果没有频谱泄露;图9(b)为不加窗的情况下对400.390 kHz的输入信号进行采样,由于512个点正好为20.5倍截断,非整数倍截断,所以结果中存在严重的频谱泄露;图9(c)为加窗的情况下对400.390 kHz的输入信号进行采样,可以看到,频谱泄露现象得到较好的改善。硬件测试结果表明,FFT系统设计正确,且加窗处理对信号周期非整数倍截断导致的频谱泄露问题有良好的改进效果。5 结束语本文利用Altera公司的IP核设计了一种FFT系统,该方法设计简单、资源利用率高、运算速度快,试验证明具有良好性能。同时针对非整数倍周期截断导致的频谱泄露问题,提出了一种通过加窗改进的方法,经硬件平台验证,其改进效果明显。由于加窗导致的幅值变化问题,本文尚未作详细论证,有待进一步的研究。
注册时间最后登录阅读权限10积分5精华0帖子
白丁, 积分 5, 距离下一级还需 45 积分
TA的每日心情开心 22:16签到天数: 1 天[LV.1]初来乍到
不错不错好好学习下
注册时间最后登录阅读权限10积分8精华0帖子
白丁, 积分 8, 距离下一级还需 42 积分
该用户从未签到
可以参考下源代码吗
注册时间最后登录阅读权限20积分129精华0帖子
童生, 积分 129, 距离下一级还需 71 积分
TA的每日心情怒 09:07签到天数: 11 天[LV.3]偶尔看看II
很不错的资料,感谢
站长推荐 /4
本周日()上午,摩尔吧孵化器邀请资深研发工程师从ASIC前端设计到验证工具与流程,来和你讲讲数字芯片设计这些事儿。活动时间: 9:30-11:30
具体详情查看
现在e络盟与TE Connectivity联手共同举办在线调查问卷活动,只需回答两个简单问题,便有机会获得小米充电宝一只。立刻参与!
物联网的发展使得各类无线技术受到越来越多的关注,Atmel凭借着自身在无线技术领域的积累以及结合自身低功耗技术推出了多款优异的无线评估套件,如基于WiFi技术的Atmel WINC1500-XSTK 立即参与!
你可以直接使用嵌入了花生壳(内网版)的树莓派实现web网站,SFTP远程传输文件等应用。这无疑给众树莓派用户,带来了更多玩法。 立刻抢楼!
Powered by Discuz!
活动传送门×}

我要回帖

更多关于 altera ip核仿真 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信