新手入门
- 积分
- 19
- 金钱
- 19
- 注册时间
- 2024-6-29
- 在线时间
- 4 小时
|
2金钱
我在用这款FPGA做lvds数据采集,每当我添加下面这行代码的时候布局布线就会报错:
- assign lvds_din_single[DATA_WIDTH*(i+1)-1:DATA_WIDTH*i] = {rxdata_temp_s[3],rxdata_temp_s[2],rxdata_temp_m[7],rxdata_temp_m[6],rxdata_temp_m[5],rxdata_temp_m[4],rxdata_temp_m[3],rxdata_temp_m[2],rxdata_temp_m[1],rxdata_temp_m[0]} ;
复制代码 这行的作用就是在for循环里不断拼接serdes原语产生的10位并行数据,一共是16路也就是160位的数据。每次加上这句话pds机会报下面这行错误:
E: Place-0084: MREGION_CLOCK: the driver ins_dsclk_ctrl/GTP_INBUFGDS_inst/opit_2 fixed at IOLHR_16_1050 is unreasonable. Sub-optimal placement for a clock source and a clock buffer.
似乎是说我前面inbufgds原语有问题,但是那部分只是例化了一下原语而已,没有别的操作,那部分代码如下:
- GTP_INBUFGDS GTP_INBUFGDS_inst
- (
- .O ( lvds_clk_pn ),
- .I ( lvds_clk_p ),
- .IB ( lvds_clk_n )
- );
复制代码 起初我考虑是不是位宽过大,于是将原本位宽160的assign信号改成16路位宽为10 的小位宽信号,上面的报错就消失了。但后续我在相应更改其他模块的代码时,相同的报错又在其他地方出现。这次报错出现在一个判断语句上:
- START : if(lvds_din_single_1 == {CHANNEL{PATTERN[DATA_WIDTH-1:0]}})
复制代码- START : if(lvds_din_single_1 == PATTERN)
复制代码 当我将判断语句从上面这行改成下面这行,就有会报上面所说的错误,不知道到底哪里出了问题,有没有大神可以帮忙解决?
|
最佳答案
查看完整内容[请看2#楼]
遇到同样的问题
查到 https://zhuanlan.zhihu.com/p/616107093
添加
|