mirror of https://github.com/YosysHQ/yosys.git
machxo2: Improve FACADE_FF simulation model.
This commit is contained in:
parent
427fed23ee
commit
cc52eb53cd
|
@ -24,7 +24,8 @@ module FACADE_FF #(
|
||||||
parameter LSRMUX = "LSR",
|
parameter LSRMUX = "LSR",
|
||||||
parameter LSRONMUX = "LSRMUX",
|
parameter LSRONMUX = "LSRMUX",
|
||||||
parameter SRMODE = "LSR_OVER_CE",
|
parameter SRMODE = "LSR_OVER_CE",
|
||||||
parameter REGSET = "SET"
|
parameter REGSET = "SET",
|
||||||
|
parameter REGMODE = "FF"
|
||||||
) (
|
) (
|
||||||
input CLK, DI, LSR, CE,
|
input CLK, DI, LSR, CE,
|
||||||
output reg Q
|
output reg Q
|
||||||
|
@ -41,22 +42,29 @@ module FACADE_FF #(
|
||||||
endgenerate
|
endgenerate
|
||||||
|
|
||||||
wire muxlsr = (LSRMUX == "INV") ? ~LSR : LSR;
|
wire muxlsr = (LSRMUX == "INV") ? ~LSR : LSR;
|
||||||
|
wire muxlsron = (LSRONMUX == "LSRMUX") ? muxlsr : 1'b0;
|
||||||
wire muxclk = (CLKMUX == "INV") ? ~CLK : CLK;
|
wire muxclk = (CLKMUX == "INV") ? ~CLK : CLK;
|
||||||
wire srval = (REGSET == "SET") ? 1'b1 : 1'b0;
|
wire srval = (REGSET == "SET") ? 1'b1 : 1'b0;
|
||||||
|
|
||||||
generate
|
generate
|
||||||
|
if (REGMODE == "FF") begin
|
||||||
if (SRMODE == "ASYNC") begin
|
if (SRMODE == "ASYNC") begin
|
||||||
always @(posedge muxclk, posedge muxlsr)
|
always @(posedge muxclk, posedge muxlsron)
|
||||||
if (muxlsr)
|
if (muxlsron)
|
||||||
Q <= srval;
|
Q <= srval;
|
||||||
else if (muxce)
|
else if (muxce)
|
||||||
Q <= DI;
|
Q <= DI;
|
||||||
end else begin
|
end else begin
|
||||||
always @(posedge muxclk)
|
always @(posedge muxclk)
|
||||||
if (muxlsr)
|
if (muxlsron)
|
||||||
Q <= srval;
|
Q <= srval;
|
||||||
else if (muxce)
|
else if (muxce)
|
||||||
Q <= DI;
|
Q <= DI;
|
||||||
end
|
end
|
||||||
|
end else if (REGMODE == "LATCH") begin
|
||||||
|
ERROR_UNSUPPORTED_FF_MODE error();
|
||||||
|
end else begin
|
||||||
|
ERROR_UNKNOWN_FF_MODE error();
|
||||||
|
end
|
||||||
endgenerate
|
endgenerate
|
||||||
endmodule
|
endmodule
|
||||||
|
|
Loading…
Reference in New Issue