-- EASE/HDL begin -------------------------------------------------------- -- Architecture 'a0' of 'H_bridge_driver_core'. -- Skeleton generated by Ease at Mon Mar 18 09:48:16 2002. --------------------------------------------------------------------------- -- Copy of the interface declaration of entity 'H_bridge_driver_core' : -- -- port( -- eng_ctrl : in STD_LOGIC_VECTOR(6 downto 0) ; -- pulse : out STD_LOGIC_VECTOR(0 downto 0) ; -- counter : in STD_LOGIC_VECTOR(15 downto 0) ; -- next_counter : out STD_LOGIC_VECTOR(15 downto 0) ; -- reset : in STD_LOGIC_VECTOR(0 downto 0) ; -- rev_pulse : out STD_LOGIC_VECTOR(0 downto 0) ) ; -- EASE/HDL end ---------------------------------------------------------- architecture a0 of H_bridge_driver_core is begin process(eng_ctrl,reset,counter) variable int_eng_ctrl : integer; begin -- Kretsen drivs med HC11:s klocka 10MHz ? -- Switchfrekvensen är 1kHz vilket ger 8^7/1^3 = 8000 steg -- Vi har 7 bitar dvs 128 steg 64 framåt och 64 bakåt -- Räknare skall räkna till 8192 (jämn exponent) och därefter nollställas next_counter <= counter + 1; int_eng_ctrl := CONV_INTEGER(eng_ctrl(5 downto 0)); pulse <= "0"; rev_pulse <= "0"; if eng_ctrl(6 downto 6) = "0" then if counter < int_eng_ctrl*128 then pulse <= "1"; rev_pulse <= "0"; else pulse <= "0"; rev_pulse <= "0"; end if; else if counter < int_eng_ctrl*128 then pulse <= "0"; rev_pulse <= "1"; else pulse <= "0"; rev_pulse <= "0"; end if; end if; if counter = x"1999" then next_counter <= x"0000"; end if; if reset = "1" then next_counter <= x"0000"; end if; end process; end a0 ; -- of H_bridge_driver_core