diff --git a/tridoracpu/tridoracpu.srcs/dram_bridge.v b/tridoracpu/tridoracpu.srcs/dram_bridge.v
index 9bd2a92..d4f798b 100644
--- a/tridoracpu/tridoracpu.srcs/dram_bridge.v
+++ b/tridoracpu/tridoracpu.srcs/dram_bridge.v
@@ -165,7 +165,7 @@ module dram_bridge #(ADDR_WIDTH = 32, WIDTH = 32)
assign app_wdf_data = { {4{mem_write_data}} };
assign mem_wait = (dram_read_enable & ~read_inprogress) |
- (mem_write_enable & (~app_wdf_rdy | ~app_rdy)) |
+ (mem_write_enable & ~dcache_hit & (~app_wdf_rdy | ~app_rdy)) |
(read_inprogress & ~app_rd_data_valid);
assign app_en = (dram_read_enable & ~read_inprogress) |
diff --git a/tridoracpu/tridoracpu.srcs/tdraudio.v b/tridoracpu/tridoracpu.srcs/tdraudio.v
index cef16da..9e3721f 100644
--- a/tridoracpu/tridoracpu.srcs/tdraudio.v
+++ b/tridoracpu/tridoracpu.srcs/tdraudio.v
@@ -1,8 +1,7 @@
`timescale 1ns / 1ps
-// waveform generator module (pulse wave or noise)
-module wavegen #(DATA_WIDTH=32, CLOCK_DIV_WIDTH=22,
- AMP_WIDTH=16, AMP_BIAS=32768) (
+// waveform generator module (only pulse wave for now)
+module wavegen #(DATA_WIDTH=32, CLOCK_DIV_WIDTH=22, AMP_WIDTH=16) (
input wire clk,
input wire reset,
input wire [1:0] reg_sel,
@@ -19,6 +18,11 @@ module wavegen #(DATA_WIDTH=32, CLOCK_DIV_WIDTH=22,
localparam TDRAU_REG_CLK = 1; /* clock divider register */
localparam TDRAU_REG_AMP = 2; /* amplitude (volume) register */
+// localparam LFSR_WIDTH = 15;
+// localparam LFSR_TAP_IDX_1 = 3;
+// localparam LFSR_TAP_IDX_2 = 0;
+// localparam LFSR_INIT = 'h7672;
+
// localparam LFSR_WIDTH = 18;
// localparam LFSR_TAP_IDX_1 = 17;
// localparam LFSR_TAP_IDX_2 = 10;
@@ -134,7 +138,7 @@ module wavegen #(DATA_WIDTH=32, CLOCK_DIV_WIDTH=22,
begin
if (reset)
begin
- amp_out <= AMP_BIAS;
+ amp_out <= 0;
amp_phase <= 1;
end
else
@@ -149,7 +153,7 @@ module wavegen #(DATA_WIDTH=32, CLOCK_DIV_WIDTH=22,
end
end
else
- amp_out <= AMP_BIAS;
+ amp_out <= 0;
// reset phase bit when enabling the channel
if (ctl_reg_write && wr_data[0])
@@ -210,8 +214,6 @@ module tdraudio #(DATA_WIDTH=32) (
wire running = chan0_running || chan1_running || chan2_running || chan3_running;
- reg was_running;
-
assign rd_data = chan0_sel ? chan0_rd_data :
chan1_sel ? chan1_rd_data :
chan2_sel ? chan2_rd_data :
@@ -245,15 +247,6 @@ module tdraudio #(DATA_WIDTH=32) (
assign shutdown_n = running;
- /* detect shutdown */
- always @(posedge clk)
- begin
- if (reset)
- was_running <= 0;
- else
- was_running <= running;
- end
-
/* delta-sigma DAC */
always @(posedge clk)
begin
@@ -262,9 +255,6 @@ module tdraudio #(DATA_WIDTH=32) (
else
if (running)
deltasigma_acc <= deltasigma_acc[DAC_WIDTH-1:0] + amp_sum;
- else
- if (!running && was_running) // clear accumulator on shutdown
- deltasigma_acc <= 0;
end
/* 1-bit audio output */
diff --git a/tridoracpu/tridoracpu.xpr b/tridoracpu/tridoracpu.xpr
index 15b43f2..9541c3d 100644
--- a/tridoracpu/tridoracpu.xpr
+++ b/tridoracpu/tridoracpu.xpr
@@ -378,10 +378,10 @@
-
+
-
- Uses multiple algorithms for optimization, placement, and routing to get potentially better results.
+
+ To compensate for optimistic delay estimation, add extra delay cost to long distance and high fanout connections. low setting, least pessimistic)
@@ -389,14 +389,14 @@
-
+
-
+
-
+