Changeset 6064

Show
Ignore:
Timestamp:
07/25/07 11:01:29
Author:
matt
Message:

first code drop from Claus on July 24th 2007
changed case on some filenames, added vcd generation

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gnuradio/branches/developers/matt/u2f/control_lib/longfifo.v

    r6058 r6064  
    1616     output empty); 
    1717 
     18   // Read side states 
     19   localparam     EMPTY = 0; 
     20   localparam     PRE_READ = 1; 
     21   localparam     READING = 2; 
     22 
    1823   reg [SIZE-1:0] wr_addr, rd_addr; 
    1924   reg [1:0]      read_state; 
    2025 
    2126   wire [SIZE-1:0] fullness = wr_addr - rd_addr;  // For simulation only 
     27 
     28   reg    empty_reg, full_reg; 
    2229    
    2330   always @(posedge clk) 
     
    2633     else if(write) 
    2734       wr_addr <= wr_addr + 1; 
    28  
    29    // Read side states 
    30    localparam     EMPTY = 0; 
    31    localparam     PRE_READ = 1; 
    32    localparam     READING = 2; 
    3335 
    3436   ram_2port #(.DWIDTH(WIDTH),.AWIDTH(SIZE)) 
     
    5254          read_state <= EMPTY; 
    5355          rd_addr <= 0; 
     56          empty_reg <= 1; 
    5457       end 
    5558     else 
     
    6467           begin 
    6568              read_state <= READING; 
     69              empty_reg <= 0; 
    6670              rd_addr <= rd_addr + 1; 
    6771           end 
     
    7175             begin 
    7276                if(rd_addr == wr_addr) 
    73                   read_state <= EMPTY; 
     77                  begin 
     78                     read_state <= EMPTY; 
     79                     empty_reg <= 1; 
     80                  end 
    7481                else 
    7582                  rd_addr <= rd_addr + 1; 
     
    7784       endcase // case(read_state) 
    7885 
    79    assign empty = (read_state != READING); 
    80    assign full = ((rd_addr - 1) == wr_addr); 
    81        
     86   always @(posedge clk) 
     87     if(rst) 
     88       full_reg <= 0; 
     89     else if(read & ~write) 
     90       full_reg <= 0; 
     91     else if(write & ~read & (wr_addr == (rd_addr-2))) 
     92       full_reg <= 1; 
     93 
     94/*   always @(posedge clk) 
     95     if(rst) 
     96       empty_reg <= 1; 
     97     else if(write & ~read) 
     98       empty_reg <= 0; 
     99     else if(read & ~write & (wr_addr == (rd_addr+1))) 
     100       empty_reg <= 1; 
     101  */ 
     102    
     103   //assign empty = (read_state != READING); 
     104   assign empty = empty_reg; 
     105 
     106   // assign full = ((rd_addr - 1) == wr_addr); 
     107   assign full = full_reg; 
     108    
    82109endmodule // longfifo 
  • gnuradio/branches/developers/matt/u2f/control_lib/serdes_tx.v

    r5920 r6064  
    6565 
    6666   reg [15:0] second_word; 
    67     
     67   reg [33:0] pipeline; 
     68 
     69   always @(posedge clk) 
     70     if(rst) 
     71       pipeline <= 34'd0; 
     72     else 
     73       pipeline <= {fifo_ready_i, fifo_empty_i, fifo_data_i}; 
     74   wire       fifo_ready_d = pipeline[33]; 
     75   wire       fifo_empty_d = pipeline[32]; 
     76   wire [31:0] fifo_data_d = pipeline[31:0]; 
     77 
    6878   always @(posedge clk) 
    6979     if(rst) 
     
    7787           begin 
    7888              {ser_tkmsb,ser_tklsb,ser_t} <= {2'b11,K_COMMA,K_COMMA}; 
    79               if(fifo_ready_i
     89              if(fifo_ready_d
    8090                state <= START; 
    8191           end 
     
    8797         RUN1 : 
    8898           begin 
    89               {ser_tkmsb,ser_tklsb,ser_t} <= {2'b00,fifo_data_i[15:0]}; 
     99              {ser_tkmsb,ser_tklsb,ser_t} <= {2'b00,fifo_data_d[15:0]}; 
    90100              state <= RUN2; 
    91               second_word <= fifo_data_i[31:16]; 
     101              second_word <= fifo_data_d[31:16]; 
    92102           end 
    93103         RUN2 : 
     
    96106              if(fifo_empty_i) 
    97107                state <= DONE; 
    98               else if(fifo_ready_i
     108              else if(fifo_ready_d
    99109                state <= RUN1; 
    100110              else 
     
    104114           begin 
    105115              {ser_tkmsb,ser_tklsb,ser_t} <= {2'b11,K_COMMA,K_COMMA}; 
    106               if(fifo_ready_i
     116              if(fifo_ready_d
    107117                state <= RUN1; 
    108118           end 
  • gnuradio/branches/developers/matt/u2f/firmware/test1_main.c

    r6036 r6064  
    1818void int_handler_func () __attribute__ ((interrupt_handler)); 
    1919 
    20 void int_handler_func () {} 
    2120void double_buffering(); 
     21 
     22void int_handler_func () { 
     23  double_buffering(); 
     24} 
    2225 
    2326int 
     
    3841  dsp_tx_regs->scale_i = 1; 
    3942  dsp_tx_regs->scale_q = 1; 
    40   dsp_tx_regs->interp_rate = 32
     43  dsp_tx_regs->interp_rate = 7
    4144 
    4245  // Set up RX Chain 
     
    4447  dsp_rx_regs->scale_i = 1; 
    4548  dsp_rx_regs->scale_q = 1; 
    46   dsp_rx_regs->decim_rate = 32
     49  dsp_rx_regs->decim_rate = 7
    4750 
    4851  // Set up buffer control, using only 4 for now 
     
    6366  receive_to_buf(2, 0, 1, 5, 504); 
    6467 
     68  sim_puts("Done DSP TX setup\n"); 
     69  sim_puts("Done DSP TX setup\n"); 
    6570  dsp_tx_regs->run_tx = 1; 
    66   sim_puts("Done DSP TX setup\n"); 
    67  
    68   while(1) { 
    69     double_buffering(); 
    70   } 
     71 
     72  while(1) {} 
     73  //double_buffering(); 
     74  //} 
    7175 
    7276  sim_finish(); 
  • gnuradio/branches/developers/matt/u2f/top/u2_fpga/u2_fpga_top.prj

    r5937 r6064  
    99verilog work "../../opencores/aemb/rtl/verilog/aeMB_control.v" 
    1010verilog work "../../opencores/aemb/rtl/verilog/aeMB_aslu.v" 
     11verilog work "../../control_lib/ram_2port.v" 
    1112verilog work "../../sdr_lib/cordic.v" 
    1213verilog work "../../sdr_lib/cic_interp.v" 
     
    1819verilog work "../../control_lib/strobe_gen.v" 
    1920verilog work "../../control_lib/ss_rcvr.v" 
    20 verilog work "../../control_lib/shortfifo.v" 
    2121verilog work "../../control_lib/setting_reg.v" 
    22 verilog work "../../control_lib/ram_2port.v" 
    2322verilog work "../../control_lib/mux8.v" 
    2423verilog work "../../control_lib/mux4.v" 
     24verilog work "../../control_lib/longfifo.v" 
    2525verilog work "../../control_lib/fifo_int.v" 
    2626verilog work "../../control_lib/decoder_3_8.v" 
     
    3232verilog work "../../opencores/i2c/rtl/verilog/i2c_master_top.v" 
    3333verilog work "../../opencores/aemb/rtl/verilog/aeMB_core_BE.v" 
     34verilog work "../../control_lib/wb_readback_mux.v" 
    3435verilog work "../../control_lib/wb_1master.v" 
    3536verilog work "../../control_lib/system_control.v" 
  • gnuradio/branches/developers/matt/u2f/top/u2_sim/cmdfile

    r5786 r6064  
    1717-y ../../opencores/aemb/rtl/verilog 
    1818-y ../../opencores/simple_gpio/rtl 
     19 
     20# Ethernet 
     21-I ../../eth/rtl/verilog 
     22-y ../../eth/rtl/verilog 
     23-y ../../eth/rtl/verilog/MAC_tx 
     24-y ../../eth/rtl/verilog/MAC_rx 
     25-y ../../eth/rtl/verilog/miim 
     26-y ../../eth/rtl/verilog/TECH 
     27-y ../../eth/rtl/verilog/TECH/xilinx 
     28-y ../../eth/rtl/verilog/RMON 
     29 
     30# Ethernet Models 
     31-y ../../eth/bench/verilog