Revision a98e5bc7 usrp2/fpga/extram/extram_wb.v
| b/usrp2/fpga/extram/extram_wb.v | ||
|---|---|---|
| 21 | 21 |
wire write_acc = stb_i & cyc_i & we_i; |
| 22 | 22 |
wire acc = stb_i & cyc_i; |
| 23 | 23 |
|
| 24 |
assign RAM_CLK = wb_clk; // 50 MHz for now, eventually should be 200 MHz |
|
| 24 |
assign RAM_CLK = ~wb_clk; // 50 MHz for now, eventually should be 200 MHz
|
|
| 25 | 25 |
assign RAM_LDn = 0; // No burst for now |
| 26 | 26 |
assign RAM_CENn = 0; // Use CE1n as our main CE |
| 27 | 27 |
|
| ... | ... | |
| 63 | 63 |
else |
| 64 | 64 |
case(RAM_state) |
| 65 | 65 |
RAM_idle : |
| 66 |
if(read_acc) |
|
| 66 |
if(read_acc & ~ack_o)
|
|
| 67 | 67 |
begin |
| 68 | 68 |
RAM_state <= RAM_read_1; |
| 69 | 69 |
myOE <= 0; RAM_OE <= 0; RAM_WE <= 0; RAM_EN <= 1; RAM_A0_reg <= 0; |
| 70 | 70 |
end |
| 71 |
else if(write_acc) |
|
| 71 |
else if(write_acc & ~ack_o)
|
|
| 72 | 72 |
begin |
| 73 | 73 |
RAM_state <= RAM_write_1; |
| 74 | 74 |
myOE <= 0; RAM_OE <= 0; RAM_WE <= 1; RAM_EN <= 1; RAM_A0_reg <= 0; |
| ... | ... | |
| 100 | 100 |
RAM_write_1 : |
| 101 | 101 |
begin |
| 102 | 102 |
RAM_state <= RAM_write_2; |
| 103 |
myOE <= 0; RAM_OE <= 0; RAM_WE <= 1; RAM_EN <= 1; RAM_A0_reg <= 1;
|
|
| 103 |
myOE <= 1; RAM_OE <= 0; RAM_WE <= 1; RAM_EN <= 1; RAM_A0_reg <= 1;
|
|
| 104 | 104 |
end |
| 105 | 105 |
RAM_write_2 : |
| 106 | 106 |
begin |
| ... | ... | |
| 126 | 126 |
assign RAM_CE1n = ~RAM_EN; // Active low (RAM_state != RAM_idle); |
| 127 | 127 |
|
| 128 | 128 |
assign RAM_D[17:16] = 2'bzz; |
| 129 |
assign RAM_D[15:0] = myOE ? ((RAM_state==RAM_write_3)?ram_out[15:0]:ram_out[31:16])
|
|
| 129 |
assign RAM_D[15:0] = myOE ? ((RAM_state==RAM_write_2)?ram_out[15:0]:ram_out[31:16])
|
|
| 130 | 130 |
: 16'bzzzz_zzzz_zzzz_zzzz; |
| 131 | 131 |
|
| 132 | 132 |
always @(posedge wb_clk) |
Also available in: Unified diff