微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 用quartus建了一个IP核,求指数e^x,用modelsim仿真时输出和输入一样,为什么呢?

用quartus建了一个IP核,求指数e^x,用modelsim仿真时输出和输入一样,为什么呢?

时间:10-02 整理:3721RD 点击:
这个IP核是浮点型的
这是IP核生成的模块
module exe (
clock,
data,
result);
input   clock;
input [31:0]  data;
output [31:0]  result;
wire [31:0] sub_wire0;
wire [31:0] result = sub_wire0[31:0];
exe_altfp_exp_alc exe_altfp_exp_alc_component (
    .clock (clock),
    .data (data),
    .result (sub_wire0));
endmodule
这是测试程序
module exe_test;
reg [31:0] h;
reg clock;
wire [31:0] exp;
always #50 clock=~clock;
initial begin
clock=0;h=32'b0;
#100 h=32'b00111111100000000000000000000000;
#100 $finish;
end
exe M1 (
        .clock(clock),
        .data(h),
        .result(exp));
endmodule

菜鸟求指教啊

是延时设少了,需要多个时钟才能输出正确的值

1个cycle也太短了吧
话说它的ip输出没有valid么
感觉不太合理啊

这个应该怎么设置呢

你的ip生成的core应该有设置的地方吧 或者文档之类的介绍的东西
没有一个输出有效的信号的话 难道要外部弄个counter来生成这种东西? 不清楚

有一个异步清零信号,和使能信号

h=32'b0;
#100 h=32'b00111111100000000000000000000000;
#100 $finish;
首先输入了一个h=32‘b0,这个在浮点数中表示0,结果输出应该为1,而1的浮点表达式正好是接下来的输入32'b00111111100000000000000000000000;,而仿真的时间又太短了,所以看到输入和输出的结果一样。将仿真的时间放长一些看看。

仿真时间放长后,开始几个时钟周期有的是输入值,有的是不定值,在15个时钟输出正确的值,16个时钟有输出输入值,下个时钟以后都是正确的值了,这才是有效值,应怎么筛选呢

嗯,值得思考滴问题。

IP核有相关设置,有一项是Output latency in clock cycles!

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

网站地图

Top