Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SIGNAL ref_regX : std_logic_vector (7 downto 0);
- SIGNAL ref_regY : std_logic_vector (7 downto 0);
- BEGIN
- -- uložim si výchozí hodnoty registru
- ref_regX <= regX;
- ref_regY <= regY;
- -- nastavim signál rotary na výchozí stav
- rotary(0) <='0';
- rotary(1) <='0';
- rotary(2) <='0';
- -- otočim kolečkem doprava ( první náběžná hrna je A - rotary(0) a po ní B rotary(1) )
- wait for 100 ms;
- rotary(0) <= '1';
- wait for 50 ms;
- rotary(1) <= '1';
- wait for 150ms;
- -- porovnám za se změnila hodnota v regX ( jinak přepnu pomocí rotary(2) na regX )
- if ref_regX = regX then
- --registr se nezměnil
- assert false
- report " regX se po pooteceni nezmenil, vychozi registr je regY, pokusime se prepnout na regX" severity note;
- wait for 100 ms;
- rotary(2) <='1';
- wait for 100 ms;
- rotary(2) <='0';
- wait for 100 ms;
- ref_regX <= regX; -- nastavím znovu referenční hodnoty pro porovnání
- ref_regY <= regY;
- rotary(0) <= '0';
- wait for 50 ms;
- rotary(1) <= '0';
- wait for 150ms;
- else
- assert false
- report "regX se po pooteceni zmenil" severity note;
- ref_regX <= regX; -- nastavím znovu referenční hodnoty pro porovnání
- ref_regY <= regY;
- wait for 100 ms;
- rotary(0) <= '0';
- wait for 50 ms;
- rotary(1) <= '0';
- wait for 150ms;
- end if;
- assert ref_regX != regX
- report "chyba - nepovedlo se ověřit přepínání X -> Y" severity error;
- if regX > ref_regX then
- assert false
- report "zaregistrovano otaceni kladnym smerem" severity note;
- -- změna 'r(0),r(1)' je XY+
- -- změna 'r(1),r(0)' je XY-
- -- jeste je potreba zjistit, zda jsou 2 nabezny/sestupny hrany posun o 1 nebo o 2
- if regX = ref_regX + 1 then -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!! převod std_logic + 1
- assert false
- report "dve nabezne hrany zmenily registr o 1 jednotku" severity note;
- --
- --
- -- tady už jen 4x stejné sample signals se zákmity a průběžnou kontrolou a porovnáním s registry X a Y
- --
- --
- --
- --
- --
- --
- --
- --
- elseif regX = ref_regX + 2 then -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!! převod std_logic + 2
- assert false
- report "dve nabezne hrany zmenily registr o 2 jednotky" severity note;
- --
- --
- -- tady už jen 4x stejné sample signals se zákmity a průběžnou kontrolou a porovnáním s registry X a Y
- --
- --
- --
- --
- --
- --
- --
- --
- --
- else
- report "2 náběžné hrany posunuly registr o příliš mnoho hodnot" severity error;
- end if;
- else
- assert false
- report "zaregistrovano otaceni zapornym smerem" severity note;
- if regX = ref_regX - 1 then -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!! převod std_logic - 1
- assert false
- report "dve nabezne hrany zmenily registr o 1 jednotku" severity note;
- --
- --
- -- tady už jen 4x stejné sample signals se zákmity a průběžnou kontrolou a porovnáním s registry X a Y
- --
- --
- --
- --
- --
- --
- --
- --
- --
- elseif regX = ref_regX - 2 then -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!! převod std_logic - 2
- assert false
- report "dve nabezne hrany zmenily registr o 2 jednotky" severity note;
- --
- --
- --
- -- tady už jen 4x stejné sample signals se zákmity a průběžnou kontrolou a porovnáním s registry X a Y
- --
- --
- --
- --
- --
- --
- --
- else
- report "2 náběžné hrany posunuly registr o příliš mnoho hodnot" severity error;
- end if;
- end if;
- assert false
- report "konec testovani" severity note;
- wait;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement