Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1.  
  2.  
  3.  
  4. SIGNAL ref_regX : std_logic_vector (7 downto 0);
  5. SIGNAL ref_regY : std_logic_vector (7 downto 0);
  6.  
  7. BEGIN
  8.  
  9. -- uložim si výchozí hodnoty registru
  10.  
  11. ref_regX <= regX;
  12. ref_regY <= regY;
  13.  
  14. -- nastavim signál rotary na výchozí stav
  15.  
  16. rotary(0) <='0';
  17. rotary(1) <='0';
  18. rotary(2) <='0';
  19.  
  20. -- otočim kolečkem doprava ( první náběžná hrna je A - rotary(0) a po ní B rotary(1) )
  21.  
  22. wait for 100 ms;
  23.  
  24. rotary(0) <= '1';
  25. wait for 50 ms;
  26. rotary(1) <= '1';
  27. wait for 150ms;
  28.  
  29. -- porovnám za se změnila hodnota v regX ( jinak přepnu pomocí rotary(2) na regX )
  30.  
  31.  
  32. if ref_regX = regX then
  33.  
  34. --registr se nezměnil
  35.  
  36. assert false
  37. report " regX se po pooteceni nezmenil, vychozi registr je regY, pokusime se prepnout na regX" severity note;
  38.  
  39.  
  40. wait for 100 ms;
  41.  
  42. rotary(2) <='1';
  43. wait for 100 ms;
  44.  
  45. rotary(2) <='0';
  46. wait for 100 ms;
  47.  
  48.  
  49. ref_regX <= regX; -- nastavím znovu referenční hodnoty pro porovnání
  50. ref_regY <= regY;
  51.  
  52. rotary(0) <= '0';
  53. wait for 50 ms;
  54.  
  55. rotary(1) <= '0';
  56. wait for 150ms;
  57.  
  58. else
  59. assert false
  60. report "regX se po pooteceni zmenil" severity note;
  61.  
  62. ref_regX <= regX; -- nastavím znovu referenční hodnoty pro porovnání
  63. ref_regY <= regY;
  64.  
  65. wait for 100 ms;
  66.  
  67. rotary(0) <= '0';
  68. wait for 50 ms;
  69.  
  70. rotary(1) <= '0';
  71. wait for 150ms;
  72.  
  73. end if;
  74.  
  75. assert ref_regX != regX
  76. report "chyba - nepovedlo se ověřit přepínání X -> Y" severity error;
  77.  
  78.  
  79. if regX > ref_regX then
  80.  
  81. assert false
  82. report "zaregistrovano otaceni kladnym smerem" severity note;
  83.  
  84. -- změna 'r(0),r(1)' je XY+
  85. -- změna 'r(1),r(0)' je XY-
  86. -- jeste je potreba zjistit, zda jsou 2 nabezny/sestupny hrany posun o 1 nebo o 2
  87.  
  88. if regX = ref_regX + 1 then -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!! převod std_logic + 1
  89. assert false
  90. report "dve nabezne hrany zmenily registr o 1 jednotku" severity note;
  91. --
  92. --
  93. -- tady už jen 4x stejné sample signals se zákmity a průběžnou kontrolou a porovnáním s registry X a Y
  94. --
  95. --
  96. --
  97. --
  98. --
  99. --
  100. --
  101. --
  102.  
  103.  
  104. elseif regX = ref_regX + 2 then -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!! převod std_logic + 2
  105. assert false
  106. report "dve nabezne hrany zmenily registr o 2 jednotky" severity note;
  107. --
  108. --
  109. -- tady už jen 4x stejné sample signals se zákmity a průběžnou kontrolou a porovnáním s registry X a Y
  110. --
  111. --
  112. --
  113. --
  114. --
  115. --
  116. --
  117. --
  118. --
  119.  
  120.  
  121. else
  122. report "2 náběžné hrany posunuly registr o příliš mnoho hodnot" severity error;
  123. end if;
  124.  
  125. else
  126. assert false
  127. report "zaregistrovano otaceni zapornym smerem" severity note;
  128.  
  129.  
  130. if regX = ref_regX - 1 then -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!! převod std_logic - 1
  131. assert false
  132. report "dve nabezne hrany zmenily registr o 1 jednotku" severity note;
  133. --
  134. --
  135. -- tady už jen 4x stejné sample signals se zákmity a průběžnou kontrolou a porovnáním s registry X a Y
  136. --
  137. --
  138. --
  139. --
  140. --
  141. --
  142. --
  143. --
  144. --
  145.  
  146. elseif regX = ref_regX - 2 then -- !!!!!!!!!!!!!!!!!!!!!!!!!!!!! převod std_logic - 2
  147. assert false
  148. report "dve nabezne hrany zmenily registr o 2 jednotky" severity note;
  149.  
  150. --
  151. --
  152. --
  153. -- tady už jen 4x stejné sample signals se zákmity a průběžnou kontrolou a porovnáním s registry X a Y
  154. --
  155. --
  156. --
  157. --
  158. --
  159. --
  160. --
  161.  
  162.  
  163. else
  164. report "2 náběžné hrany posunuly registr o příliš mnoho hodnot" severity error;
  165. end if;
  166.  
  167. end if;
  168.  
  169. assert false
  170. report "konec testovani" severity note;
  171.  
  172. wait;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement