This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/share/CodeBlocks/lexers/lexer_vhdl.sample

43 lines
972 B
Plaintext

--
-- Sample preview code
--
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity shiftregister is
generic
(
left : boolean := false -- so shift right
)
port
(
clk : in std_logic;
rst : in std_logic;
en : in std_logic;
d : in std_logic
q : out std_logic_vector
);
end shiftregister;
architecture behavioral of shiftregister is
constant crcpoly : std_logic_vector(7 downto 0) := x"8D";
type utxstates is (idle, data, parity, stop);
signal utxstate : utxstates;
begin
shift: process ( rst, clk ) begin
if rst = '1' then
q <= (others => '0');
elsif clk'event and clk = '1' then
if left then
q <= q(q'left - 1 downto q'right) & d;
else
q <= d & q(q'left downto q'right + 1);
end if;
end if;
end process;
end behavioral;