在verilog中調用VHDL模塊


習慣了自己發現一些小問題,既然發現了,就記下來吧,不然又要忘了,這是多么悲痛的領悟。

   今天在用vivado進行塊設計時所生成的頂層模塊居然是用VHDL語言描述的,這時郁悶了,表示只看過VHDL語法但沒寫過。暫且不說VHDL模塊的內容,我應該如何在測試平台中例化它並對它進行測試呢?稍微查了一下,其實很簡單,只要把VHDL中的組件名、端口統統拿出來,按照verilog模塊的例化形式就可以了。下面舉個簡單的例子來說明如何在verilog模塊中例化VHDL模塊。

   2選1多路復用器的VHDL描述:

entity mux2_1 is
    port(
        dina : in bit;
        dinb : in bit;
        sel  : in bit;
        dout : out bit
    );
end mux2_1;

architecture Behavioral of mux2_1 is
begin
    dout <= dina when sel = '0' else dinb;
end Behavioral;

   verilog中2選1多路復用器的例化:

module mux2_1_top
(
    input       dina,
    input       dinb,
    input       sel,
    output      dout
);
//------------------
//  call mux2_1 module
mux2_1 u_mux2_1(
    .dina   (   dina    ),
    .dinb   (   dinb    ),
    .sel    (   sel     ),
    .dout   (   dout    )
);

endmodule

轉載自:http://blog.chinaaet.com/crazybird/p/5100000150


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM