Line 35... |
Line 35... |
//// ////
|
//// ////
|
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
|
|
// CVS Log
|
// CVS Log
|
//
|
//
|
// $Id: wb_dma_ch_rf.v,v 1.3 2001-10-19 04:35:04 rudi Exp $
|
// $Id: wb_dma_ch_rf.v,v 1.4 2001-10-30 02:06:17 rudi Exp $
|
//
|
//
|
// $Date: 2001-10-19 04:35:04 $
|
// $Date: 2001-10-30 02:06:17 $
|
// $Revision: 1.3 $
|
// $Revision: 1.4 $
|
// $Author: rudi $
|
// $Author: rudi $
|
// $Locker: $
|
// $Locker: $
|
// $State: Exp $
|
// $State: Exp $
|
//
|
//
|
// Change History:
|
// Change History:
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.3 2001/10/19 04:35:04 rudi
|
|
//
|
|
// - Made the core parameterized
|
|
//
|
// Revision 1.2 2001/08/15 05:40:30 rudi
|
// Revision 1.2 2001/08/15 05:40:30 rudi
|
//
|
//
|
// - Changed IO names to be more clear.
|
// - Changed IO names to be more clear.
|
// - Uniquifyed define names to be core specific.
|
// - Uniquifyed define names to be core specific.
|
// - Added Section 3.10, describing DMA restart.
|
// - Added Section 3.10, describing DMA restart.
|
Line 200... |
Line 204... |
// Aliases
|
// Aliases
|
//
|
//
|
|
|
assign ch_adr0 = CH_EN ? {ch_adr0_r, 2'h0} : 32'h0;
|
assign ch_adr0 = CH_EN ? {ch_adr0_r, 2'h0} : 32'h0;
|
assign ch_adr1 = CH_EN ? {ch_adr1_r, 2'h0} : 32'h0;
|
assign ch_adr1 = CH_EN ? {ch_adr1_r, 2'h0} : 32'h0;
|
assign ch_am0 = CH_EN ? {ch_am0_r, 4'h0} : 32'h0;
|
assign ch_am0 = (CH_EN & HAVE_CBUF) ? {ch_am0_r, 4'h0} : 32'hffff_fff0;
|
assign ch_am1 = CH_EN ? {ch_am1_r, 4'h0} : 32'h0;
|
assign ch_am1 = (CH_EN & HAVE_CBUF) ? {ch_am1_r, 4'h0} : 32'hffff_fff0;
|
assign sw_pointer = CH_EN ? {sw_pointer_r,2'h0} : 32'h0;
|
assign sw_pointer = (CH_EN & HAVE_CBUF) ? {sw_pointer_r,2'h0} : 32'h0;
|
|
|
assign pointer = CH_EN ? {pointer_r, 3'h0, ptr_valid} : 32'h0;
|
assign pointer = CH_EN ? {pointer_r, 3'h0, ptr_valid} : 32'h0;
|
assign pointer_s = CH_EN ? {pointer_sr, 4'h0} : 32'h0;
|
assign pointer_s = CH_EN ? {pointer_sr, 4'h0} : 32'h0;
|
assign ch_csr = CH_EN ? {9'h0, int_src_r, ch_csr_r3, rest_en, ch_csr_r2,
|
assign ch_csr = CH_EN ? {9'h0, int_src_r, ch_csr_r3, rest_en, ch_csr_r2,
|
ch_err, ch_done, ch_busy, 1'b0, ch_csr_r[8:1], ch_enable} : 32'h0;
|
ch_err, ch_done, ch_busy, 1'b0, ch_csr_r[8:1], ch_enable} : 32'h0;
|
Line 385... |
Line 389... |
else
|
else
|
if(ch_csr_re) int_src_r[0] <= #1 1'b0;
|
if(ch_csr_re) int_src_r[0] <= #1 1'b0;
|
end
|
end
|
|
|
// Interrupt Output
|
// Interrupt Output
|
assign int = |(int_src_r & ch_csr_r3);
|
assign int = |(int_src_r & ch_csr_r3) & CH_EN;
|
|
|
// ---------------------------------------------------
|
// ---------------------------------------------------
|
// TXZS
|
// TXZS
|
always @(posedge clk)
|
always @(posedge clk)
|
if(CH_EN)
|
if(CH_EN)
|
Line 447... |
Line 451... |
// ---------------------------------------------------
|
// ---------------------------------------------------
|
// AM0
|
// AM0
|
always @(posedge clk or negedge rst)
|
always @(posedge clk or negedge rst)
|
if(!rst) ch_am0_r <= #1 28'hfffffff;
|
if(!rst) ch_am0_r <= #1 28'hfffffff;
|
else
|
else
|
if(ch_am0_we & HAVE_CBUF) ch_am0_r <= #1 wb_rf_din[31:4];
|
if(ch_am0_we) ch_am0_r <= #1 wb_rf_din[31:4];
|
|
|
// ---------------------------------------------------
|
// ---------------------------------------------------
|
// ADR1
|
// ADR1
|
always @(posedge clk)
|
always @(posedge clk)
|
if(CH_EN)
|
if(CH_EN)
|
Line 491... |
Line 495... |
// Software Pointer Match logic
|
// Software Pointer Match logic
|
|
|
assign cmp_adr = ch_csr[2] ? ch_adr1[30:2] : ch_adr0[30:2];
|
assign cmp_adr = ch_csr[2] ? ch_adr1[30:2] : ch_adr0[30:2];
|
|
|
always @(posedge clk)
|
always @(posedge clk)
|
ch_dis <= #1 (CH_EN & HAVE_CBUF) ? ((sw_pointer[30:2] == cmp_adr) & sw_pointer[31]) : 1'b0;
|
ch_dis <= #1 CH_EN & HAVE_CBUF & (sw_pointer[30:2] == cmp_adr) & sw_pointer[31];
|
|
|
endmodule
|
endmodule
|
|
|
|
|
module wb_dma_ch_rf_dummy(clk, rst,
|
module wb_dma_ch_rf_dummy(clk, rst,
|