URL
https://opencores.org/ocsvn/opencpu32/opencpu32/trunk
[/] [opencpu32/] [trunk/] [hdl/] [opencpu32/] [TriStateBuffer.vhd] - Blame information for rev 13
Details |
Compare with Previous |
View Log
| Line No. |
Rev |
Author |
Line |
| 1 |
13 |
leonardoar |
--! @file
|
| 2 |
|
|
--! @brief Tri-State buffer http://en.wikipedia.org/wiki/Three-state_logic
|
| 3 |
|
|
|
| 4 |
|
|
--! Use standard library and import the packages (std_logic_1164,std_logic_unsigned,std_logic_arith)
|
| 5 |
|
|
library IEEE;
|
| 6 |
|
|
use IEEE.STD_LOGIC_1164.ALL;
|
| 7 |
|
|
|
| 8 |
|
|
--! Use CPU Definitions package
|
| 9 |
|
|
use work.pkgOpenCPU32.all;
|
| 10 |
|
|
|
| 11 |
|
|
--! In digital electronics three-state, tri-state, or 3-state logic allows an output port to assume a \n
|
| 12 |
|
|
--! high impedance state in addition to the 0 and 1 logic levels, effectively removing the output from the circuit.
|
| 13 |
|
|
|
| 14 |
|
|
--! In digital electronics three-state, tri-state, or 3-state logic allows an output port to assume a \n
|
| 15 |
|
|
--! high impedance state in addition to the 0 and 1 logic levels, effectively removing the output from the circuit.
|
| 16 |
|
|
--! This allows multiple circuits to share the same output line or lines (such as a bus).
|
| 17 |
|
|
entity TriStateBuffer is
|
| 18 |
|
|
generic (n : integer := nBits - 1); --! Generic value (Used to easily change the size of the Alu on the package)
|
| 19 |
|
|
Port ( A : in STD_LOGIC_VECTOR (n downto 0); --! Buffer Input
|
| 20 |
|
|
sel : in typeEnDis; --! Enable or Disable the output
|
| 21 |
|
|
S : out STD_LOGIC_VECTOR (n downto 0)); --! TriState buffer output
|
| 22 |
|
|
end TriStateBuffer;
|
| 23 |
|
|
|
| 24 |
|
|
--! @brief Architure definition of the TriStateBuffer
|
| 25 |
|
|
--! @details On this case we're going to use VHDL combinational description (Simple combination circuit)
|
| 26 |
|
|
architecture Behavioral of TriStateBuffer is
|
| 27 |
|
|
|
| 28 |
|
|
begin
|
| 29 |
|
|
with sel select
|
| 30 |
|
|
S <= A when enable,
|
| 31 |
|
|
(others => 'Z') when disable;
|
| 32 |
|
|
|
| 33 |
|
|
end Behavioral;
|
| 34 |
|
|
|
© copyright 1999-2026
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.