问题描述
一般问题描述:
Standard_cc_module产生的WARN_CC周期对于最大长度的UFC消息而言太短。如果使用UFC消息并且使用standard_cc_module生成WARN_CC和DO_CC,则会发生这种情况。
解决/修复方法
要解决此问题,必须进行以下更改以防止在DO_CC事件附近请求长UFC消息时可能发生的UFC / CC冲突。
1.在standard_cc_module中找到prepare_count_r寄存器的声明并添加2位:
例如,
reg [0:7] prepare_count_r; ===> reg [0:9] prepare_count_r;
signal prepare_count_r:std_logic_vector(0到7):=“00000000”; ===> signal prepare_count_r:std_logic_vector(0到9):=“0000000000”;
2.更改prepare_count_r的移位寄存器代码:
一世。找到代码中分配了prepare_count_r的行。
例如。单个2字节通道VHDL
– 对于1车道,我们需要8个周期的计数。
处理(以user_clk)
开始
if(USER_CLK’event和USER_CLK =’1’)然后
在DLY之后,prepare_count_r <=(cc_idle_count_done_c&prepare_count_r(0到6));
万一;
结束过程;
例如,单个2字节通道Verilog
//对于仿真,将准备计数初始化为全零以仿真SRL16
//配置完成后电路也将工作的是init值包括
// 那些。
初始
prepare_count_r = 8’b00000000;
//对于1个泳道,我们需要8个循环计数。
总是@(posedge USER_CLK)
prepare_count_r <=`DLY {cc_idle_count_done_c,prepare_count_r [0:6]};
II。根据Pg上提供的表格更改使用的计数。 “COREGen Aurora用户指南”第91页:( http://www.xilinx.com/aurora/aurora_member/ug061.pdf)。如果使用
Verilog,也将初始语句更改为10位。
3.找到prepare_count_r(7)或prepare_count_r [7]的每个实例,并分别替换为VHDL和Verilog的prepare_count_r(9)或prepare_count_r [9]。
没有回复内容