VHDL: บัสสองทิศทาง

author-image

โดย

ตัวอย่างนี้ใช้บัส 8 บิตที่ป้อนและรับผลตอบรับจากพินสองทิศทาง

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ตัวอย่างนี้ในโครงการของคุณ ให้ไปที่:

bidir.vhd (การใช้งานบัส Tri-state)

LIBRARY ieee;
ใช้ ieee.std_logic_1164.ALL;

ENTITY Bidir IS
    PORT (
        สองทิศทาง :   INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);
        oe, clk : IN STD_LOGIC;
        inp     : IN STD_LOGIC_VECTOR (7 DOWNTO 0);
        ขาออก    : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
สองมิติ END;

สถาปัตยกรรมที่เพิ่มขึ้นสูงสุดของ Bidir IS
SIGNAL a : STD_LOGIC_VECTOR  (7 DOWNTO 0);  -- DFF ที่จัดเก็บ 
                                             -- มูลค่าจากอินพุต
SIGNAL  b : STD_LOGIC_VECTOR  (7 DOWNTO 0);  -- DFF ที่จัดเก็บ 
BEGIN                                        -- มูลค่า
    ผลป้อนกลับ PROCESS(clk)
    BEGIN
    IF clk = '1' AND clk'EVENT แล้ว  -- สร้าง flipflops
        a <= inp;                    
        ขาออก <= b;                  
        สิ้นสุดถ้า;
    กระบวนการสิ้นสุด;    
    PROCESS (oe, bidir)          -- การแสดงพฤติกรรม 
        BEGIN                    -- ของ tri-states
        IF( oe = '0') แล้ว
            bidir <= "ZZZZZZZZ"
            b <= bidir;
            bidir <อื่น= a; 
            b <= Bidir;
        สิ้นสุดถ้า;
    กระบวนการสิ้นสุด;
สิ้นสุดการขยายสูงสุด;

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้