微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA问题(这题目)

FPGA问题(这题目)

时间:10-02 整理:3721RD 点击:
先贴代码
input clk100m,
input sys_rst,
input [31:0]inter_in_max,
input [31:0]inter_in_min,
input [31:0]inter_in_sample,
input [31:0]inter_in_normal,
input data_en,
input inter_en,
input [3:0]inter_num,
mix inter_max (
    .clk100m(clk100m),
    .sys_rst(sys_rst),
    .data_in(inter_in_max),
    .data_en(data_en),
    .inter_en(inter_en),
    .inter_num(inter_num),
    .data_out(inter_out_max_reg),
    .data_out_en(inter_out_en_max)
    );
     
mix inter_min (
    .clk100m(clk100m),
    .sys_rst(sys_rst),
    .data_in(inter_in_min),
    .data_en(data_en),
    .inter_en(inter_en),
    .inter_num(inter_num),
    .data_out(inter_out_min_reg),
    .data_out_en(inter_out_en_min)
    );

mix inter_sample (
    .clk100m(clk100m),
    .sys_rst(sys_rst),
    .data_in(inter_in_sample),
    .data_en(data_en),
    .inter_en(inter_en),
    .inter_num(inter_num),
    .data_out(inter_out_sample_reg),
    .data_out_en(inter_out_en_sample)
    );     
     
mix inter_normal (
    .clk100m(clk100m),
    .sys_rst(sys_rst),
    .data_in(inter_in_normal),
    .data_en(data_en),
    .inter_en(inter_en),
    .inter_num(inter_num),
    .data_out(inter_out_normal_reg),
    .data_out_en(inter_out_en_normal)
    );     
这四个模块除了数据不一样。其他都一样吧。

再贴chipscope


chipscope中4个模块的输入都一样。前面那四个en都对齐了。
问题就是输出不对。
max和min输出四个时钟拍的out_en,
但是sample输出的是两个个时钟拍的out_en,时序也没对齐。
同样normal只输出了三个时钟拍的out_en,时序延迟了一拍。
代表的是sample只输出了两个有效数据,normal只输出了三个有效数据。
那么在随后的FIFO中,长度为4个时钟拍的wr_en写进去的数值就错了。

还是要先清楚mix是做什么功能的,也许它就是要利用data_in内的一些信息来产生输出呢。

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

网站地图

Top