mirror of
https://github.com/garrettsworkshop/Warp-SE.git
synced 2025-02-16 16:30:29 +00:00
Register /DTACK at C16M clock edge instead
This commit is contained in:
parent
b240a054f2
commit
d14ca62644
19
cpld/IOBM.v
19
cpld/IOBM.v
@ -39,22 +39,17 @@ module IOBM(
|
|||||||
/* I/O bus state */
|
/* I/O bus state */
|
||||||
reg [2:0] IOS = 0;
|
reg [2:0] IOS = 0;
|
||||||
reg IOS0;
|
reg IOS0;
|
||||||
|
|
||||||
/* Cycle termination signal enable */
|
/* DTACK/"ETACK"/BERR/reset synchronization */
|
||||||
reg TermEN;
|
|
||||||
always @(posedge C16M) begin
|
|
||||||
TermEN <= IOS==2 || IOS==3 || IOS==4 || IOS==5;
|
|
||||||
end
|
|
||||||
|
|
||||||
/* DTACK/"ETACK"/BERR/reset falling edge synchronization */
|
|
||||||
reg IODONEr;
|
reg IODONEr;
|
||||||
always @(negedge C8M, posedge nAS) begin
|
always @(posedge C16M) begin
|
||||||
if (nAS) IODONEr <= 0;
|
if ((IOS==3 || IOS==5) && !C8Mr) begin
|
||||||
else IODONEr <= TermEN && (!nDTACK || ETACK || !nBERR || !nRES);
|
IODONEr <= !nDTACK || ETACK || !nBERR || !nRES;
|
||||||
|
end else if (IOS==0) IODONEr <= 0;
|
||||||
end
|
end
|
||||||
|
|
||||||
/* DTACK/"ETACK"/BERR/reset output */
|
/* DTACK/"ETACK"/BERR/reset output */
|
||||||
assign IODONE = IODONEr && TermEN;
|
assign IODONE = IODONEr;
|
||||||
|
|
||||||
/* I/O bus control */
|
/* I/O bus control */
|
||||||
always @(posedge C16M) case (IOS[2:0])
|
always @(posedge C16M) case (IOS[2:0])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user