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
|
||||
|
||||
/* I/O QoS select register */
|
||||
reg IOQoSCSr;
|
||||
always @(posedge CLK) IOQoSCSr <= IOQoSCS;
|
||||
|
||||
/* QoS select register */
|
||||
reg QoSCSr;
|
||||
always @(posedge CLK) QoSCSr <= IOQoSCS || SndQoSCS;
|
||||
reg SndQoSCSr;
|
||||
always @(posedge CLK) SndQoSCSr <= SndQoSCS;
|
||||
|
||||
/* I/O QoS timer */
|
||||
reg [2:0] IOQS;
|
||||
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 (EFall && TimerTC) IOQS[2:0] <= IOQS[2] ? 0 : IOQS+1;
|
||||
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 */
|
||||
always @(posedge CLK) if (!BACT) IOQoSEN <= IOQS!=0;
|
||||
|
||||
/* Sound QoS enable */
|
||||
always @(posedge CLK) if (!BACT) SndQoSEN <= SndQS!=0;
|
||||
|
||||
/* MC68K clock enable */
|
||||
always @(posedge CLK) MCKE <= BACT || BACTr || (IOQS==0) || C8MFall;
|
||||
|
||||
/* Sound QoS removed */
|
||||
assign SndQoSReady = 1;
|
||||
/* Sound QoS wait state control */
|
||||
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 */
|
||||
wire ISTC = EFall && TimerTC && LTimerTC;
|
||||
|
Loading…
Reference in New Issue
Block a user