diff options
author | saurabhb17 | 2019-12-30 12:37:57 +0530 |
---|---|---|
committer | GitHub | 2019-12-30 12:37:57 +0530 |
commit | 9faa3ee18b0fe7ec50399b06280a5247658c3e9c (patch) | |
tree | 0ff4c4791a65364e3b93c91f56342569c7f7a7c9 /Example/combinational_logic/counter/up_counter_slv.vhdl | |
parent | 04d9c666b4bb19936dfa469f536fb38107e631eb (diff) | |
parent | fc1fb5abffa152808c621be38c8fbbe8de769b19 (diff) | |
download | nghdl-9faa3ee18b0fe7ec50399b06280a5247658c3e9c.tar.gz nghdl-9faa3ee18b0fe7ec50399b06280a5247658c3e9c.tar.bz2 nghdl-9faa3ee18b0fe7ec50399b06280a5247658c3e9c.zip |
Merge pull request #35 from saurabhb17/master
Changes for 1.1.3 version release
Diffstat (limited to 'Example/combinational_logic/counter/up_counter_slv.vhdl')
-rw-r--r-- | Example/combinational_logic/counter/up_counter_slv.vhdl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Example/combinational_logic/counter/up_counter_slv.vhdl b/Example/combinational_logic/counter/up_counter_slv.vhdl new file mode 100644 index 0000000..ec8a558 --- /dev/null +++ b/Example/combinational_logic/counter/up_counter_slv.vhdl @@ -0,0 +1,32 @@ +-- This logic is implemented in up_counter.vhdl example as well, but there tmp variable is declared as unsigned +--whereas here it is declared as std_logic_vector; which requires type conversion. +--slv stands for std_logic_vector +library ieee; + +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity up_counter_slv is +port(C : in std_logic; + CLR : in std_logic; + Q : out std_logic_vector(3 downto 0)); +end up_counter_slv; + +architecture bhv of up_counter_slv is + + signal tmp: std_logic_vector(3 downto 0); + begin + process (C, CLR) + begin + if (CLR='1') then + tmp <= "0000"; + + elsif (C'event and C='1') then + tmp <= std_logic_vector(to_unsigned(1+to_integer(unsigned(tmp)), tmp'length)); + + end if; + + end process; + Q <= tmp; + +end bhv; |