原帖由 eeleader 于 2013-1-22 20:53 发表
具体问题还许要你的程序贴出来让大家评论一下。
好的。
第一个16位的计数器如下,将其注销与否对程序资源占用率没有太大影响
always @(posedge SYSCLK or negedge RST_B)
if (!RST_B) Half_period_CNT<=`UD 16'h0;
else Half_period_CNT<=`UD Half_period_CNT_N;
always @(*)
begin
if (TX_finish_sin)
Half_period_CNT_N=Half_period_CNT+1'h1;
else if(TX_finish_sin==0)
Half_period_CNT_N=16'h0;
else Half_period_CNT_N=Half_period_CNT;
end
我上面问题中的计数器,就是从13位到14位资源占用率变化很大的那个计数器如下:
always @(posedge SYSCLK or negedge RST_B)
if (!RST_B) Data_pack_cnt<=`UD 13'h1fff;
else Data_pack_cnt<=`UD Data_pack_cnt_N;
always @(*)
if(TR_CONTROL_CS==RX_FINISH)
Data_pack_cnt_N= 13'h1fff;
else if(TR_CONTROL_CS==RX_HEAD)
Data_pack_cnt_N= 13'h0;
else if(HEAD_ERR_internal)
Data_pack_cnt_N=Data_pack_cnt+1'h1;
else Data_pack_cnt_N=Data_pack_cnt;
谢谢各位了!! |