mirror of
https://github.com/garrettsworkshop/Warp-SE.git
synced 2024-11-22 08:32:09 +00:00
Additional sound QoS
This commit is contained in:
parent
835ee81f0d
commit
3a8f07e71b
37
cpld/CNT.v
37
cpld/CNT.v
@ -71,26 +71,53 @@ module CNT(
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
/* I/O QoS select register */
|
||||||
|
reg IOQoSCSr;
|
||||||
|
always @(posedge CLK) IOQoSCSr <= IOQoSCS;
|
||||||
|
|
||||||
/* QoS select register */
|
/* QoS select register */
|
||||||
reg QoSCSr;
|
reg SndQoSCSr;
|
||||||
always @(posedge CLK) QoSCSr <= IOQoSCS || SndQoSCS;
|
always @(posedge CLK) SndQoSCSr <= SndQoSCS;
|
||||||
|
|
||||||
/* I/O QoS timer */
|
/* I/O QoS timer */
|
||||||
reg [2:0] IOQS;
|
reg [2:0] IOQS;
|
||||||
always @(posedge CLK) begin
|
always @(posedge CLK) begin
|
||||||
if (!nRESr || (BACTr && QoSCSr)) IOQS[2:0] <= 1;
|
if (!nRESr || (BACTr && (IOQoSCSr || SndQoSCSr))) IOQS[2:0] <= 1;
|
||||||
else if (IOQS==0) IOQS[2:0] <= 0;
|
else if (IOQS==0) IOQS[2:0] <= 0;
|
||||||
else if (EFall && TimerTC) IOQS[2:0] <= IOQS[2] ? 0 : IOQS+1;
|
else if (EFall && TimerTC) IOQS[2:0] <= IOQS[2] ? 0 : IOQS+1;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
/* Sound QoS timer */
|
||||||
|
reg [1:0] SndQS;
|
||||||
|
always @(posedge CLK) begin
|
||||||
|
if (BACTr && SndQoSCSr) SndQS[1:0] <= 1;
|
||||||
|
else if (BACTr && IOQoSCSr) SndQS[1:0] <= 0;
|
||||||
|
else if (SndQS==0) SndQS[1:0] <= 0;
|
||||||
|
else if (EFall && TimerTC) SndQS[1:0] <= SndQS+1;
|
||||||
|
end
|
||||||
|
|
||||||
/* I/O QoS enable */
|
/* I/O QoS enable */
|
||||||
always @(posedge CLK) if (!BACT) IOQoSEN <= IOQS!=0;
|
always @(posedge CLK) if (!BACT) IOQoSEN <= IOQS!=0;
|
||||||
|
|
||||||
|
/* Sound QoS enable */
|
||||||
|
always @(posedge CLK) if (!BACT) SndQoSEN <= SndQS!=0;
|
||||||
|
|
||||||
/* MC68K clock enable */
|
/* MC68K clock enable */
|
||||||
always @(posedge CLK) MCKE <= BACT || BACTr || (IOQS==0) || C8MFall;
|
always @(posedge CLK) MCKE <= BACT || BACTr || (IOQS==0) || C8MFall;
|
||||||
|
|
||||||
/* Sound QoS removed */
|
/* Sound QoS wait state control */
|
||||||
assign SndQoSReady = 1;
|
reg [4:0] Wait;
|
||||||
|
always @(posedge CLK) begin
|
||||||
|
if (!BACT) Wait <= 0;
|
||||||
|
else Wait <= Wait+1;
|
||||||
|
end
|
||||||
|
|
||||||
|
/* Sound QoS ready control */
|
||||||
|
always @(posedge CLK) begin
|
||||||
|
if (!BACT) SndQoSReady <= !SndQoSEN;
|
||||||
|
else if (BACTr) IOQoSCSr <= 1;
|
||||||
|
else if (Wait==5'h1F) SndQoSReady <= 1;
|
||||||
|
end
|
||||||
|
|
||||||
/* Startup sequence state control */
|
/* Startup sequence state control */
|
||||||
wire ISTC = EFall && TimerTC && LTimerTC;
|
wire ISTC = EFall && TimerTC && LTimerTC;
|
||||||
|
Loading…
Reference in New Issue
Block a user