Add more clean resets.
authorMalte S. Stretz <mss@apache.org>
Tue, 30 Jun 2009 21:49:21 +0000 (23:49 +0200)
committerMalte S. Stretz <mss@apache.org>
Tue, 30 Jun 2009 21:49:21 +0000 (23:49 +0200)
fhw_sd/sd_flow_e.vhd
fhw_sd/sd_parser_e.vhd

index f4766f3..e49a7ef 100644 (file)
@@ -88,9 +88,12 @@ begin
     end if;
   end process;
   
-  output : process(clock)
+  output : process(clock, reset)
   begin
-    if rising_edge(clock) then
+    if reset = '1' then
+      command  <= (others => '0');
+      argument <= (others => '0');
+    elsif rising_edge(clock) then
       prev_state_s <= curr_state_s;
       case curr_state_s is
         when rset_state_c =>
index 5cc7e80..be4a4bd 100644 (file)
@@ -97,9 +97,11 @@ begin
         else not spi_rxd(0) when command = cmd_do_seek_c
         else '0';
   
-  status : process(clock)
+  status : process(clock, reset)
   begin
-    if rising_edge(clock) then
+    if reset = '1' then
+      done_s <= '0';
+    elsif rising_edge(clock) then
       case state_s is
         when idle_state_c => done_s <= '0';
         when shft_state_c => done_s <= done_s or cnt_done_s;
@@ -109,9 +111,11 @@ begin
     end if;
   end process;
   
-  framer : process(clock)
+  framer : process(clock, reset)
   begin
-    if rising_edge(clock) then
+    if reset = '1' then
+      frame_s <= (others => '0');
+    elsif rising_edge(clock) then
       case state_s is
         when load_state_c => frame_s <= create_frame(command, argument);
         when loop_state_c => frame_s <= shift_frame(frame_s);