From 492d358a042e43ed2dcec3302ec2b5253214c81e Mon Sep 17 00:00:00 2001 From: T-moe Date: Sun, 19 Jun 2016 20:30:02 +0200 Subject: [PATCH] Added controller testbench and screenshots. --- controller_tb.vhd | 109 ++++++++++++++++++++++++++------- screenshots/controller_tb1.png | Bin 0 -> 41768 bytes screenshots/controller_tb2.png | Bin 0 -> 43539 bytes screenshots/controller_tb3.png | Bin 0 -> 42035 bytes simulate_controller.wcfg | 87 ++++++++++++++++++++++++++ yasg.xise | 28 ++++----- 6 files changed, 189 insertions(+), 35 deletions(-) create mode 100644 screenshots/controller_tb1.png create mode 100644 screenshots/controller_tb2.png create mode 100644 screenshots/controller_tb3.png create mode 100644 simulate_controller.wcfg diff --git a/controller_tb.vhd b/controller_tb.vhd index 676e370..c5c076c 100644 --- a/controller_tb.vhd +++ b/controller_tb.vhd @@ -3,13 +3,13 @@ -- Project Page: https://github.com/id101010/vhdl-yasg/ -- Authors: Aaron Schmocker & Timo Lang -- License: GPL v3 --- Create Date: 20:08:51 06/06/2016 +-- Create Date: 18:02:40 06/19/2016 -------------------------------------------------------------------------------- LIBRARY ieee; USE ieee.std_logic_1164.ALL; - USE ieee.numeric_std.ALL; + ENTITY controller_tb IS END controller_tb; @@ -21,13 +21,14 @@ ARCHITECTURE behavior OF controller_tb IS PORT( clk : IN std_logic; rst : IN std_logic; - enc_updown : IN std_logic; + enc_right : IN std_logic; enc_ce : IN std_logic; enc_btn : IN std_logic; - enc_err : IN std_logic; + form : IN unsigned(1 downto 0); lcd_busy : IN std_logic; lcd_data : OUT unsigned(7 downto 0); lcd_newchar : OUT std_logic; + lcd_newpos : OUT std_logic; freq_out : OUT unsigned(16 downto 0) ); END COMPONENT; @@ -36,56 +37,122 @@ ARCHITECTURE behavior OF controller_tb IS --Inputs signal clk : std_logic := '0'; signal rst : std_logic := '0'; - signal enc_updown : std_logic := '0'; + signal enc_right : std_logic := '0'; signal enc_ce : std_logic := '0'; signal enc_btn : std_logic := '0'; - signal enc_err : std_logic := '0'; + signal form : unsigned(1 downto 0) := (others => '0'); signal lcd_busy : std_logic := '0'; - --Outputs + --Outputs signal lcd_data : unsigned(7 downto 0); signal lcd_newchar : std_logic; + signal lcd_newpos : std_logic; signal freq_out : unsigned(16 downto 0); -- Clock period definitions - constant clk_period : time := 10 ns; + constant clk_period : time := 20 ns; --50mhz BEGIN - -- Instantiate the Unit Under Test (UUT) + -- Instantiate the Unit Under Test (UUT) uut: controller PORT MAP ( clk => clk, rst => rst, - enc_updown => enc_updown, + enc_right => enc_right, enc_ce => enc_ce, enc_btn => enc_btn, - enc_err => enc_err, + form => form, lcd_busy => lcd_busy, lcd_data => lcd_data, lcd_newchar => lcd_newchar, + lcd_newpos => lcd_newpos, freq_out => freq_out ); -- Clock process definitions clk_process :process begin - clk <= '0'; - wait for clk_period/2; - clk <= '1'; - wait for clk_period/2; + clk <= '0'; + wait for clk_period/2; + clk <= '1'; + wait for clk_period/2; end process; -- Stimulus process stim_proc: process - begin + begin -- hold reset state for 100 ns. - wait for 100 ns; - - wait for clk_period*10; + rst <= '1'; + wait for 100 ns; + rst <= '0'; - rst<= '0'; - lcd_busy <= '0'; + lcd_busy<='1'; --simulate lcd busy + wait for 200 ns; + lcd_busy<='0'; + + wait for 1000 ns; + wait until lcd_newchar = '1'; + lcd_busy<='1'; --simulate lcd busy + wait for 150 ns; + lcd_busy<='0'; + + wait for 400 ns; + --init should be finished here + + --Test encoder turn right + enc_right <='1'; + enc_ce <= '1'; + wait for clk_period; + enc_ce <= '0'; + wait for 300 ns; + + -- Now the same but with lcd_busy + enc_ce <= '1'; + wait for clk_period; + enc_ce <= '0'; + wait until lcd_newpos = '1'; + lcd_busy<='1'; --simulate lcd busy + wait for 150 ns; + lcd_busy<='0'; + wait for 300 ns; + + --Test encoder turn left + enc_right <= '0'; + enc_ce <= '1'; + wait for clk_period; + enc_ce <= '0'; + wait until lcd_newpos = '1'; + lcd_busy<='1'; --simulate lcd busy + wait for 150 ns; + lcd_busy<='0'; + wait for 300 ns; + + --Test button press + enc_btn <= '1'; + wait for clk_period; + enc_btn <= '0'; + wait for 150 ns; + + --Test another turn left + enc_ce <= '1'; + wait for clk_period; + enc_ce <= '0'; + wait until lcd_newpos = '1'; + lcd_busy<='1'; --simulate lcd busy + wait for 150 ns; + lcd_busy<='0'; + wait for 300 ns; + + + + + + + + + + -- insert stimulus here diff --git a/screenshots/controller_tb1.png b/screenshots/controller_tb1.png new file mode 100644 index 0000000000000000000000000000000000000000..1e316fc1bbc7c7225390a1a8de065d2d37242cc0 GIT binary patch literal 41768 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 H^0@b3X=zog literal 0 HcmV?d00001 diff --git a/screenshots/controller_tb2.png b/screenshots/controller_tb2.png new file mode 100644 index 0000000000000000000000000000000000000000..61f15ef0eb554e745ea5a46d1fc33ee6f52726cc GIT binary patch literal 43539 zcmce-1ymesw=GH_2?-Dg?hpv>?iO5vy9aj&5Zpr`xVtqH+}$ArcXtcgxI+UC&Fjwo z_de&|bM8I=8*hwP$)H-QzgnNoHP>9LLX{Mx-XIYm!NI}3k&zZxfrCTvgM)jP_zE8S zNmt@JHuQwxEGnb+>eZ{|4aMJZaPQz`#6PIHFCDFV=&9{M5YJ9ieGq~_JV*ch78}cP zd_?8vP|ZhGgyaz$4W0S)U5w@(4Qpd_55FCif~5J1G##cyM)_tqTr8yF(SRzOwtuN z!XFwe2sp9cDz)4vn@XcSeA`=U&jgTOf08jLOoT|BQpJXZ;DwQhA&$o{ih2}UO}?iP zQG5mmr{-@0_^m%gjCz$fGn{A+ATyx_qj|OvhNh-V7^gX>p|*(!ARSy|Jk|tna~qyF zf1jG#-zmTHZ(X{tD2%9|nfp$nFPC~K^FdtbYLU_t$a;YufA2WdChp@C;=Q+is?wJB z4I@k@x3i`wIv29W00+0iNCbZFA55J)SvhrHT=&Rbvo^FrfpseP)EHkuxOb(%hVrgH zAw>G^$0vwCmwfh$Mo(ug9WCXmV*0#FM;2-&rI??JT4co zqdND}L5TM|a9p!XI`j;tO@T|q-N&qg7+x4qW$pady znkldN(991W^Lv>>KkDBO7xu3gWIg5N3uDsfYMDja;7ibo;B<;*c=C)6jKxG&qfKv@)~0j-&aJ$@u}+E z5DQb(PkUgxXriNss{LSzpHra7qZYMX1*+NpU~esY_wCmYzse03r6sDNH@OW{`~-cm zi!OXw`GlRXK2LF1Dgn;F{AMPo@>j4cd`otZ1_!rD4d;%_e#|2qk6E0U;Yp#=%GTm} zNWmjkqNQ^#WY#9nJ5SpMzzc@{qs%u`ZA+VS!7g38V;AI)6vg7OB%t*zpf@L{CuW}v ze=kj$w-7rsCO%&-E>w5na)2%^`l44p*EL`5Q^f~WpS?`%nLsJb9Yb4>TjX{Me_lRXZG4#0D%xXcp9)M#x2aZ`($6WM9<2Q3wy~^P zsiY3a2#y+J_;SbZ$?{t=r$+dgSIV4UpI^%PfSFmjt&G?wLtl^ zqJAvC3+hzcFOTr;+)+K)upI$ihNggtp2b34bp!w6=5}p3xFS|PAAC51;3y38w=bY? zUv+|?Lob9g1;GAJ5N(X`!_B<*ee)U)Zb0Z+b}S2uG4ylT%jzanZ!T-p7QB9)^k17e zH-dTjZ)$sQNkVgGi^PzjgZ!I$NB{A)6|Y~Fu6bWH(il?CJUSzj z8ESEA&Hjh1Hi)70v=ro4@PhFY$aPmEDsdO9Ga8HVvs{7VShc|hOgZzT9LI=ZuUnNz zZYSGy_plimjh_raCuz!;qD737lB~n~fO*S+q^#wScHTBzsPy|^u9#=ME!7*6e^ww6 zz*lggt@XM%=TU*#7(??k>EyunaxYGVB^1{*J#xMVn@`0^$*d#=n@&u4ofLJg!gJaN zH!;h1iV!cy{`}5Yp0f{#O$m99)f!!3pPlW$eA4+vbF@gpD3Iu< - +