FPGA 代码优化

通常情况下case语句和if语句一样会综合出代有优先权解码的硬件电路,从上到下选项优先级逐渐降低。但如果设计者知道case语句中的所有项是互斥的,这时候就使用”parallel_case"综合指令。

具体用法在case关键字行的注释中插入”synthesis full_case“

always @(key)

 case(key)     //synthesis parallel_case

    4'b0001: a  = 0;

 endcase

 

尽量不要使用"大于""小于"这样的判断语句, 这样会明显增加使用的逻辑单元数量 .看一下报告,资源使用差别很大.

     例程:always@(posedge clk)
   begin
    count1=count1+1;
   if(count1==10000000)
     feng=1;    //no_ring
    else if(count1==90000000)
     begin
      feng=0;   //ring
      count1=0;
    end
end            //这么写会用107个逻辑单元

// 如果把这句话if(count1==10000000)改成大于小于,报告中用了135个逻辑单元

posted @ 2022-06-11 18:05  xkxxxxzzz  阅读(132)  评论(0)    收藏  举报