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

index 5577789f85b60ef9aabf2ff4ec3d34eadde30050..8d8959304fb2e433efa7e2856040f76f39a27ea6 100644 (file)
@@ -62,9 +62,12 @@ architecture trb_net16_dummy_apl_arch of trb_net16_dummy_apl is
   signal address, reghigh, reglow : std_logic_vector(15 downto 0);
 begin
 
-  address <= x"0008";
-  reghigh <= x"DEAD";
-  reglow  <= x"AFFE";
+--   address <= x"0008";
+--   reghigh <= x"DEAD";
+--   reglow  <= x"AFFE";
+  address <= x"0003";
+  reghigh <= x"000B";
+  reglow  <= x"000D";
 
 
 
@@ -97,9 +100,10 @@ begin
 -- IDLE
 -------------------------------------------------------------------------
       if current_state = IDLE then
-        if APL_FIFO_FULL_IN = '1' or reg_counter = PREFILL_LENGTH then
-          next_state <=  RUNNING;
-          next_APL_SEND_OUT <= '0';
+        if reg_counter = TRANSFER_LENGTH then
+          next_state <= WAITING;
+        elsif APL_FIFO_FULL_IN = '1' then
+          next_state <=  IDLE;
         else
           next_APL_SEND_OUT <= buf_APL_SEND_OUT;
           next_state <=  WRITING;
@@ -142,6 +146,7 @@ begin
 -- WAITING
 -----------------------------------------------------------------------
       elsif current_state = WAITING then
+        next_APL_SEND_OUT <= '0';
         if APL_RUN_IN = '1' or buf_APL_SEND_OUT = '1' then
           next_state <=  WAITING;
         else
index 7ff21c6aacf9f0daf105cb94a37d8059c1bcc3f6..a138165b2534fc5d6f4b9e4dcee2875fbe627d0d 100644 (file)
@@ -88,6 +88,8 @@ architecture trb_net16_med_tlk_arch of trb_net16_med_tlk is
   signal reg_TXD   : std_logic_vector(15 downto 0);
   signal reg_TX_EN : std_logic;
 
+  signal TLK_CLK_neg : std_logic;
+signal CLK_Out, CLK_FB_Out, FB_CLK : std_logic;
 begin
 
 --   STAT(3 downto 0)   <= fifo_status_a;
@@ -143,6 +145,8 @@ begin
   STAT(5) <= fifo_empty_a;
   STAT(6) <= fifo_rd_en_m;
   STAT(7) <= fifo_empty_m;
+  STAT(8) <= fifo_full_a;
+  STAT(31 downto 16) <= reg_RXD;
   
   process(TLK_RX_CLK)
     begin
@@ -186,9 +190,34 @@ begin
 --Sender
 -------------
 
+U_DCM_Transmitter: DCM
+  generic map( 
+      CLKIN_PERIOD => 10.00, -- 30.30ns
+      STARTUP_WAIT => FALSE,
+      PHASE_SHIFT => 0,
+      DESKEW_ADJUST => "SOURCE_SYNCHRONOUS",
+      CLKOUT_PHASE_SHIFT => "FIXED"
+      )  
+  port map (
+      CLKIN =>    TLK_CLK,
+      CLKFB =>    FB_CLK,
+      DSSEN =>    '0',
+      PSINCDEC => '0',
+      PSEN =>     '0',
+      PSCLK =>    '0',
+      RST =>      RESET,
+      CLK0 =>     CLK_FB_Out, -- for feedback
+      CLK90=>    CLK_Out,
+      LOCKED =>   open
+     ); 
+--      
+U0_BUFG: BUFG  port map (I => CLK_FB_Out,    O => TLK_CLK_neg);
+U1_BUFG: BUFG  port map (I => CLK_FB_Out, O => FB_CLK);
+
+
   FIFO_MED_TO_OPT: trb_net_fifo_16bit_bram_dualport
     port map(
-      read_clock_in   => TLK_CLK,
+      read_clock_in   => TLK_CLK_neg,
       write_clock_in  => CLK,
       read_enable_in  => fifo_rd_en_m,
       write_enable_in => fifo_wr_en_m,
@@ -206,9 +235,9 @@ begin
   TLK_TXD <= reg_TXD;
   TLK_TX_EN <= reg_TX_EN;
 
-  process(TLK_CLK)
+  process(TLK_CLK_neg)
     begin
-      if rising_edge(TLK_CLK) then
+      if rising_edge(TLK_CLK_neg) then
         if internal_reset = '1' then
           reg_TXD   <= (others => '0');
           reg_TX_EN <= '0';
@@ -219,9 +248,9 @@ begin
       end if;
     end process;
 
-  process(TLK_CLK)
+  process(TLK_CLK_neg)
     begin
-      if rising_edge(TLK_CLK) then
+      if rising_edge(TLK_CLK_neg) then
         if internal_reset = '1' then
           last_fifo_rd_en_m <= '0';
         else