关于FIR的modelsim
(1)FIR ip核仿真
(2)FIR 多通道应用
(3)多通道fir ip核需要注意的复位问题
=======================================================================
(1)FIR ip核仿真
=======================================================================
关于FIR的modelsim仿真一直困惑着我。今天终于解决了。
在生成IP核时,会生成两个相应的文件夹XX_ip和XX_ip_sim,“XX”表示IP核的命名。在下面的文件夹中,我的IP命名为fir2。
打开XX_ip_sim文件夹,里面有不同仿真工具的支持文件,其中mentor就是modelsim的。把modelsim的仿真路径
修改到mentor文件夹下。仿真路径所调用的文件来自xx_ip_sim文件夹下的文件。当然是可以自己修改的。
打开mentor文件夹,里面就是相应的Tcl文件,不过在我们应用时要做一些修改。把顶层文件修改为自己编写的tb文件。文件
也要入在xx_ip_sim文件夹下。
3、在modelsim的tool菜单下选择Tcl,运行msim_setup文件。
4、运行dev_com
5、运行com
6、运行elab_debug
如果重新生成了IP核,只需要运行com和elab_debug即可,不需要每次都编译库文件的。
==================================================================
(2)FIR多通道仿真应用
===================================================================
IP核的设置如下:


测试脚本如下:
module fir_i2_20m_4ch_4x_tb;
parameter CLK_CYCLE = 4'd10;
reg clk =0;
reg rst =0;
reg [15:0] din1=0;
reg [15:0] din2=0;
reg [15:0] din3=0;
reg [15:0] din4=0;
reg [1:0] cnt =0;
reg [15:0] din =0;
reg in_valid =0;
reg in_sop =0;
reg in_eop =0;
wire [69:0] dout;
wire [34:0] dout_i;
wire [34:0] dout_q;
wire out_chanl;
assign dout_i = dout[34:0];
assign dout_q = dout[69:35];
initial
begin
#0
clk =0;
rst =1;
#(3*CLK_CYCLE)
rst =0;
end
always #(CLK_CYCLE/2) clk = ~clk;
always @( posedge clk )
begin
if( rst )
begin
cnt <= 2'd0;
end
else
begin
cnt <= cnt + 1'b1;
end
end
always @( posedge clk )
begin
if( & cnt )
begin
din1 <= din1 + 1;
din2 <= din2+2;
din3 <= din3;
din4 <= din4;
end
end
always @( posedge clk )
begin
if( rst )
begin
in_valid <= 1'b0;
in_sop <= 1'b0;
in_eop <= 1'b0;
din <= 0;
end
else
begin
case( cnt )
2'd0 :
begin
in_valid <= 1'b1;
in_sop <= 1'b1;
in_eop <= 1'b0;
din <= din1;
end
2'd1 :
begin
in_valid <= 1'b1;
in_sop <= 1'b0;
in_eop <= 1'b0;
din <= din2;
end
2'd2 :
begin
in_valid <= 1'b1;
in_sop <= 1'b0;
in_eop <= 1'b0;
din <= din3;
end
2'd3 :
begin
in_valid <= 1'b1;
in_sop <= 1'b0;
in_eop <= 1'b1;
din <= din4;
end
default:
begin
in_valid <= 1'b0;
in_sop <= 1'b0;
in_eop <= 1'b0;
din <= 0;
end
endcase
end
end
reg [1:0] ast_sink_error= 2'd0;
wire [1:0] ast_source_error;
fir_i2_20m_4ch_4x_ip fir_i2_20m_4ch_4x_ip_inst (
.clk (clk), // clk.clk
.reset_n (~rst), // rst.reset_n
.ast_sink_data (din), // avalon_streaming_sink.data
.ast_sink_valid (in_valid), // .valid
.ast_sink_error (ast_sink_error), // .error
.ast_sink_sop (in_sop), // .startofpacket
.ast_sink_eop (in_eop), // .endofpacket
.ast_source_data (dout), // avalon_streaming_source.data
.ast_source_valid (out_valid), // .valid
.ast_source_error (ast_source_error), // .error
.ast_source_sop (out_sop), // .startofpacket
.ast_source_eop (out_eop), // .endofpacket
.ast_source_channel (out_chanl) // .channel
);
endmodule
在仿真中只给出一通道的信号

在仿真中分别给出一,二通道的信号。

结论:在四通道插四的仿真中,IP核会把1,2通道分在一起,3,4通道分在一起。out_chanl也只是一位的。
=============================================================================
(3)多通道fir ip核需要注意的复位问题
=============================================================================
在复位状态in_valid不能与in_sop(或in_eop)同时为高,否则在运算中会出现错误。
关于FIR的modelsim的更多相关文章
- quartus ip核破解
在证书文件中添加一段: FEATURE 6AF7_0012 alterad 2035.12 permanent uncounted E75BE809707E VENDOR_STRING="i ...
- fpga ip
原文地址:altera FIR ip核 license破解作者:王永刚Aether 在证书文件中添加一段: FEATURE 6AF7_0012 alterad 2035.12 permanent un ...
- 基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)
1 设计内容 本设计是基于FPGA的音频信号FIR低通滤波,根据要求,采用Matlab对WAV音频文件进行读取和添加噪声信号.FFT分析.FIR滤波处理,并分析滤波的效果.通过Matlab的分析验证滤 ...
- modelsim 仿真xilinx fir ip
到现在不管fir ip 用的对不对,但是在使用modelsim是可以仿真fir ip的. 具体步骤: 1.仿真库,添加到modelsim目录配置文件: 2.将这个文件中的: :List of dyna ...
- 转载论文关于fir滤波器的fpga实现
摘 要 本文讨论的FIR滤波器因其具有严格的线性相位特性而得到广泛的应用.在工程实践中,往往要求信号处理具有实时性和灵活性,本论文研究FIR的FPGA解决方案正体现了电子系统的微型化和单片化. 本论文 ...
- Vivado 与 Modelsim 联合仿真
1 编译库 用命令行 用vivado工具 vivado 有很多 IP核的接口 已经与 ISE的核 不太一样了,比如fir ,接口就是这样的: fir_lp fir_lp_ip( .aclk ( ...
- fir.im Weekly - 关于 iOS10 适配、开发、推送的一切
"小程序"来了,微信变成名副其实的 Web OS,新一轮的Web App 与Native App争论四起.程序员对新技术永远保持灵敏的嗅觉和旺盛的好奇心,@李锦发整理了微信小程序资 ...
- fir.im Weekly - iOS / Android 动态化更新方案盘点
动态化更新是 App 开发必然面对的问题.在 iOS 环境下,Apple 开发者们像是" 带着手铐脚镣跳舞" ,相比之下 Android 开发者会轻松一点,有很多相关的开源框架帮助 ...
- fir.im Weekly - APP 性能监测优化 二三事
每一个成功的 App,都拥有强大的性能体验.本期 fir.im Weekly 整理了微信读书.美团外卖. 天猫.美团点评技术团队的关于性能监测优化方面策略和工具的分享,一起来看看. 微信读书 iOS ...
随机推荐
- request error: Connection aborted.', error(113, 'No route to host')
from: https://superuser.com/questions/720851/connection-refused-vs-no-route-to-host/720860 "Con ...
- tomcat APR的配置
Tomcat 可以使用 APR 来提供超强的可伸缩性和性能,更好地集成本地服务器技术. APR(Apache Portable Runtime) 是一个高可移植库,它是 Apache HTTP Ser ...
- pyplot图像组件
pyplot图像组件 ax子对象的组件内容 Title 图表标题 plt.title() Axis 坐标范围,x轴,y轴 plt.axis() label 坐标轴标注 plt.xlabel() plt ...
- 分类模型评估之ROC-AUC曲线和PRC曲线
http://blog.csdn.net/pipisorry/article/details/51788927 在样本分布及其不均匀的情况下,建议用PRC...可以看下这个精确率.召回率.F1 值.R ...
- 使用HTTP头去绕过WAF(bypasswaf)
在用node http get 请求的时候,发现的 解决方案: Add headers to all Burp requests to bypass some WAF products. This e ...
- js中的变量提升(hoisting)
来看如下代码: function HelloJS(){ var array = [1,2,3,4,5]; for(var i in array){ } alert(i); } HelloJS(); a ...
- $.ajax dataType设置为json 回调函数不执行
请求方式如下: $.xpost = function (url, data) { return $.ajax({ url: url, type: "POST", dataType: ...
- quartz2.2.1 web配置
首先到http://www.quartz-scheduler.org/downloads/catalog下载工具包 将下载包中lib目录下的所有jar包导入到项目中 因为quartz依赖log4j,需 ...
- Majority Element(ARRAY-BINARY SEARCH)
QUESTION Given an array of size n, find the majority element. The majority element is the element th ...
- MyBatis高级查询
-------------------------siwuxie095 MyBatis 高级查询 1.MyBatis 作为一个 ORM 框架,也对 SQL 的高级查询做了支持, MyBatis 高级查 ...