mirror of https://github.com/openXC7/prjxray.git
fixedpnr: try FF attributes
Signed-off-by: John McMaster <JohnDMcMaster@gmail.com> Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
This commit is contained in:
parent
59c490c3d0
commit
20e9b80923
|
|
@ -1,8 +1,9 @@
|
|||
/.Xil/
|
||||
/design_fd?e/
|
||||
/design_fd?e.dcp
|
||||
/design_fd?e.bit
|
||||
/design_fd?e.bits
|
||||
/design_*/
|
||||
/design_*.dcp
|
||||
/design_*.bit
|
||||
/design_*.bits
|
||||
/design_*.segd
|
||||
/fixed.xdc
|
||||
/usage_statistics_webtalk.*
|
||||
/vivado*
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
set -ex
|
||||
vivado -mode batch -source runme.tcl
|
||||
for ff in fdre fdse fdce fdpe; do
|
||||
for ff in fdre fdse fdce fdce_inv fdpe; do
|
||||
${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design_$ff.bits -z -y design_$ff.bit
|
||||
python3 ../../utils/segprint.py design_$ff.bits >design_$ff.seg
|
||||
${XRAY_SEGPRINT} design_$ff.bits >design_$ff.seg
|
||||
done
|
||||
|
||||
diff -u design_fdre.bits design_fdse.bits
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ write_bitstream -force design_fdre.bit
|
|||
|
||||
close_project
|
||||
|
||||
foreach variant {fdse fdce fdpe} {
|
||||
foreach variant {fdse fdce fdce_inv fdpe} {}
|
||||
create_project -force -part $::env(XRAY_PART) design_${variant} design_${variant}
|
||||
read_verilog top_${variant}.v
|
||||
read_xdc fixed.xdc
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
|
||||
module top(input clk, ce, sr, d, output q);
|
||||
/*
|
||||
IS_C_INVERTED=1'b1, IS_D_INVERTED=1'b1, IS_CLR_INVERTED=1'b1,
|
||||
ERROR: [Place 30-1008] Instance ff has an inverted D pin which is expected to be used as an I/O flop.
|
||||
However, it is used as a regular flop.
|
||||
|
||||
cliff didn't have constrained, also got annoyed
|
||||
he is using slightly later version
|
||||
ERROR: [Place 30-1008] Instance roi/ffs[0].genblk1.genblk1.ff
|
||||
has an inverted D pin which is unsupported in the UltraScale and UltraScale+ architectures.
|
||||
|
||||
which is fine except...he's using 7 series
|
||||
|
||||
|
||||
and now...
|
||||
IS_C_INVERTED=1'b1, IS_D_INVERTED=1'b0, IS_CLR_INVERTED=1'b1,
|
||||
ERROR: [Place 30-488] Failed to commit 1 instances:
|
||||
ff with block Id: 4 (FF) at SLICE_X0Y104
|
||||
ERROR: [Place 30-99] Placer failed with error: 'failed to commit all instances'
|
||||
|
||||
IS_C_INVERTED=1'b0, IS_D_INVERTED=1'b0, IS_CLR_INVERTED=1'b1,
|
||||
failed with same message
|
||||
|
||||
IS_C_INVERTED=1'b1, IS_D_INVERTED=1'b0, IS_CLR_INVERTED=1'b0,
|
||||
built!
|
||||
diff design_fdce.segd design_fdce_inv.segd
|
||||
> tag CLBLL_L.SLICEL_X0.CLKINV
|
||||
expected
|
||||
|
||||
IS_C_INVERTED=1'b0, IS_D_INVERTED=1'b1, IS_CLR_INVERTED=1'b0,
|
||||
ERROR: [Place 30-1008] Instance ff has an inverted D pin which is expected to be used as an I/O flop.
|
||||
However, it is used as a regular flop.
|
||||
ERROR: [Place 30-99] Placer failed with error: 'IO Clock Placer stopped due to earlier errors.
|
||||
Implementation Feasibility check failed, Please see the previously displayed individual error or warning messages for more details.'
|
||||
*/
|
||||
(*
|
||||
IS_C_INVERTED=1'b1, IS_D_INVERTED=1'b0, IS_CLR_INVERTED=1'b0,
|
||||
LOC="SLICE_X16Y100", BEL="AFF", DONT_TOUCH
|
||||
*)
|
||||
FDCE ff (
|
||||
.C(clk),
|
||||
.CE(ce),
|
||||
.CLR(sr),
|
||||
.D(d),
|
||||
.Q(q)
|
||||
);
|
||||
endmodule
|
||||
|
||||
Loading…
Reference in New Issue