]> jspc29.x-matter.uni-frankfurt.de Git - trbnet.git/commitdiff
*** empty log message ***
authorhadeshyp <hadeshyp>
Fri, 12 Dec 2008 17:14:12 +0000 (17:14 +0000)
committerhadeshyp <hadeshyp>
Fri, 12 Dec 2008 17:14:12 +0000 (17:14 +0000)
testbench/trb_net16_dummy_apl.vhd
trb_net16_regIO.vhd

index 8d7dfec76b9bd0aba40206e62d9ee466ee818225..f65e58003b492855a15abcfa8bc71a9206e6d725 100644 (file)
@@ -65,12 +65,12 @@ begin
 --   address <= x"0008";
 --   reghigh <= x"DEAD";
 --   reglow  <= x"AFFE";
-  reg_F0 <= x"1010"; --x"0001";
+  reg_F0 <= x"8023"; --x"0001";
 
   reg_F1 <= x"8000";
   reg_F2 <= x"0000";--xor_all(APL_DATA_IN) & "000000000000011";
   reg_F3 <= x"0000";
-  APL_DTYPE_OUT <= x"B";
+  APL_DTYPE_OUT <= x"9";
   APL_TARGET_ADDRESS_OUT <= TARGET_ADDRESS;
 
   process(current_state)
index 8aee02ced32e8f220df859a2f67fcfd8db9e3458..186af9f2f0518a5e66ba0cf7c0a1f3116630ddd3 100644 (file)
@@ -147,7 +147,8 @@ architecture trb_net16_regIO_arch of trb_net16_regIO is
   end component;
 
   type fsm_state_t is (IDLE, HEADER_RECV, REG_READ, REG_WRITE, ONE_READ, ONE_WRITE, SEND_REPLY_SHORT_TRANSFER, MEM_START_WRITE,
-                       MEM_READ, MEM_WRITE, DAT_START_READ, DAT_READ, SEND_REPLY_DATA_finish, ADDRESS_ACK, ADDRESS_RECV,MEM_START_READ);
+                       MEM_READ, MEM_WRITE, DAT_START_READ, DAT_READ, SEND_REPLY_DATA_finish, ADDRESS_ACK, ADDRESS_RECV,
+                       MEM_START_READ, DAT_START_READ_AFTER_WRITE);
   signal current_state, next_state             : fsm_state_t;
 --  signal HDR_F1, HDR_F2, HDR_F3, HDR_F0        : std_logic_vector(c_DATA_WIDTH-1 downto 0);
 --  signal next_HDR_F1, next_HDR_F2, next_HDR_F3, next_HDR_F0 : std_logic_vector(c_DATA_WIDTH-1 downto 0);
@@ -341,7 +342,7 @@ begin
             if or_all(API_DATA_IN(c_REGIO_ADDRESS_WIDTH-1 downto 8)) = '1' then  --data port address
               if USE_DAT_PORT = c_YES then
                 next_DAT_READ_ENABLE_OUT <= '1';
-                next_state <= DAT_READ;
+                next_state <= DAT_START_READ;
               else
                 next_state <= SEND_REPLY_SHORT_TRANSFER;
                 next_dont_understand <= '1';
@@ -394,7 +395,7 @@ begin
                   next_state   <= REG_READ;
                 else
                   next_DAT_WRITE_ENABLE_OUT <= '1';
-                  next_state   <= DAT_START_READ;
+                  next_state   <= DAT_START_READ_AFTER_WRITE;
                 end if;
               when others => null;
             end case;
@@ -525,6 +526,10 @@ begin
             end if;
           end if;
 
+        when DAT_START_READ_AFTER_WRITE =>
+          next_state <= DAT_START_READ;
+          next_DAT_READ_ENABLE_OUT <= '1';
+
         when DAT_START_READ =>
           if DAT_DATAREADY_IN = '1' then
             next_state <= DAT_READ;
@@ -533,6 +538,7 @@ begin
           end if;
 
         when DAT_READ =>
+          next_API_SEND_OUT <= '1';
           next_API_DATAREADY_OUT <= '1';
           case next_packet_counter is
             when c_F0 => next_API_DATA_OUT <= address;