子模块到顶层模块——例化与调用
在Verilog程序中,不可能將所有的代碼放在一個文件里面,不同功能的模塊封裝在一個文件里面,但最終我們要生成最終的系統電路,必須將這些子模塊生成一個頂層模塊,那么如何生成這樣的頂層模塊呢?
給出一個實例,
上圖中提出了這樣一個問題:如何將三個子模塊接成一個頂層模塊。這三個子模塊分別完成了:與,或,加 三種運算,現在需要做的是將三個子模塊綜合成一個頂層模塊,在此我們需要將我們設計的子模塊例化成被調用的子模塊。關于例化,討論兩個問題:
1.不要手打,要用ISE環(huán)境中自己例化的結果:
點擊該文件,在下面的窗口中出現view HDL instantiation Template!!雙擊,即可生成對應的模板,如圖:
這樣生成的例化模板,首先在格式上不會出錯,其次,比較簡單,不用手動輸入端口,要注意變量前面有小數點!!!!
2.如何將分離的模塊產生聯系??
上述三個模塊是分離的,將其組合成一個模塊的時候,注意到,模塊1與模塊 ,模塊2或模塊,都與模塊3有聯系。具體的聯系是:將與模塊和或模塊的輸出接到了相加模塊的輸入
那么如何表示這種邏輯關系呢?
在這里是組合邏輯電路,上述的邏輯聯系本質上是一種線連接,因此采用定義相應的變量為wire,并采用assign的賦值方式,即可完成賦值,如下圖:
得到得到綜合電路結果如下圖:
圖示完成了完整的頂層模塊構架。再次總結以下3個觀點:
1 各個子模塊的設計可以相互獨立
2 例化子模塊的時候,不要手打,采用“view HDL instantiaion Template”!例化更為方便。
3 線端子進行連接的時候,定義wire ,采用assign賦值的方式即可完成!!!
view HDL instantiation Template
總結
以上是生活随笔為你收集整理的子模块到顶层模块——例化与调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android中ExpandableLi
- 下一篇: 全世界网友被一位科学家耍了:比邻星美照竟