Changeset 9779
- Timestamp:
- 10/11/08 17:04:06
- Files:
-
- gnuradio/trunk/usrp2/firmware/lib/memory_map.h (modified) (3 diffs)
- gnuradio/trunk/usrp2/fpga/control_lib/icache.v (modified) (2 diffs)
- gnuradio/trunk/usrp2/fpga/control_lib/ram_harv_cache.v (modified) (2 diffs)
- gnuradio/trunk/usrp2/fpga/top/u2_core/u2_core.v (modified) (4 diffs)
- gnuradio/trunk/usrp2/fpga/top/u2_rev3/Makefile (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gnuradio/trunk/usrp2/firmware/lib/memory_map.h
r9634 r9779 355 355 volatile uint32_t debug_mux_ctrl; 356 356 volatile uint32_t ram_page; // FIXME should go somewhere else... 357 volatile uint32_t flush_icache; // Flush the icache 357 358 } output_regs_t; 358 359 … … 483 484 #define IRQ_UART_RX 8 484 485 #define IRQ_UART_TX 9 486 #define IRQ_SERDES 10 487 #define IRQ_CLKSTATUS 11 485 488 486 489 #define IRQ_TO_MASK(x) (1 << (x)) … … 496 499 #define PIC_UART_RX_INT IRQ_TO_MASK(IRQ_UART_RX) 497 500 #define PIC_UART_TX_INT IRQ_TO_MASK(IRQ_UART_TX) 498 501 #define PIC_SERDES IRQ_TO_MASK(IRQ_SERDES) 502 #define PIC_CLKSTATUS IRQ_TO_MASK(IRQ_CLKSTATUS) 499 503 500 504 typedef struct { gnuradio/trunk/usrp2/fpga/control_lib/icache.v
r9528 r9779 12 12 input [31:0] iram_dat_i, 13 13 output [AWIDTH-1:0] iram_adr_o, 14 output iram_en_o ); 14 output iram_en_o, 15 input flush); 15 16 16 17 localparam TAGWIDTH = AWIDTH-CWIDTH-2; … … 29 30 integer i; 30 31 always @(posedge wb_clk_i) 31 if(wb_rst_i )32 if(wb_rst_i | flush) 32 33 for(i=0;i<(1<<CWIDTH);i=i+1) 33 34 ivalid[i] <= 0; gnuradio/trunk/usrp2/fpga/control_lib/ram_harv_cache.v
r9528 r9779 26 26 output dwb_ack_o, 27 27 input dwb_stb_i, 28 input [3:0] dwb_sel_i ); 28 input [3:0] dwb_sel_i, 29 30 input flush_icache ); 29 31 30 32 wire [31:0] iram_dat, dram_dat_i, dram_dat_o; … … 61 63 .iwb_adr_i(iwb_adr_i),.iwb_stb_i(iwb_stb_i), 62 64 .iwb_dat_o(iwb_dat_o),.iwb_ack_o(iwb_ack_o), 63 .iram_dat_i(iram_dat),.iram_adr_o(iram_adr),.iram_en_o(iram_en) ); 65 .iram_dat_i(iram_dat),.iram_adr_o(iram_adr),.iram_en_o(iram_en), 66 .flush(flush_icache)); 64 67 65 68 // RAM loader gnuradio/trunk/usrp2/fpga/top/u2_core/u2_core.v
r9746 r9779 284 284 // I-port connects directly to processor and ram loader 285 285 286 wire flush_icache; 286 287 ram_harv_cache #(.AWIDTH(15),.RAM_SIZE(RAM_SIZE),.ICWIDTH(7),.DCWIDTH(6)) 287 288 sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), … … 296 297 297 298 .dwb_adr_i(s0_adr[14:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), 298 .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); 299 .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel), 300 .flush_icache(flush_icache)); 299 301 300 302 assign s0_err = 1'b0; 301 303 assign s0_rty = 1'b0; 304 305 setting_reg #(.my_addr(7)) sr_icache (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), 306 .in(set_data),.out(),.changed(flush_icache)); 302 307 303 308 // Buffer Pool, slave #1 … … 389 394 .word00(status_b0),.word01(status_b1),.word02(status_b2),.word03(status_b3), 390 395 .word04(status_b4),.word05(status_b5),.word06(status_b6),.word07(status_b7), 391 .word08(status),.word09({sim_mode,27'b0,clock_divider[3:0]}),.word10( {30'b0,clk_func,clk_status}),396 .word08(status),.word09({sim_mode,27'b0,clock_divider[3:0]}),.word10(32'b0), 392 397 .word11(32'b0),.word12(32'b0),.word13(32'b0),.word14(32'b0),.word15(32'b0) 393 398 ); … … 480 485 // Interrupt Controller, Slave #8 481 486 482 wire [15:0] irq={{ 5'b0, serdes_link_up, uart_tx_int, uart_rx_int},487 wire [15:0] irq={{4'b0, clk_status, serdes_link_up, uart_tx_int, uart_rx_int}, 483 488 {pps_int,overrun,underrun,PHY_INTn,i2c_int,spi_int,timer_int,buffer_int}}; 484 489 gnuradio/trunk/usrp2/fpga/top/u2_rev3/Makefile
r9746 r9779 63 63 control_lib/decoder_3_8.v \ 64 64 control_lib/dpram32.v \ 65 control_lib/extram_interface.v \66 65 control_lib/fifo_2clock.v \ 67 66 control_lib/fifo_2clock_casc.v \
