Line 362... |
Line 362... |
// Addresses ...
|
// Addresses ...
|
// 0000 xxxx configuration/control registers
|
// 0000 xxxx configuration/control registers
|
// 001x xxxx Down-sampler taps (64 taps, 2 at a time)
|
// 001x xxxx Down-sampler taps (64 taps, 2 at a time)
|
// 1xxx xxxx Up-sampler taps
|
// 1xxx xxxx Up-sampler taps
|
// 1 xxxx xxxx xxxx xxxx xxxx Up-sampler taps
|
// 1 xxxx xxxx xxxx xxxx xxxx Up-sampler taps
|
|
|
wire pre_io, pre_pwm, pre_uart, pre_flctl, pre_scop;
|
wire pre_io, pre_pwm, pre_uart, pre_flctl, pre_scop;
|
assign io_bank = (wb_cyc)&&(wb_addr[31:5] == 27'h8);
|
assign io_bank = (wb_cyc)&&(wb_addr[31:5] == 27'h8);
|
assign pre_io = (~pre_flctl)&&(~pre_pwm)&&(~pre_uart)&&(~pre_scop);
|
assign pre_io = (~pre_flctl)&&(~pre_pwm)&&(~pre_uart)&&(~pre_scop);
|
assign io_sel = (io_bank)&&(pre_io);
|
assign io_sel = (io_bank)&&(pre_io);
|
assign pre_pwm = (wb_addr[4: 1]== 4'h4);
|
assign pre_pwm = (wb_addr[4: 1]== 4'h4);
|
Line 471... |
Line 470... |
// samples. If we are running at 80 MHz, then divide that by the
|
// samples. If we are running at 80 MHz, then divide that by the
|
// sample rate to get the first parameter for the PWM device. The
|
// sample rate to get the first parameter for the PWM device. The
|
// second parameter is zero or one, indicating whether or not the
|
// second parameter is zero or one, indicating whether or not the
|
// audio rate can be adjusted (1), or whether it is fixed within the
|
// audio rate can be adjusted (1), or whether it is fixed within the
|
// build (0).
|
// build (0).
|
wbpwmaudio #(16'h270f,0,16) // 8 kHz, fixed audio rate
|
`ifdef XULA25
|
|
wbpwmaudio #(16'd1813,1) // 44.1 kHz, user adjustable
|
|
`else
|
|
wbpwmaudio #(16'h2710,0,16) // 8 kHz, fixed audio rate
|
|
`endif
|
pwmdev(i_clk,
|
pwmdev(i_clk,
|
wb_cyc, (wb_stb)&&(pwm_sel), wb_we, wb_addr[0],
|
wb_cyc, (wb_stb)&&(pwm_sel), wb_we, wb_addr[0],
|
wb_data, pwm_ack, pwm_stall, pwm_data, o_pwm, pwm_int);
|
wb_data, pwm_ack, pwm_stall, pwm_data, o_pwm, pwm_int);
|
|
|
|
|
Line 550... |
Line 553... |
assign o_sf_cs_n = flash_cs_n;
|
assign o_sf_cs_n = flash_cs_n;
|
assign o_sd_cs_n = 1'b1;
|
assign o_sd_cs_n = 1'b1;
|
assign o_spi_sck = flash_sck;
|
assign o_spi_sck = flash_sck;
|
assign o_spi_mosi = flash_mosi;
|
assign o_spi_mosi = flash_mosi;
|
assign spi_user = 1'b0;
|
assign spi_user = 1'b0;
|
|
assign flash_grant = 1'b1;
|
|
assign sdcard_grant= 1'b0;
|
`endif // SDCARD_ACCESS && FLASH_ACCESS
|
`endif // SDCARD_ACCESS && FLASH_ACCESS
|
`else // FLASH_ACCESS
|
`else // FLASH_ACCESS
|
`ifdef SDCARD_ACCESS
|
`ifdef SDCARD_ACCESS
|
// SDCard access, but no flash access
|
// SDCard access, but no flash access
|
assign o_sf_cs_n = 1'b1;
|
assign o_sf_cs_n = 1'b1;
|
assign o_sd_cs_n = sdcard_cs_n;
|
assign o_sd_cs_n = sdcard_cs_n;
|
assign o_spi_sck = sdcard_sck;
|
assign o_spi_sck = sdcard_sck;
|
assign o_spi_mosi = sdcard_mosi;
|
assign o_spi_mosi = sdcard_mosi;
|
assign spi_user = 1'b1;
|
assign spi_user = 1'b1;
|
|
assign flash_grant = 1'b0;
|
|
assign sdcard_grant= 1'b1;
|
`else
|
`else
|
// No SPI access ...
|
// No SPI access ...
|
assign o_sf_cs_n = 1'b1;
|
assign o_sf_cs_n = 1'b1;
|
assign o_sd_cs_n = 1'b1;
|
assign o_sd_cs_n = 1'b1;
|
assign o_spi_sck = 1'b1;
|
assign o_spi_sck = 1'b1;
|
assign o_spi_mosi = 1'b1;
|
assign o_spi_mosi = 1'b1;
|
assign spi_user = 1'b0;
|
assign spi_user = 1'b0;
|
|
assign flash_grant = 1'b0;
|
|
assign sdcard_grant= 1'b0;
|
`endif // SDCARD_ACCESS, w/o FLASH_ACCESS
|
`endif // SDCARD_ACCESS, w/o FLASH_ACCESS
|
`endif // !FLASH_ACCESS
|
`endif // !FLASH_ACCESS
|
|
|
|
|
//
|
//
|