commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r6060 - gnuradio/branches/developers/matt/u2f/sdr_lib


From: matt
Subject: [Commit-gnuradio] r6060 - gnuradio/branches/developers/matt/u2f/sdr_lib
Date: Tue, 24 Jul 2007 16:10:47 -0600 (MDT)

Author: matt
Date: 2007-07-24 16:10:44 -0600 (Tue, 24 Jul 2007)
New Revision: 6060

Modified:
   gnuradio/branches/developers/matt/u2f/sdr_lib/dsp_core_tx.v
Log:
switched to long fifo, redid enables to better handle underruns


Modified: gnuradio/branches/developers/matt/u2f/sdr_lib/dsp_core_tx.v
===================================================================
--- gnuradio/branches/developers/matt/u2f/sdr_lib/dsp_core_tx.v 2007-07-24 
22:10:04 UTC (rev 6059)
+++ gnuradio/branches/developers/matt/u2f/sdr_lib/dsp_core_tx.v 2007-07-24 
22:10:44 UTC (rev 6060)
@@ -43,15 +43,17 @@
 
    wire        full, empty;
    assign      tx_done_o = 0;
-   assign      tx_read_o = tx_ready_i & ~full;
+   assign      tx_read_o = tx_ready_i & ~full;  // FIXME potential critical 
path
    assign      underrun = empty & stb_interp;
+
+   wire        enable_tx = run_tx; 
    
-   shortfifo txshortfifo
+   longfifo #(.WIDTH(32),.SIZE(9)) txfifo
      (.clk(clk),.rst(rst),.datain(tx_dat_i),.dataout({q,i}),
       .read(stb_interp & ~empty),.write(tx_read_o),.full(full),.empty(empty));
 
    strobe_gen 
strobe_gen(.clock(clk),.reset(rst),.enable(run_tx),.rate(interp_rate),
-                        .strobe_in(1),.strobe(stb_interp) );
+                        .strobe_in(enable_tx),.strobe(stb_interp) );
    
    always @(posedge clk)
      if(rst)
@@ -67,17 +69,17 @@
    wire [15:0]          i_interp, q_interp;
    
    cic_interp  #(.bw(16),.N(4),.log2_of_max_rate(7))
-     cic_interp_i(.clock(clk),.reset(rst),.enable(run_tx),.rate(interp_rate),
+     
cic_interp_i(.clock(clk),.reset(rst),.enable(enable_tx),.rate(interp_rate),
                  .strobe_in(stb_interp),.strobe_out(1),
-                 .signal_in(i),.signal_out(i_interp));
+                 .signal_in(empty ? 0 : i),.signal_out(i_interp));
    
    cic_interp  #(.bw(16),.N(4),.log2_of_max_rate(7))
-     cic_interp_q(.clock(clk),.reset(rst),.enable(run_tx),.rate(interp_rate),
+     
cic_interp_q(.clock(clk),.reset(rst),.enable(enable_tx),.rate(interp_rate),
                  .strobe_in(stb_interp),.strobe_out(1),
-                 .signal_in(q),.signal_out(q_interp));
+                 .signal_in(empty ? 0 : q),.signal_out(q_interp));
    
    cordic #(.bitwidth(16),.zwidth(16))
-     cordic(.clock(clk), .reset(rst), .enable(run_tx),
+     cordic(.clock(clk), .reset(rst), .enable(enable_tx),
            .xi(i_interp),.yi(q_interp),.zi(phase[31:16]),
            .xo(da),.yo(db),.zo() );
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]