12345678910111213141516171819202122232425262728293031323334 |
- library IEEE;
- use IEEE.STD_LOGIC_1164.ALL;
- use IEEE.std_logic_arith.ALL;
- use IEEE.STD_LOGIC_UNSIGNED.ALL;
- use work.myPackage.ALL;
- entity checksum is
- generic(
- busWidth : integer:=32);
- Port ( clk : in STD_LOGIC;
- reset : in STD_LOGIC;
- enable : in STD_LOGIC;
- dataIn : in std_logic_vector(busWidth-1 downto 0);
- output : out std_logic_vector(busWidth-1 downto 0));
- end checksum;
- architecture Behavioral of checksum is
- signal sum : unsigned(busWidth-1 downto 0);
- begin
- main : process(clk, reset)
-
- begin
- if(reset = '0') then
- sum <= (others => '0');
- elsif(rising_edge(clk)) then
- if(enable = '1') then
- sum <= sum + unsigned(dataIn);
- end if;
- end if;
- end process;
- output <= std_logic_vector(sum);
- end Behavioral;
|