diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-04-28 14:39:00 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-06-10 08:52:36 +0000 |
commit | 693e64ef7421374338ddb1dc12b9573feec75972 (patch) | |
tree | 2526ac075d248699c35d63e04499890ee4381f5f /nixpkgs/pkgs/development/compilers/ghdl/simple.vhd | |
parent | 7014df2256694d97093d6f2bb1db340d346dea88 (diff) | |
parent | 8e4fe32876ca15e3d5eb3ecd3ca0b224417f5f17 (diff) | |
download | nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.gz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.bz2 nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.lz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.xz nixlib-693e64ef7421374338ddb1dc12b9573feec75972.tar.zst nixlib-693e64ef7421374338ddb1dc12b9573feec75972.zip |
Merge commit '8e4fe32876ca15e3d5eb3ecd3ca0b224417f5f17'
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/ghdl/simple.vhd')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/ghdl/simple.vhd | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/compilers/ghdl/simple.vhd b/nixpkgs/pkgs/development/compilers/ghdl/simple.vhd new file mode 100644 index 000000000000..f10cf73d067c --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/ghdl/simple.vhd @@ -0,0 +1,45 @@ +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.NUMERIC_STD.ALL; +use IEEE.STD_LOGIC_MISC.or_reduce; + +entity simple is + +port ( + CLK, RESET : in std_ulogic; + DATA_OUT : out std_ulogic_vector(7 downto 0); + DONE_OUT : out std_ulogic +); +end simple; + +architecture beh of simple is + +signal data : std_ulogic_vector(7 downto 0); +signal done: std_ulogic; + +begin + +proc_ctr : process(CLK) +begin +if (CLK = '1' and CLK'event) then + if (RESET = '1') then + data <= "01011111"; + done <= '0'; + else + case data is + when "00100000" => data <= "01001110"; + when "01001110" => data <= "01101001"; + when "01101001" => data <= "01111000"; + when "01111000" => data <= "01001111"; + when "01001111" => data <= "01010011"; + when others => data <= "00100000"; + end case; + done <= not or_reduce(data xor "01010011"); + end if; +end if; +end process; + +DATA_OUT <= data; +DONE_OUT <= done; + +end beh; |