1
0
mirror of https://github.com/Klagarge/Cursor.git synced 2025-07-03 07:11:11 +00:00

Initial commit

This commit is contained in:
Rémi Heredero
2021-11-24 10:50:51 +01:00
commit c7ba678fbb
961 changed files with 501515 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
ARCHITECTURE test OF positionCounter_tester IS
constant clockPeriod: time := 50 ns;
signal sClock: std_uLogic := '1';
constant pulsesPerTurn: integer := 200;
constant stepPeriodNb: positive := 16;
signal stepEn: std_uLogic := '0';
signal direction: std_uLogic;
signal stepCount: unsigned(10 downto 0) := (others => '0');
BEGIN
------------------------------------------------------------------------------
-- clock and reset
--
reset <= '1', '0' after clockPeriod/4;
sClock <= not sClock after clockPeriod/2;
clock <= sClock after clockPeriod/10;
------------------------------------------------------------------------------
-- encoder signals
--
direction <= '1', '0' after 2000*clockPeriod;
stepEn <= not stepEn after (stepPeriodNb/4)*clockPeriod;
count: process (stepEn)
begin
if direction = '1' then
if stepCount < pulsesPerTurn-1 then
stepCount <= stepCount + 1;
else
stepCount <= to_unsigned(0, stepCount'length);
end if;
else
if stepCount > 0 then
stepCount <= stepCount - 1;
else
stepCount <= to_unsigned(pulsesPerTurn-1, stepCount'length);
end if;
end if;
end process count;
encoderA <= stepCount(1);
encoderB <= stepCount(1) xor stepCount(0);
encoderI <= '1' when stepCount = pulsesPerTurn-1 else '0';
------------------------------------------------------------------------------
-- control signals
--
clear <= '0',
'1' after 100*clockPeriod,
'0' after 101*clockPeriod;
END test;