diff options
author | Josh Blum <josh@joshknows.com> | 2010-11-23 13:53:14 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-11-23 13:53:14 -0800 |
commit | 18ce33d2286a428705bc19e5dc091f2d6a6d4d5b (patch) | |
tree | c355fbde9d8804b29ab76bef7412874fe03955a1 /fpga/usrp2/extramfifo | |
parent | 30ce5acedd3e0dc6fc97d7597781a0a4828812f2 (diff) | |
parent | 74bb6b39d9a677e6a7a41b6e3d62488aa265f706 (diff) | |
download | uhd-18ce33d2286a428705bc19e5dc091f2d6a6d4d5b.tar.gz uhd-18ce33d2286a428705bc19e5dc091f2d6a6d4d5b.tar.bz2 uhd-18ce33d2286a428705bc19e5dc091f2d6a6d4d5b.zip |
Merge branch 'fpga_next' into next
Conflicts:
fpga/usrp2/top/u1e_passthru/.gitignore
fpga/usrp2/top/u1e_passthru/Makefile
fpga/usrp2/top/u2plus/.gitignore
fpga/usrp2/top/u2plus/Makefile
usrp2/top/u1e_passthru/.gitignore
usrp2/top/u1e_passthru/Makefile
Diffstat (limited to 'fpga/usrp2/extramfifo')
-rw-r--r-- | fpga/usrp2/extramfifo/ext_fifo.v | 37 | ||||
-rwxr-xr-x[-rw-r--r--] | fpga/usrp2/extramfifo/ext_fifo_tb.sh | 0 | ||||
-rw-r--r-- | fpga/usrp2/extramfifo/nobl_fifo.v | 41 | ||||
-rw-r--r-- | fpga/usrp2/extramfifo/nobl_if.v | 9 |
4 files changed, 45 insertions, 42 deletions
diff --git a/fpga/usrp2/extramfifo/ext_fifo.v b/fpga/usrp2/extramfifo/ext_fifo.v index 6888617a7..80f82fc63 100644 --- a/fpga/usrp2/extramfifo/ext_fifo.v +++ b/fpga/usrp2/extramfifo/ext_fifo.v @@ -45,9 +45,7 @@ module ext_fifo wire [EXT_WIDTH-1:0] write_data; wire [EXT_WIDTH-1:0] read_data; wire full1, empty1; - wire almost_full2, full2, empty2; - wire [INT_WIDTH-1:0] data_to_fifo; - wire [INT_WIDTH-1:0] data_from_fifo; + wire almost_full2, almost_full2_spread, full2, empty2; wire [FIFO_DEPTH-1:0] capacity; wire space_avail; wire data_avail; @@ -134,17 +132,17 @@ module ext_fifo .empty(empty1)); // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. - fifo_xlnx_32x36_2clk fifo_xlnx_32x36_2clk_i2 ( - .rst(rst), - .wr_clk(ext_clk), - .rd_clk(int_clk), - .din(read_data), // Bus [35 : 0] - .wr_en(write_output_fifo), - .rd_en(dst_rdy_i), - .dout(dataout), // Bus [35 : 0] - .full(full2), - .empty(empty2), - .prog_full(almost_full2)); + fifo_xlnx_512x36_2clk_prog_full fifo_xlnx_32x36_2clk_prog_full_i1 ( + .rst(rst), + .wr_clk(ext_clk), + .rd_clk(int_clk), + .din(read_data), // Bus [35 : 0] + .wr_en(write_output_fifo), + .rd_en(dst_rdy_i), + .dout(dataout), // Bus [35 : 0] + .full(full2), + .empty(empty2), + .prog_full(almost_full2)); end endgenerate @@ -158,13 +156,14 @@ module ext_fifo .full_out(almost_full2_spread) ); - - always @ (posedge int_clk) - debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; +// always @ (posedge int_clk) +// debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; always @ (posedge ext_clk) - debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; - + // debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; + debug[31:0] <= {7'h0,src_rdy_i,read_input_fifo,write_output_fifo,dst_rdy_i,full2,almost_full2,empty2,full1,empty1,write_data[7:0],read_data[7:0]}; + + always@ (posedge ext_clk) // debug2[31:0] <= {write_data[15:0],read_data[15:0]}; debug2[31:0] <= 0; diff --git a/fpga/usrp2/extramfifo/ext_fifo_tb.sh b/fpga/usrp2/extramfifo/ext_fifo_tb.sh index dcfede37a..dcfede37a 100644..100755 --- a/fpga/usrp2/extramfifo/ext_fifo_tb.sh +++ b/fpga/usrp2/extramfifo/ext_fifo_tb.sh diff --git a/fpga/usrp2/extramfifo/nobl_fifo.v b/fpga/usrp2/extramfifo/nobl_fifo.v index 4c009d980..0b63768fc 100644 --- a/fpga/usrp2/extramfifo/nobl_fifo.v +++ b/fpga/usrp2/extramfifo/nobl_fifo.v @@ -70,26 +70,27 @@ module nobl_fifo // Simple NoBL SRAM interface, 4 cycle read latency. // Read/Write arbitration via temprary application of empty/full flags. // - nobl_if nobl_if_i1 - ( - .clk(clk), - .rst(rst), - .RAM_D_pi(RAM_D_pi), - .RAM_D_po(RAM_D_po), - .RAM_D_poe(RAM_D_poe), - .RAM_A(RAM_A), - .RAM_WEn(RAM_WEn), - .RAM_CENn(RAM_CENn), - .RAM_LDn(RAM_LDn), - .RAM_OEn(RAM_OEn), - .RAM_CE1n(RAM_CE1n), - .address(address), - .data_out(write_data), - .data_in(read_data), - .data_in_valid(data_avail), - .write(write), - .enable(enable) - ); + nobl_if #(.WIDTH(WIDTH),.DEPTH(RAM_DEPTH)) + nobl_if_i1 + ( + .clk(clk), + .rst(rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .address(address), + .data_out(write_data), + .data_in(read_data), + .data_in_valid(data_avail), + .write(write), + .enable(enable) + ); diff --git a/fpga/usrp2/extramfifo/nobl_if.v b/fpga/usrp2/extramfifo/nobl_if.v index adf9f165b..b5ebe9c6b 100644 --- a/fpga/usrp2/extramfifo/nobl_if.v +++ b/fpga/usrp2/extramfifo/nobl_if.v @@ -56,18 +56,21 @@ module nobl_if address_pipe1 <= 0; write_pipe1 <= 0; data_out_pipe1 <= 0; + RAM_WEn <= 1; + RAM_CE1n <= 1; + end else begin enable_pipe1 <= enable; - RAM_CE1n <= ~enable; // Creates IOB flob - + RAM_CE1n <= ~enable; // Creates IOB flop + RAM_WEn <= ~write; // Creates IOB flop if (enable) begin address_pipe1 <= address_gray; write_pipe1 <= write; - RAM_WEn <= ~write; // Creates IOB flob +// RAM_WEn <= ~write; // Creates IOB flop if (write) |