URL
https://opencores.org/ocsvn/versatile_mem_ctrl/versatile_mem_ctrl/trunk
Subversion Repositories versatile_mem_ctrl
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 36 to Rev 37
- ↔ Reverse comparison
Rev 36 → Rev 37
/versatile_mem_ctrl/trunk/rtl/verilog/sdr_16.v
161,6 → 161,33
q <= (q_next>>1) ^ q_next; |
assign q_bin = qi; |
endmodule |
module vfifo_dual_port_ram_dc_sw |
( |
d_a, |
adr_a, |
we_a, |
clk_a, |
q_b, |
adr_b, |
clk_b |
); |
parameter DATA_WIDTH = 32; |
parameter ADDR_WIDTH = 8; |
input [(DATA_WIDTH-1):0] d_a; |
input [(ADDR_WIDTH-1):0] adr_a; |
input [(ADDR_WIDTH-1):0] adr_b; |
input we_a; |
output [(DATA_WIDTH-1):0] q_b; |
input clk_a, clk_b; |
reg [(ADDR_WIDTH-1):0] adr_b_reg; |
reg [DATA_WIDTH-1:0] ram [(1<<ADDR_WIDTH)-1:0] ; |
always @ (posedge clk_a) |
if (we_a) |
ram[adr_a] <= d_a; |
always @ (posedge clk_b) |
adr_b_reg <= adr_b; |
assign q_b = ram[adr_b_reg]; |
endmodule |
module versatile_fifo_async_cmp ( wptr, rptr, fifo_empty, fifo_full, wclk, rclk, rst ); |
parameter ADDR_WIDTH = 4; |
parameter N = ADDR_WIDTH-1; |
347,7 → 374,7
nop = 3'b110, |
rw = 3'b111; |
reg [2:0] state, next; |
function [3:0] a10_fix; |
function [12:0] a10_fix; |
input [col_size-1:0] a; |
integer i; |
begin |
368,13 → 395,13
end |
endfunction |
assign {bank,row,col} = adr_i; |
always @ (posedge sdram_clk or sdram_rst) |
always @ (posedge sdram_clk or posedge sdram_rst) |
if (sdram_rst) |
{ba_reg,row_reg,col_reg,we_reg,bte_reg} <= {2'b00,{row_size{1'b0}},{col_size{1'b0}}}; |
else |
if (state==adr & !counter[0]) |
{ba_reg,row_reg,col_reg,we_reg,bte_reg} <= {bank,row,col,we_i,bte_i}; |
always @ (posedge sdram_clk or sdram_rst) |
always @ (posedge sdram_clk or posedge sdram_rst) |
if (sdram_rst) |
state <= init; |
else |
454,9 → 481,9
endcase |
case (bte_reg) |
linear: {ba,a} = {ba_reg,col_reg_a10_fix}; |
beat4: {ba,a} = {ba_reg,col_reg_a10_fix[12:2],col_reg_a10_fix[2:0] + counter[2:0]}; |
beat8: {ba,a} = {ba_reg,col_reg_a10_fix[12:3],col_reg_a10_fix[3:0] + counter[3:0]}; |
beat16: {ba,a} = {ba_reg,col_reg_a10_fix[12:4],col_reg_a10_fix[4:0] + counter[4:0]}; |
beat4: {ba,a} = {ba_reg,col_reg_a10_fix[12:3],col_reg_a10_fix[2:0] + counter[2:0]}; |
beat8: {ba,a} = {ba_reg,col_reg_a10_fix[12:4],col_reg_a10_fix[3:0] + counter[3:0]}; |
beat16: {ba,a} = {ba_reg,col_reg_a10_fix[12:5],col_reg_a10_fix[4:0] + counter[4:0]}; |
endcase |
end |
endcase |
916,7 → 943,7
assign cs_n_pad_o = 1'b0; |
assign cke_pad_o = 1'b1; |
always @ (posedge sdram_clk or posedge sdram_rst) |
if (wb_rst) |
if (sdram_rst) |
{dq_i_reg, dq_i_tmp_reg} <= {16'h0000,16'h0000}; |
else |
{dq_i_reg, dq_i_tmp_reg} <= {dq_i, dq_i_reg}; |
/versatile_mem_ctrl/trunk/rtl/verilog/versatile_mem_ctrl_top.v
330,7 → 330,7
assign cke_pad_o = 1'b1; |
|
always @ (posedge sdram_clk or posedge sdram_rst) |
if (wb_rst) |
if (sdram_rst) |
{dq_i_reg, dq_i_tmp_reg} <= {16'h0000,16'h0000}; |
else |
{dq_i_reg, dq_i_tmp_reg} <= {dq_i, dq_i_reg}; |
/versatile_mem_ctrl/trunk/rtl/verilog/fsm_sdr_16.v
81,7 → 81,7
rw = 3'b111; |
reg [2:0] state, next; |
|
function [3:0] a10_fix; |
function [12:0] a10_fix; |
input [col_size-1:0] a; |
integer i; |
begin |
104,7 → 104,7
|
|
assign {bank,row,col} = adr_i; |
always @ (posedge sdram_clk or sdram_rst) |
always @ (posedge sdram_clk or posedge sdram_rst) |
if (sdram_rst) |
{ba_reg,row_reg,col_reg,we_reg,bte_reg} <= {2'b00,{row_size{1'b0}},{col_size{1'b0}}}; |
else |
111,7 → 111,7
if (state==adr & !counter[0]) |
{ba_reg,row_reg,col_reg,we_reg,bte_reg} <= {bank,row,col,we_i,bte_i}; |
|
always @ (posedge sdram_clk or sdram_rst) |
always @ (posedge sdram_clk or posedge sdram_rst) |
if (sdram_rst) |
state <= init; |
else |
213,9 → 213,9
endcase |
case (bte_reg) |
linear: {ba,a} = {ba_reg,col_reg_a10_fix}; |
beat4: {ba,a} = {ba_reg,col_reg_a10_fix[12:2],col_reg_a10_fix[2:0] + counter[2:0]}; |
beat8: {ba,a} = {ba_reg,col_reg_a10_fix[12:3],col_reg_a10_fix[3:0] + counter[3:0]}; |
beat16: {ba,a} = {ba_reg,col_reg_a10_fix[12:4],col_reg_a10_fix[4:0] + counter[4:0]}; |
beat4: {ba,a} = {ba_reg,col_reg_a10_fix[12:3],col_reg_a10_fix[2:0] + counter[2:0]}; |
beat8: {ba,a} = {ba_reg,col_reg_a10_fix[12:4],col_reg_a10_fix[3:0] + counter[3:0]}; |
beat16: {ba,a} = {ba_reg,col_reg_a10_fix[12:5],col_reg_a10_fix[4:0] + counter[4:0]}; |
endcase |
end |
endcase |
/versatile_mem_ctrl/trunk/rtl/verilog/Makefile
37,7 → 37,7
all: svn_export versatile_fifo_dual_port_ram_dc_dw.v versatile_counter fifo_fill.v sdr_16.v ddr_16.v versatile_mem_ctrl_ip.v |
|
sdr_16.v: versatile_fifo_async_cmp.v versatile_fifo_dual_port_ram_dc_dw.v versatile_counter |
vppreproc --simple +define+SDR_16 delay.v codec.v fifo_adr_counter.v versatile_fifo_async_cmp.v ref_counter.v fsm_sdr_16.v versatile_mem_ctrl_wb.v versatile_mem_ctrl_top.v > sdr_16.v |
vppreproc --simple +define+SDR_16 delay.v codec.v fifo_adr_counter.v versatile_fifo_dual_port_ram_dc_sw.v versatile_fifo_async_cmp.v ref_counter.v fsm_sdr_16.v versatile_mem_ctrl_wb.v versatile_mem_ctrl_top.v > sdr_16.v |
|
all: sdr_16.v |
|