summaryrefslogtreecommitdiff
path: root/usrp2/fpga/control_lib
diff options
context:
space:
mode:
authormatt2008-10-11 23:04:06 +0000
committermatt2008-10-11 23:04:06 +0000
commitb4cbef36ad73ebc8c8521e33e14a33c86ee392c1 (patch)
treeb57ca53d2963dd2f7944459eaf0c087012168380 /usrp2/fpga/control_lib
parent361d5a4160be0d03e041daf6805b643956998165 (diff)
downloadgnuradio-b4cbef36ad73ebc8c8521e33e14a33c86ee392c1.tar.gz
gnuradio-b4cbef36ad73ebc8c8521e33e14a33c86ee392c1.tar.bz2
gnuradio-b4cbef36ad73ebc8c8521e33e14a33c86ee392c1.zip
New serdes status interrupt, clk_status interrupt. New capability to flush the ICache.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9779 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'usrp2/fpga/control_lib')
-rw-r--r--usrp2/fpga/control_lib/icache.v5
-rw-r--r--usrp2/fpga/control_lib/ram_harv_cache.v7
2 files changed, 8 insertions, 4 deletions
diff --git a/usrp2/fpga/control_lib/icache.v b/usrp2/fpga/control_lib/icache.v
index dd93c88ed..bd21f47cc 100644
--- a/usrp2/fpga/control_lib/icache.v
+++ b/usrp2/fpga/control_lib/icache.v
@@ -11,7 +11,8 @@ module icache
output iwb_ack_o,
input [31:0] iram_dat_i,
output [AWIDTH-1:0] iram_adr_o,
- output iram_en_o );
+ output iram_en_o,
+ input flush);
localparam TAGWIDTH = AWIDTH-CWIDTH-2;
reg stb_d1, ack_d1, miss_d1;
@@ -28,7 +29,7 @@ module icache
// Write into cache
integer i;
always @(posedge wb_clk_i)
- if(wb_rst_i)
+ if(wb_rst_i | flush)
for(i=0;i<(1<<CWIDTH);i=i+1)
ivalid[i] <= 0;
else
diff --git a/usrp2/fpga/control_lib/ram_harv_cache.v b/usrp2/fpga/control_lib/ram_harv_cache.v
index 933f9ba1a..29fdebf7a 100644
--- a/usrp2/fpga/control_lib/ram_harv_cache.v
+++ b/usrp2/fpga/control_lib/ram_harv_cache.v
@@ -25,7 +25,9 @@ module ram_harv_cache
input dwb_we_i,
output dwb_ack_o,
input dwb_stb_i,
- input [3:0] dwb_sel_i );
+ input [3:0] dwb_sel_i,
+
+ input flush_icache );
wire [31:0] iram_dat, dram_dat_i, dram_dat_o;
wire [AWIDTH-1:0] iram_adr, dram_adr;
@@ -60,7 +62,8 @@ module ram_harv_cache
icache(.wb_clk_i(wb_clk_i),.wb_rst_i(wb_rst_i),
.iwb_adr_i(iwb_adr_i),.iwb_stb_i(iwb_stb_i),
.iwb_dat_o(iwb_dat_o),.iwb_ack_o(iwb_ack_o),
- .iram_dat_i(iram_dat),.iram_adr_o(iram_adr),.iram_en_o(iram_en) );
+ .iram_dat_i(iram_dat),.iram_adr_o(iram_adr),.iram_en_o(iram_en),
+ .flush(flush_icache));
// RAM loader
assign ram_loader_ack_o = ram_loader_stb_i;