1、關(guān)于如何在VHDL模塊調(diào)用一個Verilog模塊
在VHDL模塊聲明一個要與調(diào)用的Verilog模塊相同名稱的元件(component),元件的名稱和端口模式應(yīng)與Verilog模塊的名稱和輸入/輸出模式相同。注意Verilog區(qū)分大小寫,VHDL不區(qū)分,所以模塊名字一定要完全一致,不能搞混。
舉個例子:下面是一個VHDL模塊,在里面聲明了一個元件(component)
看Verilog模塊再
VHDL的模塊就是通過聲明一個元件(component)來調(diào)用這個Verilog模塊,將元件聲明提出來講,如下圖:
對比這個Verilog模塊和VHDL中聲明的元件不難發(fā)現(xiàn),模塊名/端口/輸入輸出模式完全一樣,這和VHDL自己調(diào)用用VHDL的元件(component)基本一樣。
2、關(guān)于如何在Verilog中調(diào)用VHDL模塊
在Verilog中,通過在Verilog模塊中輸入其名稱(標識符)及端口來調(diào)用VHDL實體。模塊的參數(shù)應(yīng)該與實體的類型和端口的方向匹配,可以映射到Verilog模塊的VHDL端口為:in,out和inout;在某些模擬器中,不允許使用緩沖區(qū)。Verilog模塊只能使整個VHDL實體可見。
舉個例子:下圖是一個Verilog模塊調(diào)用了VHDL模塊(高亮處)
下圖是一個VHDL模塊
Simulator(模擬器,注:這個是英文原版使用的詞語,我的理解就是一些EDA)首先在Verilog模塊中查找,以查看是否有任何名為VHD_enty的Verilog模塊。如果找不到,模擬器將在VHDL實體中查找。當模擬器找到名稱為VHD_enty的實體時,它將該實體綁定到Verilog模塊。在代碼中,輸入a被傳遞到輸入端口x;輸入b傳遞給輸入y。VHDL實體計算輸出O1和O2;這兩個輸出分別傳遞到Verilog輸出c和d。調(diào)用VHDL模塊與調(diào)用功能或任務(wù)非常相似。
例子舉完了,下面驗證一下
驗證:在Verilog中調(diào)用VHDL模塊實體(VHDL調(diào)用Verilog考慮到比較簡單,大家用的更多是Verilog,就不舉例子了)
驗證內(nèi)容:使用Verilog調(diào)用兩個VHDL寫的D觸發(fā)器模塊實現(xiàn)打兩拍。
這個代碼是一個用VHDL語言寫的D觸發(fā)器模塊,在FIFO中也寫過。
這個代碼是Verilog寫的,在內(nèi)部調(diào)用兩個由VHDL寫的D觸發(fā)器,實現(xiàn)兩級D觸發(fā)器。
上圖是VHDL寫的D觸發(fā)器綜合出的原理圖,注意對應(yīng)的端口。
上圖是Verilog代碼綜合出來的原理圖,從代碼上看,定義了vclk、x、y三個端口,連接VHDL寫的兩個D觸發(fā)器,基本的調(diào)用過程就是這樣。
總結(jié):兩者的互相調(diào)用過程都不復(fù)雜,舉個基礎(chǔ)的例子只是為了大家熟悉這個過程。在實際中難免會遇到有互相調(diào)用的地方。
編輯:jq
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603421 -
vhdl
+關(guān)注
關(guān)注
30文章
817瀏覽量
128139 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61158
原文標題:關(guān)于VHDL和Verilog模塊互相調(diào)用的問題
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論