fineamy 发表于 2008-7-21 13:13

verilog编程风格与优化

sample1:<br />引用:<br />always&nbsp;@(ilut_index)<br />begin<br />if(ilut_index)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;end<br />else&nbsp;if(ilut_index)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;<br />end&nbsp;<br />else&nbsp;if(ilut_index)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />else&nbsp;if(ilut_index)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;<br />end<br />else&nbsp;if(ilut_index)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;<br />end&nbsp;<br />else&nbsp;if(ilut_index)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />else&nbsp;if(ilut_index)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />else&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;0;&nbsp;&nbsp;<br />end<br />end<br />sample2:<br />引用:<br />always&nbsp;@(ilut_index)<br />begin<br />if(ilut_index&nbsp;==&nbsp;1'b1)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;end<br />else&nbsp;if(ilut_index&nbsp;==&nbsp;2'b01)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;<br />end&nbsp;<br />else&nbsp;if(ilut_index&nbsp;==&nbsp;3'b001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />else&nbsp;if(ilut_index&nbsp;==&nbsp;4'b0001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;<br />end<br />else&nbsp;if(ilut_index&nbsp;==&nbsp;5'b00001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;<br />end&nbsp;<br />else&nbsp;if(ilut_index&nbsp;==&nbsp;6'b000001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />else&nbsp;if(ilut_index&nbsp;==&nbsp;7'b0000001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />else&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;0;&nbsp;&nbsp;<br />end<br />end<br />sample3:<br />引用:<br />always&nbsp;@(ilut_index)<br />begin<br />if(ilut_index&nbsp;==&nbsp;1'b1)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;end<br />if(ilut_index&nbsp;==&nbsp;2'b01)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;<br />end&nbsp;<br />if(ilut_index&nbsp;==&nbsp;3'b001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />if(ilut_index&nbsp;==&nbsp;4'b0001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;<br />end<br />if(ilut_index&nbsp;==&nbsp;5'b00001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;<br />end&nbsp;<br />if(ilut_index&nbsp;==&nbsp;6'b000001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />if(ilut_index&nbsp;==&nbsp;7'b0000001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />end<br />else&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;0;&nbsp;&nbsp;<br />end<br />end<br /><br />sample4:<br />always&nbsp;@(ilut_index)<br />begin<br />if((ilut_index&nbsp;==&nbsp;1'b1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||<br />&nbsp;&nbsp;&nbsp;(ilut_index&nbsp;==&nbsp;2'b01)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||<br />&nbsp;&nbsp;&nbsp;(ilut_index&nbsp;==&nbsp;3'b001)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;(ilut_index&nbsp;==&nbsp;3'b0001)&nbsp;&nbsp;&nbsp;&nbsp;||<br />&nbsp;&nbsp;&nbsp;(ilut_index&nbsp;==&nbsp;3'b00001)&nbsp;&nbsp;&nbsp;||<br />&nbsp;&nbsp;&nbsp;(ilut_index&nbsp;==&nbsp;3'b000001)&nbsp;&nbsp;||<br />&nbsp;&nbsp;&nbsp;(ilut_index&nbsp;==&nbsp;3'b0000001)&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;end<br />&nbsp;&nbsp;else&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;end<br />&nbsp;&nbsp;end<br />sample5:<br />引用:<br />always&nbsp;@(ilut_index)<br />begin<br />casex&nbsp;(ilut_index)<br />8'b1xxx_xxxx&nbsp;:&nbsp;ron&nbsp;=&nbsp;1;<br />8'b01xx_xxxx&nbsp;:&nbsp;ron&nbsp;=&nbsp;1;<br />8'b001x_xxxx&nbsp;:&nbsp;ron&nbsp;=&nbsp;1;<br />8'b0001_xxxx&nbsp;:&nbsp;ron&nbsp;=&nbsp;1;<br />8'b0000_1xxx&nbsp;:&nbsp;ron&nbsp;=&nbsp;1;<br />8'b0000_01xx&nbsp;:&nbsp;ron&nbsp;=&nbsp;1;<br />8'b0000_001x&nbsp;:&nbsp;ron&nbsp;=&nbsp;1;<br />default&nbsp;:&nbsp;ron&nbsp;=&nbsp;0;<br />endcase<br />end<br />sample6:<br />引用:<br />always&nbsp;@(ilut_index)<br />begin<br />casex&nbsp;(ilut_index)<br />8'b1xxx_xxxx&nbsp;,<br />8'b01xx_xxxx&nbsp;,<br />8'b001x_xxxx&nbsp;,&nbsp;<br />8'b0001_xxxx&nbsp;,<br />8'b0000_1xxx&nbsp;,<br />8'b0000_01xx&nbsp;,<br />8'b0000_001x&nbsp;:&nbsp;begin<br />&nbsp;&nbsp;&nbsp;ron&nbsp;=&nbsp;1;<br />end<br />default:&nbsp;ron&nbsp;=&nbsp;0;<br />endcase<br />end<br />上面代码等效<br />问题:<br />&nbsp;&nbsp;1.请问上面几种风格优略如何?<br />&nbsp;&nbsp;2.从综合角度,速度及门数方面有没区别,请作一比较?

walnutcy 发表于 2008-8-2 08:40

估计后两种会好一些,

IF语句如果没写完,可能会综合出锁存器,而case,casex一般不会,都是组合逻辑电路,<br /><br />其实这些你都可以自己综合一下,看看综合结果进行比较就好,
页: [1]
查看完整版本: verilog编程风格与优化