aboutsummaryrefslogtreecommitdiffstats
path: root/fpga/usrp2/extramfifo/test_sram_if.v
diff options
context:
space:
mode:
Diffstat (limited to 'fpga/usrp2/extramfifo/test_sram_if.v')
-rw-r--r--fpga/usrp2/extramfifo/test_sram_if.v192
1 files changed, 0 insertions, 192 deletions
diff --git a/fpga/usrp2/extramfifo/test_sram_if.v b/fpga/usrp2/extramfifo/test_sram_if.v
deleted file mode 100644
index dcb881a92..000000000
--- a/fpga/usrp2/extramfifo/test_sram_if.v
+++ /dev/null
@@ -1,192 +0,0 @@
-//
-// Copyright 2011 Ettus Research LLC
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-//
-
-// Instantiate this block at the core level to conduct closed
-// loop testing of the AC performance of the USRP2 SRAM interface
-
-
-`define WIDTH 18
-`define DEPTH 19
-
-module test_sram_if
- (
- input clk,
- input rst,
- input [`WIDTH-1:0] RAM_D_pi,
- output [`WIDTH-1:0] RAM_D_po,
- output RAM_D_poe,
- output [`DEPTH-1:0] RAM_A,
- output RAM_WEn,
- output RAM_CENn,
- output RAM_LDn,
- output RAM_OEn,
- output RAM_CE1n,
- output reg correct
- );
-
- reg [`DEPTH-1:0] write_count;
- reg [`DEPTH-1:0] read_count;
- reg enable;
- reg write;
- reg write_cycle;
- reg read_cycle;
- reg enable_reads;
- reg [18:0] address;
- reg [17:0] data_out;
- wire [17:0] data_in;
- wire data_in_valid;
-
- reg [17:0] check_data;
- reg [17:0] check_data_old;
- reg [17:0] check_data_old2;
-
- //
- // Create counter that generates both external modulo 2^19 address and modulo 2^18 data to test RAM.
- //
-
- always @(posedge clk)
- if (rst)
- begin
- write_count <= 19'h0;
- read_count <= 19'h0;
- end
- else if (write_cycle) // Write cycle
- if (write_count == 19'h7FFFF)
- begin
- write_count <= 19'h0;
- end
- else
- begin
- write_count <= write_count + 1'b1;
- end
- else if (read_cycle) // Read cycle
- if (read_count == 19'h7FFFF)
- begin
- read_count <= 19'h0;
- end
- else
- begin
- read_count <= read_count + 1'b1;
- end
-
- always @(posedge clk)
- if (rst)
- begin
- enable_reads <= 0;
- read_cycle <= 0;
- write_cycle <= 0;
- end
- else
- begin
- write_cycle <= ~write_cycle;
- if (enable_reads)
- read_cycle <= write_cycle;
- if (write_count == 15) // Enable reads 15 writes after reset terminates.
- enable_reads <= 1;
- end // else: !if(rst)
-
- always @(posedge clk)
- if (rst)
- begin
- enable <= 0;
- end
- else if (write_cycle)
- begin
- address <= write_count;
- data_out <= write_count[17:0];
- enable <= 1;
- write <= 1;
- end
- else if (read_cycle)
- begin
- address <= read_count;
- check_data <= read_count[17:0];
- check_data_old <= check_data;
- check_data_old2 <= check_data_old;
- enable <= 1;
- write <= 0;
- end
- else
- enable <= 0;
-
- always @(posedge clk)
- if (data_in_valid)
- begin
- correct <= (data_in == check_data_old2);
- end
-
-
- 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(data_out),
- .data_in(data_in),
- .data_in_valid(data_in_valid),
- .write(write),
- .enable(enable)
- );
-
-
- wire [35:0] CONTROL0;
- reg [7:0] data_in_reg, data_out_reg, address_reg;
- reg data_in_valid_reg,write_reg,enable_reg,correct_reg;
-
- always @(posedge clk)
- begin
- data_in_reg <= data_in[7:0];
- data_out_reg <= data_out[7:0];
- data_in_valid_reg <= data_in_valid;
- write_reg <= write;
- enable_reg <= enable;
- correct_reg <= correct;
- address_reg <= address;
-
- end
-
-
- icon icon_i1
- (
- .CONTROL0(CONTROL0)
- );
-
- ila ila_i1
- (
- .CLK(clk),
- .CONTROL(CONTROL0),
- // .TRIG0(address_reg),
- .TRIG0(data_in_reg[7:0]),
- .TRIG1(data_out_reg[7:0]),
- .TRIG2(address_reg[7:0]),
- .TRIG3({data_in_valid_reg,write_reg,enable_reg,correct_reg})
- );
-
-
-
-endmodule // test_sram_if
-
- \ No newline at end of file