對于Verilog HDL的初學(xué)者,經(jīng)常會對語法中的幾個容易混淆的地方產(chǎn)生困惑。下面列出幾個常見問題和解決它們的小竅門。
1.“=”和“<=”的區(qū)分方法
前面的內(nèi)容已經(jīng)從原理上解釋了阻塞(=)和非阻塞(<=)賦值的區(qū)別,但對于初學(xué)者來說,在實際應(yīng)用過程中還會產(chǎn)生一些困惑。下面的方法可以幫助初學(xué)者來弄清楚兩種賦值符號的應(yīng)用場合。在always語句中,所有的賦值符號用非阻塞的,即“<=”; 在always語句外,所有的賦值符號用阻塞的,即“=”。
2.“reg”和“wire”的區(qū)分方法
reg類型和wire類型是Verilog HDL語法中兩種最常用的變量。在對module定義的端口信號進(jìn)行類型描述的時候,初學(xué)者會對何時需要指定為reg型感到困惑??梢詤⒖枷旅娴姆椒?。
(1)如果這個信號需要在always塊里面被賦值,那么必須指定為reg類型的。
(2)如果這個信號需要在always塊外面被賦值,那么必須指定為wire類型的。如果這個信號是端口信號,那么沒默認(rèn)的類型就是wire類型的,不需要另外指定。