VHSIC [Very High Speed Integrated Circuits] Hardware Description
Language
IEEE-1076
This is just a quick reference of some short VHDL code fragments. Above
each code segment is a circuit which represents the fragment.
In most
cases the Process, and end of Process commands are not listed to keep the
text down.
VHDL code for a D Flip Flop
process (signal names)
begin
if (clock’event and clock = ‘1’) then
output <= data;
end if;
end process
if reset = ‘0’ then
output <= ‘0’;
elsif set = ‘0’ then
output <= ‘1’;
elsif (clock’event and clock = ‘1’) then
output <= data;
end if;
if (clock’event and clock = ‘0’) then
if (reset = ‘0’ and data = ‘0’) then
output <= ‘0’;
elsif (reset = ‘0’ and data = ‘1’) then
output <= ‘0’;
elsif (reset = ‘1’ and data = ‘0’) then
output <= ‘0’;
elsif (reset = ‘1’ and data = ‘1’) then
output <= ‘1’;
end if;
if (clock’event and clock = ‘1’) then
if (in1 = ‘0’ and in2 = ‘0’) then
output <= output;
elsif (in1 = ‘1’ and in2 = ‘0’) then
output <= ‘1’;
elsif (in1 = ‘0’ and in2 = ‘1’) then
output <= ‘0’;
elsif (in1 = ‘1’ and in2 = ‘1’) then
output <= not(output);
end if;
end if;
if sel = ‘0’ then
output <= data1;
elsif sel = ‘1’ then
output <= data2;
end if;
if clear = ‘0’ then
shift_reg <= “00000000”;
elsif (clock’event and clock = ‘1’) then
shift_reg(7 downto 1) <= (6 downto 0);
shift_reg(0) <= serial;
end if;
if load = ‘0’ then
shift_reg <= parallel;
elsif (clock’event and clock = ‘1’) then
serial <= shift_reg(7);
shift_reg(7 downto 1) <= (6 downto 0);
end if;
if load = ‘0’ then
output <= “1111”;
elsif (clock’event and clock = ‘1’) then
output <= data - ‘1’;
end if;
carry <= ‘0’ when output = “0000” else
‘1’;
load <= carry;
if c = ‘0’ then
if (a and b) = ‘1’ then
sum <= ‘0’;
carry <= ‘1’;
elsif (a or b) = ‘1’ then
sum <= ‘1’;
carry <= ‘0’
end if;
elsif c = ‘1’ then
if (a and b) = ‘1’ then
sum <= ‘1’;
carry <= ‘1’;
elsif (a or b) = ‘1’ then
sum <= ‘0’;
carry <= ‘1’;
end if;
end if;
if reset = ‘0’ then
state <= stateA;
output <= ‘0’;
elsif (clock’event and clock) = ‘1’ then
case state is
when stateA
output <= ‘0’;
state <= stateB
when stateB
output <= ‘1’;
if input = ‘1’ then
state <= stateB;
else
state <=stateC;
end if;
when stateC
output <= ‘0’
state <= stateA;
end case;
IEEE-1076: Standard VHDL Language Reference Manual IEEE Computer
Society Document
IEEE 1076.1: VHDL Analog and Mixed-Signal Extensions IEEE Computer
Society Document
IEEE 1076.2: Standard VHDL Mathematical Packages IEEE Computer
Society Document
IEEE 1076.3: Standard VHDL Synthesis Packages IEEE Computer
Society Document
IEEE 1076.4: Standard for VITAL ASIC (Application Specific
Integrated Circuit) Modeling Specification IEEE Computer Society
Document
IEEE 1076.6: Standard for VHDL Register Transfer Level (RTL)
Synthesis IEEE Computer Society Document
Links on this site:
VHDL Sites: Listed here
Back to the Logic Design Page, Digital Logic Pitfalls
VHDL Design Tools: CAD - CAE Products
VHDL Simulation Tools: VHDL Simulation Software Products
FPGA Manufactures: Hardware - Components -
Semiconductor- Digital - Programmable Logic
|
|||||||
| Home | |||||||
|
|
|||||||
|
|
|
|
|
|
|
|
| Distributors | Components | Equipment | Software | Standards | Buses | Design | Reference |