VHDL一個實體對應多個結構體


首先,VHDL不是軟件程序,不存在順序執行的問題。如果你用多個結構體來描述不同的實現方案的話,那么,如果不特別聲明的話,則VHDL會對最后描述的那個結構體進行綜合。如果你想要對其他結構體進行綜合的話,則要寫一個配置聲明。

配置是VHDL五大模塊(實體、結構體、設計庫、程序包、配置)之一,關於配置的詳細情況,請參考有關VHDL的書籍。

 

4選1多路選擇器
ENTITY mux4 IS
PORT(in0,in1,in2,in3:IN Bit;
sel:IN Bit_Vector(0 TO 1);
q:OUT Bit);
END mux4;

ARCHITECTURE behav1 OF mux4 IS
BEGIN
mux4_p1:PROCESS(in0,in1,in2,in3,sel)
BEGIN
IF sel = ″00″ THEN q <= in0;
ELSIF sel = ″01″ THEN q <= in1;
ELSIF sel = ″10″ THEN q <= in2;
ELSE q <= in3;
END IF;
END PROCESS mux4_p1;
END behav1;

ARCHITECTURE behav2 OF mux4 IS
BEGIN
q <= in0 WHEN sel = ″00″ ELSE
in1 WHEN sel = ″01″ ELSE
in2 WHEN sel = ″10″ ELSE
in3;                       -- 這個條件信號賦值語句與進程mux4_p1等價
END behav2;

ARCHITECTURE behav3 OF mux4 IS
BEGIN
mux4_p2:PROCESS(in0,in1,in2,in3,sel)
BEGIN
CASE sel IS
WHEN ″00″ => q <= in0;
WHEN″01″ => q <= in1;
WHEN ″10″ => q <= in2;
WHEN OTHERS => q <= in3;
END CASE;
END PROCESS mux4_p2;
END behav3;

ARCHITECTURE behav4 OF mux4 IS
BEGIN
WITH sel SELECT
q <= in0 WHEN ″00″,
in1 WHEN ″01″,
in2 WHEN ″10″,
in3 WHEN OTHERS;  -- 這個選擇信號賦值語句與進程mux4_p2等價
END behav4;


免責聲明!

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



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