verilog编程风格与优化
sample1:<br />引用:<br />always @(ilut_index)<br />begin<br />if(ilut_index) begin<br /> ron = 1;<br /> end<br />else if(ilut_index) begin<br /> ron = 1; <br />end <br />else if(ilut_index) begin<br /> ron = 1; <br />end<br />else if(ilut_index) begin<br /> ron = 1;<br />end<br />else if(ilut_index) begin<br /> ron = 1; <br />end <br />else if(ilut_index) begin<br /> ron = 1; <br />end<br />else if(ilut_index) begin<br /> ron = 1; <br />end<br />else begin<br /> ron = 0; <br />end<br />end<br />sample2:<br />引用:<br />always @(ilut_index)<br />begin<br />if(ilut_index == 1'b1) begin<br /> ron = 1;<br /> end<br />else if(ilut_index == 2'b01) begin<br /> ron = 1; <br />end <br />else if(ilut_index == 3'b001) begin<br /> ron = 1; <br />end<br />else if(ilut_index == 4'b0001) begin<br /> ron = 1;<br />end<br />else if(ilut_index == 5'b00001) begin<br /> ron = 1; <br />end <br />else if(ilut_index == 6'b000001) begin<br /> ron = 1; <br />end<br />else if(ilut_index == 7'b0000001) begin<br /> ron = 1; <br />end<br />else begin<br /> ron = 0; <br />end<br />end<br />sample3:<br />引用:<br />always @(ilut_index)<br />begin<br />if(ilut_index == 1'b1) begin<br /> ron = 1;<br /> end<br />if(ilut_index == 2'b01) begin<br /> ron = 1; <br />end <br />if(ilut_index == 3'b001) begin<br /> ron = 1; <br />end<br />if(ilut_index == 4'b0001) begin<br /> ron = 1;<br />end<br />if(ilut_index == 5'b00001) begin<br /> ron = 1; <br />end <br />if(ilut_index == 6'b000001) begin<br /> ron = 1; <br />end<br />if(ilut_index == 7'b0000001) begin<br /> ron = 1; <br />end<br />else begin<br /> ron = 0; <br />end<br />end<br /><br />sample4:<br />always @(ilut_index)<br />begin<br />if((ilut_index == 1'b1) ||<br /> (ilut_index == 2'b01) ||<br /> (ilut_index == 3'b001) || <br /> (ilut_index == 3'b0001) ||<br /> (ilut_index == 3'b00001) ||<br /> (ilut_index == 3'b000001) ||<br /> (ilut_index == 3'b0000001) begin<br /> ron = 1;<br /> end<br /> else begin<br /> ron = 0;<br /> end<br /> end<br />sample5:<br />引用:<br />always @(ilut_index)<br />begin<br />casex (ilut_index)<br />8'b1xxx_xxxx : ron = 1;<br />8'b01xx_xxxx : ron = 1;<br />8'b001x_xxxx : ron = 1;<br />8'b0001_xxxx : ron = 1;<br />8'b0000_1xxx : ron = 1;<br />8'b0000_01xx : ron = 1;<br />8'b0000_001x : ron = 1;<br />default : ron = 0;<br />endcase<br />end<br />sample6:<br />引用:<br />always @(ilut_index)<br />begin<br />casex (ilut_index)<br />8'b1xxx_xxxx ,<br />8'b01xx_xxxx ,<br />8'b001x_xxxx , <br />8'b0001_xxxx ,<br />8'b0000_1xxx ,<br />8'b0000_01xx ,<br />8'b0000_001x : begin<br /> ron = 1;<br />end<br />default: ron = 0;<br />endcase<br />end<br />上面代码等效<br />问题:<br /> 1.请问上面几种风格优略如何?<br /> 2.从综合角度,速度及门数方面有没区别,请作一比较?估计后两种会好一些,
IF语句如果没写完,可能会综合出锁存器,而case,casex一般不会,都是组合逻辑电路,<br /><br />其实这些你都可以自己综合一下,看看综合结果进行比较就好,
页:
[1]