URL
https://opencores.org/ocsvn/amber/amber/trunk
Subversion Repositories amber
Compare Revisions
- This comparison shows the changes necessary to convert path
/amber/trunk/hw/vlog
- from Rev 39 to Rev 40
- ↔ Reverse comparison
Rev 39 → Rev 40
/system/boot_mem128.v
64,22 → 64,43
|
wire start_write; |
wire start_read; |
reg start_read_r = 'd0; |
wire [WB_DWIDTH-1:0] read_data; |
wire [WB_DWIDTH-1:0] write_data; |
wire [WB_SWIDTH-1:0] byte_enable; |
wire [MADDR_WIDTH-1:0] address; |
|
`ifdef AMBER_WISHBONE_DEBUG |
reg [7:0] jitter_r = 8'h0f; |
reg [1:0] start_read_r = 'd0; |
`else |
reg start_read_r = 'd0; |
`endif |
|
// Can't start a write while a read is completing. The ack for the read cycle |
// needs to be sent first |
assign start_write = i_wb_stb && i_wb_we && !start_read_r; |
assign start_read = i_wb_stb && !i_wb_we && !start_read_r; |
`ifdef AMBER_WISHBONE_DEBUG |
assign start_write = i_wb_stb && i_wb_we && !(|start_read_r) && jitter_r[0]; |
`else |
assign start_write = i_wb_stb && i_wb_we && !(|start_read_r); |
`endif |
assign start_read = i_wb_stb && !i_wb_we && !(|start_read_r); |
|
`ifdef AMBER_WISHBONE_DEBUG |
always @( posedge i_wb_clk ) |
jitter_r <= {jitter_r[6:0], jitter_r[7] ^ jitter_r[4] ^ jitter_r[1]}; |
|
always @( posedge i_wb_clk ) |
if (start_read) |
start_read_r <= {3'd0, start_read}; |
else if (o_wb_ack) |
start_read_r <= 'd0; |
else |
start_read_r <= {start_read_r[2:0], start_read}; |
`else |
always @( posedge i_wb_clk ) |
start_read_r <= start_read; |
`endif |
|
always @( posedge i_wb_clk ) |
start_read_r <= start_read; |
|
assign o_wb_err = 1'd0; |
|
assign write_data = i_wb_dat; |
86,9 → 107,14
assign byte_enable = i_wb_sel; |
assign o_wb_dat = read_data; |
assign address = i_wb_adr[MADDR_WIDTH+3:4]; |
assign o_wb_ack = i_wb_stb && ( start_write || start_read_r ); |
|
`ifdef AMBER_WISHBONE_DEBUG |
assign o_wb_ack = i_wb_stb && ( start_write || start_read_r[jitter_r[1]] ); |
`else |
assign o_wb_ack = i_wb_stb && ( start_write || start_read_r ); |
`endif |
|
|
// ------------------------------------------------------ |
// Instantiate SRAMs |
// ------------------------------------------------------ |
/system/system_config_defines.v
72,6 → 72,9
// Debug switches |
// -------------------------------------------------------------------- |
|
// Add jitter to wishbone accesses |
//`define AMBER_WISHBONE_DEBUG |
|
// Print UART debug messages |
//`define AMBER_UART_DEBUG |
|
/system/boot_mem32.v
63,7 → 63,12
|
wire start_write; |
wire start_read; |
reg start_read_r = 'd0; |
`ifdef AMBER_WISHBONE_DEBUG |
reg [7:0] jitter_r = 8'h0f; |
reg [1:0] start_read_r = 'd0; |
`else |
reg start_read_r = 'd0; |
`endif |
wire [WB_DWIDTH-1:0] read_data; |
wire [WB_DWIDTH-1:0] write_data; |
wire [WB_SWIDTH-1:0] byte_enable; |
72,12 → 77,29
|
// Can't start a write while a read is completing. The ack for the read cycle |
// needs to be sent first |
assign start_write = i_wb_stb && i_wb_we && !start_read_r; |
`ifdef AMBER_WISHBONE_DEBUG |
assign start_write = i_wb_stb && i_wb_we && !(|start_read_r) && jitter_r[0]; |
`else |
assign start_write = i_wb_stb && i_wb_we && !(|start_read_r); |
`endif |
assign start_read = i_wb_stb && !i_wb_we && !start_read_r; |
|
|
always @( posedge i_wb_clk ) |
start_read_r <= start_read; |
`ifdef AMBER_WISHBONE_DEBUG |
always @( posedge i_wb_clk ) |
jitter_r <= {jitter_r[6:0], jitter_r[7] ^ jitter_r[4] ^ jitter_r[1]}; |
|
always @( posedge i_wb_clk ) |
if (start_read) |
start_read_r <= {3'd0, start_read}; |
else if (o_wb_ack) |
start_read_r <= 'd0; |
else |
start_read_r <= {start_read_r[2:0], start_read}; |
`else |
always @( posedge i_wb_clk ) |
start_read_r <= start_read; |
`endif |
|
assign o_wb_err = 1'd0; |
|
85,8 → 107,13
assign byte_enable = i_wb_sel; |
assign o_wb_dat = read_data; |
assign address = i_wb_adr[MADDR_WIDTH+1:2]; |
assign o_wb_ack = i_wb_stb && ( start_write || start_read_r ); |
|
`ifdef AMBER_WISHBONE_DEBUG |
assign o_wb_ack = i_wb_stb && ( start_write || start_read_r[jitter_r[1]] ); |
`else |
assign o_wb_ack = i_wb_stb && ( start_write || start_read_r ); |
`endif |
|
// ------------------------------------------------------ |
// Instantiate SRAMs |
// ------------------------------------------------------ |