白丁 发表于 2015-12-27 20:14

两段verilog代码比较

always(posedge CLOCK)
case(i)
0:
if(C1 == 8) begin C1 <= 4’ d0; i <= i + 1’ b1; end
else begin reg1 <= reg1 + 1’ b1; C1 <= C1 + 1’ b1; end
endcase

always(posedge CLOCK)
case(i)
0,1,2,3,4,5,6,7:
begin
reg1 <= reg1 + 1’ b1;
if( C1 == 8 -1 ) begin C1 <= 4’ d0; i <= i + 1’ b1; end
else C1 <= C1 + 1’ b1;
end
endcase

这两段代码你喜欢哪一种形式,说说理由。

xiaojun0618 发表于 2015-12-27 21:12

第二段,更像硬件描述语言!

lclhitwh 发表于 2015-12-28 10:50

第二段感觉更清晰,不懂得人看着应该也能懂点,第一段很专业了

小梅哥 发表于 2015-12-28 10:50

为什么没有分成两个always块来写?这两种方式都是在一个块中对多个信号赋值,看起来不清爽

扬帆起航 发表于 2015-12-28 10:51

没有偏好

elvike 发表于 2015-12-28 10:57

两段都没感觉

okhxyyo 发表于 2015-12-28 12:02

<div class='shownolgin' data-isdigest='no'>:time:说实话两段都没有让我觉得眼前一亮的感觉。。第一段完全从顺序逻辑来写的把。。没有咱硬件语言的风范,所以我选第二段。。。</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

白丁 发表于 2016-1-1 20:53

<div class='shownolgin' data-isdigest='no'>小梅哥 发表于 2015-12-28 10:50
为什么没有分成两个always块来写?这两种方式都是在一个块中对多个信号赋值,看起来不清爽

你是说写成两段式的?</div><script>showreplylogin();</script>

白丁 发表于 2016-1-1 20:54

<div class='shownolgin' data-isdigest='no'>okhxyyo 发表于 2015-12-28 12:02
说实话两段都没有让我觉得眼前一亮的感觉。。第一段完全从顺序逻辑来写的把。。没有咱硬件语言的风范 ...

女神给个让人眼前一亮的代码,假如有128个需要相同的操作,第二段咋整</div><script>showreplylogin();</script>

白丁 发表于 2016-1-1 20:54

<div class='shownolgin' data-isdigest='no'>xiaojun0618 发表于 2015-12-27 21:12
第二段,更像硬件描述语言!

为啥?</div><script>showreplylogin();</script>

白丁 发表于 2016-1-1 20:54

<div class='shownolgin' data-isdigest='no'>elvike 发表于 2015-12-28 10:57
两段都没感觉

给段有感觉的出来看看</div><script>showreplylogin();</script>

okhxyyo 发表于 2016-1-2 13:38

<div class='shownolgin' data-isdigest='no'>白丁 发表于 2016-1-1 20:54
女神给个让人眼前一亮的代码,假如有128个需要相同的操作,第二段咋整

好多年没码过码了</div><script>showreplylogin();</script>

magicwind 发表于 2016-1-18 21:15

<div class='shownolgin' data-isdigest='no'>这个描述的是累加器吧,为什么要用case写呢,就用if else 不就好了吗。如果用if else的话 两段的区别就在于 if 分支放前面还是else分支放前面的问题。 另外,我觉得有个问题倒是要注意,你的寄存器怎么没有复位?</div><script>showreplylogin();</script>

白丁 发表于 2016-1-18 21:18

<div class='shownolgin' data-isdigest='no'>magicwind 发表于 2016-1-18 21:15
这个描述的是累加器吧,为什么要用case写呢,就用if else 不就好了吗。如果用if else的话 两段的区别就在 ...

if else?怎么个写法,如果case多了怎么办</div><script>showreplylogin();</script>

leilei0000 发表于 2024-1-26 15:17

<div class='shownolgin' data-isdigest='no'><table cellpadding="0" cellspacing="0">
        <tbody>
                <tr>
                        <td id="postmessage_1963411">第二段,更像硬件描述语言!</td>
                </tr>
        </tbody>
</table>
</div><script>showreplylogin();</script>
页: [1]
查看完整版本: 两段verilog代码比较