[FPGA] 关于spartan6输入数据在在IOB输入寄存器同步的问题

[复制链接]
2584|6
 楼主| sha527 发表于 2013-12-17 10:50 | 显示全部楼层 |阅读模式
现在做一个工程,输入数据16bit,同步时钟clk,用dcm对clk倍频得到clk2X,然后clk2X在IOB同步16bit数据,同步后的数据出错,个人理解是时序的setup时间不够或者说数据采错了位置。现在还不知道怎么办,需要使用IODELAY2吗,还是更改我的设计呢,请各位多多指教。
jasondwd 发表于 2013-12-17 11:42 | 显示全部楼层
clk2X的时钟是多少M?同步后数据出错是每次同步都错还是偶尔一次出错?
 楼主| sha527 发表于 2013-12-17 11:46 | 显示全部楼层
jasondwd 发表于 2013-12-17 11:42
clk2X的时钟是多少M?同步后数据出错是每次同步都错还是偶尔一次出错?

clk=74.25m,clk2X=148.5m,绝大部分数据都是错误的
jasondwd 发表于 2013-12-17 11:50 | 显示全部楼层
16bit数据的对应的clk是多少?贴上代码看看
 楼主| sha527 发表于 2013-12-17 12:41 | 显示全部楼层
输入的数据带同步时钟,频率74.25,用dcm得到2倍频i_gv7601_clk_2X1,2倍频频率148.5m。
reg[15:0] gv7601_data1;
always@(negedge i_gv7601_clk_2X1)
begin
    gv7601_data1 <= i_gv7601_data1;
end

//--------------------------------------
// GV7601 Data Output
//--------------------------------------
always@(posedge i_gv7601_clk_2X1,negedge i_gv7601_rstn1)
begin
        if(~i_gv7601_rstn1)
                o_BT1120_data1 <= 0;
        else
                o_BT1120_data1 <= gv7601_data1;
end

o_BT1120_data1 输出给后面的模块使用
hechnology 发表于 2013-12-17 15:57 | 显示全部楼层
本帖最后由 hechnology 于 2013-12-17 15:58 编辑

dcm的output clk_2x相位同步了么,同步的话至少每隔一次是对的
 楼主| sha527 发表于 2013-12-17 17:44 | 显示全部楼层
clk和clk2X是相位同步的,就像6楼说的,数据是每隔一个周期是对的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部