mirror of https://github.com/YosysHQ/yosys.git
Merge remote-tracking branch 'origin/clifford/fix1381' into xc7dsp
This commit is contained in:
commit
b88f0f6450
|
@ -27,6 +27,7 @@ Yosys 0.9 .. Yosys 0.9-dev
|
||||||
- Improve attribute and parameter encoding in JSON to avoid ambiguities between
|
- Improve attribute and parameter encoding in JSON to avoid ambiguities between
|
||||||
bit vectors and strings containing [01xz]*
|
bit vectors and strings containing [01xz]*
|
||||||
- Added "clkbufmap" pass
|
- Added "clkbufmap" pass
|
||||||
|
- Added "extractinv" pass and "invertible_pin" attribute
|
||||||
- Added "synth_xilinx -family xc6s" for Spartan 6 support (experimental)
|
- Added "synth_xilinx -family xc6s" for Spartan 6 support (experimental)
|
||||||
- Added "synth_xilinx -ise" (experimental)
|
- Added "synth_xilinx -ise" (experimental)
|
||||||
- Added "synth_xilinx -iopad"
|
- Added "synth_xilinx -iopad"
|
||||||
|
|
|
@ -347,6 +347,12 @@ Verilog Attributes and non-standard features
|
||||||
automatic clock buffer insertion by ``clkbufmap``. This behaviour can be
|
automatic clock buffer insertion by ``clkbufmap``. This behaviour can be
|
||||||
overridden by providing a custom selection to ``clkbufmap``.
|
overridden by providing a custom selection to ``clkbufmap``.
|
||||||
|
|
||||||
|
- The ``invertible_pin`` attribute can be set on a port to mark it as
|
||||||
|
invertible via a cell parameter. The name of the inversion parameter
|
||||||
|
is specified as the value of this attribute. The value of the inversion
|
||||||
|
parameter must be of the same width as the port, with 1 indicating
|
||||||
|
an inverted bit and 0 indicating a non-inverted bit.
|
||||||
|
|
||||||
- The ``iopad_external_pin`` attribute on a blackbox module's port marks
|
- The ``iopad_external_pin`` attribute on a blackbox module's port marks
|
||||||
it as the external-facing pin of an I/O pad, and prevents ``iopadmap``
|
it as the external-facing pin of an I/O pad, and prevents ``iopadmap``
|
||||||
from inserting another pad cell on it.
|
from inserting another pad cell on it.
|
||||||
|
|
|
@ -40,6 +40,7 @@ OBJS += passes/techmap/attrmap.o
|
||||||
OBJS += passes/techmap/zinit.o
|
OBJS += passes/techmap/zinit.o
|
||||||
OBJS += passes/techmap/dff2dffs.o
|
OBJS += passes/techmap/dff2dffs.o
|
||||||
OBJS += passes/techmap/flowmap.o
|
OBJS += passes/techmap/flowmap.o
|
||||||
|
OBJS += passes/techmap/extractinv.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
GENFILES += passes/techmap/techmap.inc
|
GENFILES += passes/techmap/techmap.inc
|
||||||
|
|
|
@ -0,0 +1,123 @@
|
||||||
|
/*
|
||||||
|
* yosys -- Yosys Open SYnthesis Suite
|
||||||
|
*
|
||||||
|
* Copyright (C) 2012 Clifford Wolf <clifford@clifford.at>
|
||||||
|
* Copyright (C) 2019 Marcin Kościelnicki <mwk@0x04.net>
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "kernel/yosys.h"
|
||||||
|
#include "kernel/sigtools.h"
|
||||||
|
|
||||||
|
USING_YOSYS_NAMESPACE
|
||||||
|
PRIVATE_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
void split_portname_pair(std::string &port1, std::string &port2)
|
||||||
|
{
|
||||||
|
size_t pos = port1.find_first_of(':');
|
||||||
|
if (pos != std::string::npos) {
|
||||||
|
port2 = port1.substr(pos+1);
|
||||||
|
port1 = port1.substr(0, pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ExtractinvPass : public Pass {
|
||||||
|
ExtractinvPass() : Pass("extractinv", "extract explicit inverter cells for invertible cell pins") { }
|
||||||
|
void help() YS_OVERRIDE
|
||||||
|
{
|
||||||
|
// |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
|
||||||
|
log("\n");
|
||||||
|
log(" extractinv [options] [selection]\n");
|
||||||
|
log("\n");
|
||||||
|
log("Searches the design for all cells with invertible pins controlled by a cell\n");
|
||||||
|
log("parameter (eg. IS_CLK_INVERTED on many Xilinx cells) and removes the parameter.\n");
|
||||||
|
log("If the parameter was set to 1, inserts an explicit inverter cell in front of\n");
|
||||||
|
log("the pin instead. Normally used for output to ISE, which does not support the\n");
|
||||||
|
log("inversion parameters.\n");
|
||||||
|
log("\n");
|
||||||
|
log("To mark a cell port as invertible, use (* invertible_pin = \"param_name\" *)\n");
|
||||||
|
log("on the wire in the blackbox module. The parameter value should have\n");
|
||||||
|
log("the same width as the port, and will be effectively XORed with it.\n");
|
||||||
|
log("\n");
|
||||||
|
log(" -inv <celltype> <portname_out>:<portname_in>\n");
|
||||||
|
log(" Specifies the cell type to use for the inverters and its port names.\n");
|
||||||
|
log(" This option is required.\n");
|
||||||
|
log("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE
|
||||||
|
{
|
||||||
|
log_header(design, "Executing EXTRACTINV pass (extracting pin inverters).\n");
|
||||||
|
|
||||||
|
std::string inv_celltype, inv_portname, inv_portname2;
|
||||||
|
|
||||||
|
size_t argidx;
|
||||||
|
for (argidx = 1; argidx < args.size(); argidx++)
|
||||||
|
{
|
||||||
|
std::string arg = args[argidx];
|
||||||
|
if (arg == "-inv" && argidx+2 < args.size()) {
|
||||||
|
inv_celltype = args[++argidx];
|
||||||
|
inv_portname = args[++argidx];
|
||||||
|
split_portname_pair(inv_portname, inv_portname2);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
extra_args(args, argidx, design);
|
||||||
|
|
||||||
|
if (inv_celltype.empty())
|
||||||
|
log_error("The -inv option is required.\n");
|
||||||
|
|
||||||
|
for (auto module : design->selected_modules())
|
||||||
|
{
|
||||||
|
for (auto cell : module->selected_cells())
|
||||||
|
for (auto port : cell->connections()) {
|
||||||
|
auto cell_module = design->module(cell->type);
|
||||||
|
if (!cell_module)
|
||||||
|
continue;
|
||||||
|
auto cell_wire = cell_module->wire(port.first);
|
||||||
|
if (!cell_wire)
|
||||||
|
continue;
|
||||||
|
auto it = cell_wire->attributes.find("\\invertible_pin");
|
||||||
|
if (it == cell_wire->attributes.end())
|
||||||
|
continue;
|
||||||
|
IdString param_name = RTLIL::escape_id(it->second.decode_string());
|
||||||
|
auto it2 = cell->parameters.find(param_name);
|
||||||
|
// Inversion not used -- skip.
|
||||||
|
if (it2 == cell->parameters.end())
|
||||||
|
continue;
|
||||||
|
SigSpec sig = port.second;
|
||||||
|
if (it2->second.size() != sig.size())
|
||||||
|
log_error("The inversion parameter needs to be the same width as the port (%s.%s port %s parameter %s)", log_id(module->name), log_id(cell->type), log_id(port.first), log_id(param_name));
|
||||||
|
RTLIL::Const invmask = it2->second;
|
||||||
|
cell->parameters.erase(param_name);
|
||||||
|
if (invmask.is_fully_zero())
|
||||||
|
continue;
|
||||||
|
Wire *iwire = module->addWire(NEW_ID, sig.size());
|
||||||
|
for (int i = 0; i < sig.size(); i++)
|
||||||
|
if (invmask[i] == State::S1) {
|
||||||
|
RTLIL::Cell *icell = module->addCell(NEW_ID, RTLIL::escape_id(inv_celltype));
|
||||||
|
icell->setPort(RTLIL::escape_id(inv_portname), SigSpec(iwire, i));
|
||||||
|
icell->setPort(RTLIL::escape_id(inv_portname2), sig[i]);
|
||||||
|
log("Inserting %s on %s.%s.%s[%d].\n", inv_celltype.c_str(), log_id(module), log_id(cell->type), log_id(port.first), i);
|
||||||
|
sig[i] = SigBit(iwire, i);
|
||||||
|
}
|
||||||
|
cell->setPort(port.first, sig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ExtractinvPass;
|
||||||
|
|
||||||
|
PRIVATE_NAMESPACE_END
|
|
@ -206,10 +206,27 @@ struct TechmapWorker
|
||||||
|
|
||||||
std::map<RTLIL::IdString, RTLIL::IdString> positional_ports;
|
std::map<RTLIL::IdString, RTLIL::IdString> positional_ports;
|
||||||
dict<Wire*, IdString> temp_renamed_wires;
|
dict<Wire*, IdString> temp_renamed_wires;
|
||||||
|
pool<SigBit> autopurge_tpl_bits;
|
||||||
|
|
||||||
for (auto &it : tpl->wires_) {
|
for (auto &it : tpl->wires_)
|
||||||
|
{
|
||||||
if (it.second->port_id > 0)
|
if (it.second->port_id > 0)
|
||||||
positional_ports[stringf("$%d", it.second->port_id)] = it.first;
|
{
|
||||||
|
IdString posportname = stringf("$%d", it.second->port_id);
|
||||||
|
positional_ports[posportname] = it.first;
|
||||||
|
|
||||||
|
if (!flatten_mode && it.second->get_bool_attribute(ID(techmap_autopurge)) &&
|
||||||
|
(!cell->hasPort(it.second->name) || !GetSize(cell->getPort(it.second->name))) &&
|
||||||
|
(!cell->hasPort(posportname) || !GetSize(cell->getPort(posportname))))
|
||||||
|
{
|
||||||
|
if (sigmaps.count(tpl) == 0)
|
||||||
|
sigmaps[tpl].set(tpl);
|
||||||
|
|
||||||
|
for (auto bit : sigmaps.at(tpl)(it.second))
|
||||||
|
if (bit.wire != nullptr)
|
||||||
|
autopurge_tpl_bits.insert(it.second);
|
||||||
|
}
|
||||||
|
}
|
||||||
IdString w_name = it.second->name;
|
IdString w_name = it.second->name;
|
||||||
apply_prefix(cell->name, w_name);
|
apply_prefix(cell->name, w_name);
|
||||||
RTLIL::Wire *w = module->wire(w_name);
|
RTLIL::Wire *w = module->wire(w_name);
|
||||||
|
@ -232,6 +249,8 @@ struct TechmapWorker
|
||||||
w->port_input = false;
|
w->port_input = false;
|
||||||
w->port_output = false;
|
w->port_output = false;
|
||||||
w->port_id = 0;
|
w->port_id = 0;
|
||||||
|
if (!flatten_mode)
|
||||||
|
w->attributes.erase(ID(techmap_autopurge));
|
||||||
if (it.second->get_bool_attribute(ID(_techmap_special_)))
|
if (it.second->get_bool_attribute(ID(_techmap_special_)))
|
||||||
w->attributes.clear();
|
w->attributes.clear();
|
||||||
if (w->attributes.count(ID(src)))
|
if (w->attributes.count(ID(src)))
|
||||||
|
@ -362,11 +381,31 @@ struct TechmapWorker
|
||||||
if (!flatten_mode && c->type.begins_with("\\$"))
|
if (!flatten_mode && c->type.begins_with("\\$"))
|
||||||
c->type = c->type.substr(1);
|
c->type = c->type.substr(1);
|
||||||
|
|
||||||
for (auto &it2 : c->connections_) {
|
vector<IdString> autopurge_ports;
|
||||||
apply_prefix(cell->name, it2.second, module);
|
|
||||||
port_signal_map.apply(it2.second);
|
for (auto &it2 : c->connections_)
|
||||||
|
{
|
||||||
|
bool autopurge = false;
|
||||||
|
if (!autopurge_tpl_bits.empty()) {
|
||||||
|
autopurge = GetSize(it2.second) != 0;
|
||||||
|
for (auto &bit : sigmaps.at(tpl)(it2.second))
|
||||||
|
if (!autopurge_tpl_bits.count(bit)) {
|
||||||
|
autopurge = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (autopurge) {
|
||||||
|
autopurge_ports.push_back(it2.first);
|
||||||
|
} else {
|
||||||
|
apply_prefix(cell->name, it2.second, module);
|
||||||
|
port_signal_map.apply(it2.second);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (auto &it2 : autopurge_ports)
|
||||||
|
c->unsetPort(it2);
|
||||||
|
|
||||||
if (c->type.in(ID($memrd), ID($memwr), ID($meminit))) {
|
if (c->type.in(ID($memrd), ID($memwr), ID($meminit))) {
|
||||||
IdString memid = c->getParam(ID(MEMID)).decode_string();
|
IdString memid = c->getParam(ID(MEMID)).decode_string();
|
||||||
log_assert(memory_renames.count(memid) != 0);
|
log_assert(memory_renames.count(memid) != 0);
|
||||||
|
@ -1064,6 +1103,11 @@ struct TechmapPass : public Pass {
|
||||||
log("will create a wrapper for the cell and then run the command string that the\n");
|
log("will create a wrapper for the cell and then run the command string that the\n");
|
||||||
log("attribute is set to on the wrapper module.\n");
|
log("attribute is set to on the wrapper module.\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
|
log("When a port on a module in the map file has the 'techmap_autopurge' attribute\n");
|
||||||
|
log("set, and that port is not connected in the instantiation that is mapped, then\n");
|
||||||
|
log("then a cell port connected only to such wires will be omitted in the mapped\n");
|
||||||
|
log("version of the circuit.\n");
|
||||||
|
log("\n");
|
||||||
log("All wires in the modules from the map file matching the pattern _TECHMAP_*\n");
|
log("All wires in the modules from the map file matching the pattern _TECHMAP_*\n");
|
||||||
log("or *._TECHMAP_* are special wires that are used to pass instructions from\n");
|
log("or *._TECHMAP_* are special wires that are used to pass instructions from\n");
|
||||||
log("the mapping module to the techmap command. At the moment the following special\n");
|
log("the mapping module to the techmap command. At the moment the following special\n");
|
||||||
|
|
|
@ -60,9 +60,18 @@ module BUFGCTRL(
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O,
|
output O,
|
||||||
input I0, input I1,
|
input I0, input I1,
|
||||||
input S0, input S1,
|
(* invertible_pin = "IS_S0_INVERTED" *)
|
||||||
input CE0, input CE1,
|
input S0,
|
||||||
input IGNORE0, input IGNORE1);
|
(* invertible_pin = "IS_S1_INVERTED" *)
|
||||||
|
input S1,
|
||||||
|
(* invertible_pin = "IS_CE0_INVERTED" *)
|
||||||
|
input CE0,
|
||||||
|
(* invertible_pin = "IS_CE1_INVERTED" *)
|
||||||
|
input CE1,
|
||||||
|
(* invertible_pin = "IS_IGNORE0_INVERTED" *)
|
||||||
|
input IGNORE0,
|
||||||
|
(* invertible_pin = "IS_IGNORE1_INVERTED" *)
|
||||||
|
input IGNORE1);
|
||||||
|
|
||||||
parameter [0:0] INIT_OUT = 1'b0;
|
parameter [0:0] INIT_OUT = 1'b0;
|
||||||
parameter PRESELECT_I0 = "FALSE";
|
parameter PRESELECT_I0 = "FALSE";
|
||||||
|
@ -87,6 +96,7 @@ module BUFHCE(
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O,
|
output O,
|
||||||
input I,
|
input I,
|
||||||
|
(* invertible_pin = "IS_CE_INVERTED" *)
|
||||||
input CE);
|
input CE);
|
||||||
|
|
||||||
parameter [0:0] INIT_OUT = 1'b0;
|
parameter [0:0] INIT_OUT = 1'b0;
|
||||||
|
@ -234,8 +244,13 @@ module FDRE (
|
||||||
(* abc_arrival=303 *)
|
(* abc_arrival=303 *)
|
||||||
output reg Q,
|
output reg Q,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
input C,
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input CE, D, R
|
input C,
|
||||||
|
input CE,
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
|
input D,
|
||||||
|
(* invertible_pin = "IS_R_INVERTED" *)
|
||||||
|
input R
|
||||||
);
|
);
|
||||||
parameter [0:0] INIT = 1'b0;
|
parameter [0:0] INIT = 1'b0;
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
@ -252,8 +267,13 @@ module FDSE (
|
||||||
(* abc_arrival=303 *)
|
(* abc_arrival=303 *)
|
||||||
output reg Q,
|
output reg Q,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C,
|
input C,
|
||||||
input CE, D, S
|
input CE,
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
|
input D,
|
||||||
|
(* invertible_pin = "IS_S_INVERTED" *)
|
||||||
|
input S
|
||||||
);
|
);
|
||||||
parameter [0:0] INIT = 1'b1;
|
parameter [0:0] INIT = 1'b1;
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
@ -270,8 +290,13 @@ module FDCE (
|
||||||
(* abc_arrival=303 *)
|
(* abc_arrival=303 *)
|
||||||
output reg Q,
|
output reg Q,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C,
|
input C,
|
||||||
input CE, D, CLR
|
input CE,
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
|
input D,
|
||||||
|
(* invertible_pin = "IS_CLR_INVERTED" *)
|
||||||
|
input CLR
|
||||||
);
|
);
|
||||||
parameter [0:0] INIT = 1'b0;
|
parameter [0:0] INIT = 1'b0;
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
@ -290,8 +315,13 @@ module FDPE (
|
||||||
(* abc_arrival=303 *)
|
(* abc_arrival=303 *)
|
||||||
output reg Q,
|
output reg Q,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C,
|
input C,
|
||||||
input CE, D, PRE
|
input CE,
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
|
input D,
|
||||||
|
(* invertible_pin = "IS_PRE_INVERTED" *)
|
||||||
|
input PRE
|
||||||
);
|
);
|
||||||
parameter [0:0] INIT = 1'b1;
|
parameter [0:0] INIT = 1'b1;
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
@ -360,6 +390,7 @@ module RAM32X1D (
|
||||||
output DPO, SPO,
|
output DPO, SPO,
|
||||||
input D,
|
input D,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK,
|
input WCLK,
|
||||||
input WE,
|
input WE,
|
||||||
input A0, A1, A2, A3, A4,
|
input A0, A1, A2, A3, A4,
|
||||||
|
@ -382,6 +413,7 @@ module RAM64X1D (
|
||||||
output DPO, SPO,
|
output DPO, SPO,
|
||||||
input D,
|
input D,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK,
|
input WCLK,
|
||||||
input WE,
|
input WE,
|
||||||
input A0, A1, A2, A3, A4, A5,
|
input A0, A1, A2, A3, A4, A5,
|
||||||
|
@ -404,6 +436,7 @@ module RAM128X1D (
|
||||||
output DPO, SPO,
|
output DPO, SPO,
|
||||||
input D,
|
input D,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK,
|
input WCLK,
|
||||||
input WE,
|
input WE,
|
||||||
input [6:0] A, DPRA
|
input [6:0] A, DPRA
|
||||||
|
@ -423,6 +456,7 @@ module SRL16E (
|
||||||
output Q,
|
output Q,
|
||||||
input A0, A1, A2, A3, CE,
|
input A0, A1, A2, A3, CE,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK,
|
input CLK,
|
||||||
input D
|
input D
|
||||||
);
|
);
|
||||||
|
@ -445,6 +479,7 @@ module SRLC16E (
|
||||||
output Q15,
|
output Q15,
|
||||||
input A0, A1, A2, A3, CE,
|
input A0, A1, A2, A3, CE,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK,
|
input CLK,
|
||||||
input D
|
input D
|
||||||
);
|
);
|
||||||
|
@ -472,6 +507,7 @@ module SRLC32E (
|
||||||
input [4:0] A,
|
input [4:0] A,
|
||||||
input CE,
|
input CE,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK,
|
input CLK,
|
||||||
input D
|
input D
|
||||||
);
|
);
|
||||||
|
|
|
@ -5,6 +5,7 @@ from io import StringIO
|
||||||
from enum import Enum, auto
|
from enum import Enum, auto
|
||||||
import os.path
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
class Cell:
|
class Cell:
|
||||||
|
@ -585,6 +586,8 @@ def xtract_cell_decl(cell, dirs, outf):
|
||||||
state = State.OUTSIDE
|
state = State.OUTSIDE
|
||||||
found = False
|
found = False
|
||||||
# Probably the most horrible Verilog "parser" ever written.
|
# Probably the most horrible Verilog "parser" ever written.
|
||||||
|
module_ports = []
|
||||||
|
invertible_ports = set()
|
||||||
for l in f:
|
for l in f:
|
||||||
l = l.partition('//')[0]
|
l = l.partition('//')[0]
|
||||||
l = l.strip()
|
l = l.strip()
|
||||||
|
@ -619,6 +622,15 @@ def xtract_cell_decl(cell, dirs, outf):
|
||||||
state = State.IN_MODULE
|
state = State.IN_MODULE
|
||||||
elif l == 'endmodule':
|
elif l == 'endmodule':
|
||||||
if state == State.IN_MODULE:
|
if state == State.IN_MODULE:
|
||||||
|
for kind, rng, port in module_ports:
|
||||||
|
for attr in cell.port_attrs.get(port, []):
|
||||||
|
outf.write(' (* {} *)\n'.format(attr))
|
||||||
|
if port in invertible_ports:
|
||||||
|
outf.write(' (* invertible_pin = "IS_{}_INVERTED" *)\n'.format(port))
|
||||||
|
if rng is None:
|
||||||
|
outf.write(' {} {};\n'.format(kind, port))
|
||||||
|
else:
|
||||||
|
outf.write(' {} {} {};\n'.format(kind, rng, port))
|
||||||
outf.write(l + '\n')
|
outf.write(l + '\n')
|
||||||
outf.write('\n')
|
outf.write('\n')
|
||||||
elif state != State.IN_OTHER_MODULE:
|
elif state != State.IN_OTHER_MODULE:
|
||||||
|
@ -634,9 +646,11 @@ def xtract_cell_decl(cell, dirs, outf):
|
||||||
kind, _, ports = l.partition(' ')
|
kind, _, ports = l.partition(' ')
|
||||||
for port in ports.split(','):
|
for port in ports.split(','):
|
||||||
port = port.strip()
|
port = port.strip()
|
||||||
for attr in cell.port_attrs.get(port, []):
|
if port.startswith('['):
|
||||||
outf.write(' (* {} *)\n'.format(attr))
|
rng, port = port.split()
|
||||||
outf.write(' {} {};\n'.format(kind, port))
|
else:
|
||||||
|
rng = None
|
||||||
|
module_ports.append((kind, rng, port))
|
||||||
elif l.startswith('parameter ') and state == State.IN_MODULE:
|
elif l.startswith('parameter ') and state == State.IN_MODULE:
|
||||||
if 'UNPLACED' in l:
|
if 'UNPLACED' in l:
|
||||||
continue
|
continue
|
||||||
|
@ -648,6 +662,9 @@ def xtract_cell_decl(cell, dirs, outf):
|
||||||
print('Weird parameter line in {} [{}].'.format(fname, l))
|
print('Weird parameter line in {} [{}].'.format(fname, l))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
outf.write(' {};\n'.format(l))
|
outf.write(' {};\n'.format(l))
|
||||||
|
match = re.search('IS_([a-zA-Z0-9_]+)_INVERTED', l)
|
||||||
|
if match:
|
||||||
|
invertible_ports.add(match[1])
|
||||||
if state != State.OUTSIDE:
|
if state != State.OUTSIDE:
|
||||||
print('endmodule not found in {}.'.format(fname))
|
print('endmodule not found in {}.'.format(fname))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
|
@ -508,8 +508,10 @@ struct SynthXilinxPass : public ScriptPass
|
||||||
else
|
else
|
||||||
run("clkbufmap -buf BUFG O:I");
|
run("clkbufmap -buf BUFG O:I");
|
||||||
}
|
}
|
||||||
if (do_iopad)
|
if (help_mode || do_iopad)
|
||||||
run("iopadmap -bits -outpad OBUF I:O -inpad IBUF O:I A:top", "(only if '-iopad' or '-ise' and not '-noiopad')");
|
run("iopadmap -bits -outpad OBUF I:O -inpad IBUF O:I A:top", "(only if '-iopad' or '-ise' and not '-noiopad')");
|
||||||
|
if (help_mode || ise)
|
||||||
|
run("extractinv -inv INV O:I", "(only if '-ise')");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_label("check")) {
|
if (check_label("check")) {
|
||||||
|
|
|
@ -559,7 +559,9 @@ module BUFGCE (...);
|
||||||
parameter [0:0] IS_I_INVERTED = 1'b0;
|
parameter [0:0] IS_I_INVERTED = 1'b0;
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O;
|
output O;
|
||||||
|
(* invertible_pin = "IS_CE_INVERTED" *)
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_I_INVERTED" *)
|
||||||
input I;
|
input I;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -743,6 +745,7 @@ endmodule
|
||||||
|
|
||||||
(* keep *)
|
(* keep *)
|
||||||
module BSCAN_SPARTAN6 (...);
|
module BSCAN_SPARTAN6 (...);
|
||||||
|
parameter integer JTAG_CHAIN = 1;
|
||||||
output CAPTURE;
|
output CAPTURE;
|
||||||
output DRCK;
|
output DRCK;
|
||||||
output RESET;
|
output RESET;
|
||||||
|
@ -754,7 +757,6 @@ module BSCAN_SPARTAN6 (...);
|
||||||
output TMS;
|
output TMS;
|
||||||
output UPDATE;
|
output UPDATE;
|
||||||
input TDO;
|
input TDO;
|
||||||
parameter integer JTAG_CHAIN = 1;
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module DNA_PORT (...);
|
module DNA_PORT (...);
|
||||||
|
@ -1558,6 +1560,7 @@ module RAM128X1S (...);
|
||||||
input A6;
|
input A6;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1569,6 +1572,7 @@ module RAM256X1S (...);
|
||||||
input [7:0] A;
|
input [7:0] A;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1592,6 +1596,7 @@ module RAM32M (...);
|
||||||
input [1:0] DIC;
|
input [1:0] DIC;
|
||||||
input [1:0] DID;
|
input [1:0] DID;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1607,6 +1612,7 @@ module RAM32X1S (...);
|
||||||
input A4;
|
input A4;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1622,6 +1628,7 @@ module RAM32X1S_1 (...);
|
||||||
input A4;
|
input A4;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1640,6 +1647,7 @@ module RAM32X2S (...);
|
||||||
input D0;
|
input D0;
|
||||||
input D1;
|
input D1;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1663,6 +1671,7 @@ module RAM64M (...);
|
||||||
input DIC;
|
input DIC;
|
||||||
input DID;
|
input DID;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1679,6 +1688,7 @@ module RAM64X1S (...);
|
||||||
input A5;
|
input A5;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1695,6 +1705,7 @@ module RAM64X1S_1 (...);
|
||||||
input A5;
|
input A5;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1714,6 +1725,7 @@ module RAM64X2S (...);
|
||||||
input D0;
|
input D0;
|
||||||
input D1;
|
input D1;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1765,6 +1777,10 @@ module ROM64X1 (...);
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module IDDR2 (...);
|
module IDDR2 (...);
|
||||||
|
parameter DDR_ALIGNMENT = "NONE";
|
||||||
|
parameter [0:0] INIT_Q0 = 1'b0;
|
||||||
|
parameter [0:0] INIT_Q1 = 1'b0;
|
||||||
|
parameter SRTYPE = "SYNC";
|
||||||
output Q0;
|
output Q0;
|
||||||
output Q1;
|
output Q1;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
@ -1775,10 +1791,6 @@ module IDDR2 (...);
|
||||||
input D;
|
input D;
|
||||||
input R;
|
input R;
|
||||||
input S;
|
input S;
|
||||||
parameter DDR_ALIGNMENT = "NONE";
|
|
||||||
parameter [0:0] INIT_Q0 = 1'b0;
|
|
||||||
parameter [0:0] INIT_Q1 = 1'b0;
|
|
||||||
parameter SRTYPE = "SYNC";
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module LDCE (...);
|
module LDCE (...);
|
||||||
|
@ -1788,8 +1800,10 @@ module LDCE (...);
|
||||||
parameter MSGON = "TRUE";
|
parameter MSGON = "TRUE";
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
output Q;
|
output Q;
|
||||||
|
(* invertible_pin = "IS_CLR_INVERTED" *)
|
||||||
input CLR;
|
input CLR;
|
||||||
input D;
|
input D;
|
||||||
|
(* invertible_pin = "IS_G_INVERTED" *)
|
||||||
input G;
|
input G;
|
||||||
input GE;
|
input GE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1802,12 +1816,17 @@ module LDPE (...);
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
output Q;
|
output Q;
|
||||||
input D;
|
input D;
|
||||||
|
(* invertible_pin = "IS_G_INVERTED" *)
|
||||||
input G;
|
input G;
|
||||||
input GE;
|
input GE;
|
||||||
|
(* invertible_pin = "IS_PRE_INVERTED" *)
|
||||||
input PRE;
|
input PRE;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module ODDR2 (...);
|
module ODDR2 (...);
|
||||||
|
parameter DDR_ALIGNMENT = "NONE";
|
||||||
|
parameter [0:0] INIT = 1'b0;
|
||||||
|
parameter SRTYPE = "SYNC";
|
||||||
output Q;
|
output Q;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
input C0;
|
input C0;
|
||||||
|
@ -1818,9 +1837,6 @@ module ODDR2 (...);
|
||||||
input D1;
|
input D1;
|
||||||
input R;
|
input R;
|
||||||
input S;
|
input S;
|
||||||
parameter DDR_ALIGNMENT = "NONE";
|
|
||||||
parameter [0:0] INIT = 1'b0;
|
|
||||||
parameter SRTYPE = "SYNC";
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module CFGLUT5 (...);
|
module CFGLUT5 (...);
|
||||||
|
@ -1837,6 +1853,7 @@ module CFGLUT5 (...);
|
||||||
input CDI;
|
input CDI;
|
||||||
input CE;
|
input CE;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
|
|
@ -596,29 +596,6 @@ module PCIE_2_0 (...);
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module SYSMON (...);
|
module SYSMON (...);
|
||||||
output BUSY;
|
|
||||||
output DRDY;
|
|
||||||
output EOC;
|
|
||||||
output EOS;
|
|
||||||
output JTAGBUSY;
|
|
||||||
output JTAGLOCKED;
|
|
||||||
output JTAGMODIFIED;
|
|
||||||
output OT;
|
|
||||||
output [15:0] DO;
|
|
||||||
output [2:0] ALM;
|
|
||||||
output [4:0] CHANNEL;
|
|
||||||
input CONVST;
|
|
||||||
input CONVSTCLK;
|
|
||||||
input DCLK;
|
|
||||||
input DEN;
|
|
||||||
input DWE;
|
|
||||||
input RESET;
|
|
||||||
input VN;
|
|
||||||
input VP;
|
|
||||||
input [15:0] DI;
|
|
||||||
input [15:0] VAUXN;
|
|
||||||
input [15:0] VAUXP;
|
|
||||||
input [6:0] DADDR;
|
|
||||||
parameter [15:0] INIT_40 = 16'h0;
|
parameter [15:0] INIT_40 = 16'h0;
|
||||||
parameter [15:0] INIT_41 = 16'h0;
|
parameter [15:0] INIT_41 = 16'h0;
|
||||||
parameter [15:0] INIT_42 = 16'h0800;
|
parameter [15:0] INIT_42 = 16'h0800;
|
||||||
|
@ -645,6 +622,29 @@ module SYSMON (...);
|
||||||
parameter [15:0] INIT_57 = 16'h0;
|
parameter [15:0] INIT_57 = 16'h0;
|
||||||
parameter SIM_DEVICE = "VIRTEX5";
|
parameter SIM_DEVICE = "VIRTEX5";
|
||||||
parameter SIM_MONITOR_FILE = "design.txt";
|
parameter SIM_MONITOR_FILE = "design.txt";
|
||||||
|
output BUSY;
|
||||||
|
output DRDY;
|
||||||
|
output EOC;
|
||||||
|
output EOS;
|
||||||
|
output JTAGBUSY;
|
||||||
|
output JTAGLOCKED;
|
||||||
|
output JTAGMODIFIED;
|
||||||
|
output OT;
|
||||||
|
output [15:0] DO;
|
||||||
|
output [2:0] ALM;
|
||||||
|
output [4:0] CHANNEL;
|
||||||
|
input CONVST;
|
||||||
|
input CONVSTCLK;
|
||||||
|
input DCLK;
|
||||||
|
input DEN;
|
||||||
|
input DWE;
|
||||||
|
input RESET;
|
||||||
|
input VN;
|
||||||
|
input VP;
|
||||||
|
input [15:0] DI;
|
||||||
|
input [15:0] VAUXN;
|
||||||
|
input [15:0] VAUXP;
|
||||||
|
input [6:0] DADDR;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module DSP48E1 (...);
|
module DSP48E1 (...);
|
||||||
|
@ -691,11 +691,13 @@ module DSP48E1 (...);
|
||||||
output UNDERFLOW;
|
output UNDERFLOW;
|
||||||
input [29:0] A;
|
input [29:0] A;
|
||||||
input [29:0] ACIN;
|
input [29:0] ACIN;
|
||||||
|
(* invertible_pin = "IS_ALUMODE_INVERTED" *)
|
||||||
input [3:0] ALUMODE;
|
input [3:0] ALUMODE;
|
||||||
input [17:0] B;
|
input [17:0] B;
|
||||||
input [17:0] BCIN;
|
input [17:0] BCIN;
|
||||||
input [47:0] C;
|
input [47:0] C;
|
||||||
input CARRYCASCIN;
|
input CARRYCASCIN;
|
||||||
|
(* invertible_pin = "IS_CARRYIN_INVERTED" *)
|
||||||
input CARRYIN;
|
input CARRYIN;
|
||||||
input [2:0] CARRYINSEL;
|
input [2:0] CARRYINSEL;
|
||||||
input CEA1;
|
input CEA1;
|
||||||
|
@ -712,10 +714,13 @@ module DSP48E1 (...);
|
||||||
input CEM;
|
input CEM;
|
||||||
input CEP;
|
input CEP;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [24:0] D;
|
input [24:0] D;
|
||||||
|
(* invertible_pin = "IS_INMODE_INVERTED" *)
|
||||||
input [4:0] INMODE;
|
input [4:0] INMODE;
|
||||||
input MULTSIGNIN;
|
input MULTSIGNIN;
|
||||||
|
(* invertible_pin = "IS_OPMODE_INVERTED" *)
|
||||||
input [6:0] OPMODE;
|
input [6:0] OPMODE;
|
||||||
input [47:0] PCIN;
|
input [47:0] PCIN;
|
||||||
input RSTA;
|
input RSTA;
|
||||||
|
@ -736,7 +741,9 @@ module BUFGCE (...);
|
||||||
parameter [0:0] IS_I_INVERTED = 1'b0;
|
parameter [0:0] IS_I_INVERTED = 1'b0;
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O;
|
output O;
|
||||||
|
(* invertible_pin = "IS_CE_INVERTED" *)
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_I_INVERTED" *)
|
||||||
input I;
|
input I;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -794,13 +801,13 @@ module BUFIODQS (...);
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module BUFR (...);
|
module BUFR (...);
|
||||||
|
parameter BUFR_DIVIDE = "BYPASS";
|
||||||
|
parameter SIM_DEVICE = "7SERIES";
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O;
|
output O;
|
||||||
input CE;
|
input CE;
|
||||||
input CLR;
|
input CLR;
|
||||||
input I;
|
input I;
|
||||||
parameter BUFR_DIVIDE = "BYPASS";
|
|
||||||
parameter SIM_DEVICE = "7SERIES";
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module IBUFDS_GTXE1 (...);
|
module IBUFDS_GTXE1 (...);
|
||||||
|
@ -952,6 +959,8 @@ endmodule
|
||||||
|
|
||||||
(* keep *)
|
(* keep *)
|
||||||
module BSCAN_VIRTEX6 (...);
|
module BSCAN_VIRTEX6 (...);
|
||||||
|
parameter DISABLE_JTAG = "FALSE";
|
||||||
|
parameter integer JTAG_CHAIN = 1;
|
||||||
output CAPTURE;
|
output CAPTURE;
|
||||||
output DRCK;
|
output DRCK;
|
||||||
output RESET;
|
output RESET;
|
||||||
|
@ -963,15 +972,13 @@ module BSCAN_VIRTEX6 (...);
|
||||||
output TMS;
|
output TMS;
|
||||||
output UPDATE;
|
output UPDATE;
|
||||||
input TDO;
|
input TDO;
|
||||||
parameter DISABLE_JTAG = "FALSE";
|
|
||||||
parameter integer JTAG_CHAIN = 1;
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
(* keep *)
|
(* keep *)
|
||||||
module CAPTURE_VIRTEX6 (...);
|
module CAPTURE_VIRTEX6 (...);
|
||||||
|
parameter ONESHOT = "TRUE";
|
||||||
input CAP;
|
input CAP;
|
||||||
input CLK;
|
input CLK;
|
||||||
parameter ONESHOT = "TRUE";
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module DNA_PORT (...);
|
module DNA_PORT (...);
|
||||||
|
@ -2299,13 +2306,19 @@ module FIFO18E1 (...);
|
||||||
input [31:0] DI;
|
input [31:0] DI;
|
||||||
input [3:0] DIP;
|
input [3:0] DIP;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_RDCLK_INVERTED" *)
|
||||||
input RDCLK;
|
input RDCLK;
|
||||||
|
(* invertible_pin = "IS_RDEN_INVERTED" *)
|
||||||
input RDEN;
|
input RDEN;
|
||||||
input REGCE;
|
input REGCE;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RSTREG_INVERTED" *)
|
||||||
input RSTREG;
|
input RSTREG;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WRCLK_INVERTED" *)
|
||||||
input WRCLK;
|
input WRCLK;
|
||||||
|
(* invertible_pin = "IS_WREN_INVERTED" *)
|
||||||
input WREN;
|
input WREN;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -2346,13 +2359,19 @@ module FIFO36E1 (...);
|
||||||
input INJECTDBITERR;
|
input INJECTDBITERR;
|
||||||
input INJECTSBITERR;
|
input INJECTSBITERR;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_RDCLK_INVERTED" *)
|
||||||
input RDCLK;
|
input RDCLK;
|
||||||
|
(* invertible_pin = "IS_RDEN_INVERTED" *)
|
||||||
input RDEN;
|
input RDEN;
|
||||||
input REGCE;
|
input REGCE;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RSTREG_INVERTED" *)
|
||||||
input RSTREG;
|
input RSTREG;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WRCLK_INVERTED" *)
|
||||||
input WRCLK;
|
input WRCLK;
|
||||||
|
(* invertible_pin = "IS_WREN_INVERTED" *)
|
||||||
input WREN;
|
input WREN;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -2369,6 +2388,7 @@ module RAM128X1S (...);
|
||||||
input A6;
|
input A6;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2380,6 +2400,7 @@ module RAM256X1S (...);
|
||||||
input [7:0] A;
|
input [7:0] A;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2403,6 +2424,7 @@ module RAM32M (...);
|
||||||
input [1:0] DIC;
|
input [1:0] DIC;
|
||||||
input [1:0] DID;
|
input [1:0] DID;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2418,6 +2440,7 @@ module RAM32X1S (...);
|
||||||
input A4;
|
input A4;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2433,6 +2456,7 @@ module RAM32X1S_1 (...);
|
||||||
input A4;
|
input A4;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2451,6 +2475,7 @@ module RAM32X2S (...);
|
||||||
input D0;
|
input D0;
|
||||||
input D1;
|
input D1;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2474,6 +2499,7 @@ module RAM64M (...);
|
||||||
input DIC;
|
input DIC;
|
||||||
input DID;
|
input DID;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2490,6 +2516,7 @@ module RAM64X1S (...);
|
||||||
input A5;
|
input A5;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2506,6 +2533,7 @@ module RAM64X1S_1 (...);
|
||||||
input A5;
|
input A5;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2525,6 +2553,7 @@ module RAM64X2S (...);
|
||||||
input D0;
|
input D0;
|
||||||
input D1;
|
input D1;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2587,8 +2616,10 @@ module IDDR (...);
|
||||||
output Q1;
|
output Q1;
|
||||||
output Q2;
|
output Q2;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C;
|
input C;
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
input D;
|
input D;
|
||||||
input R;
|
input R;
|
||||||
input S;
|
input S;
|
||||||
|
@ -2605,10 +2636,13 @@ module IDDR_2CLK (...);
|
||||||
output Q1;
|
output Q1;
|
||||||
output Q2;
|
output Q2;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C;
|
input C;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CB_INVERTED" *)
|
||||||
input CB;
|
input CB;
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
input D;
|
input D;
|
||||||
input R;
|
input R;
|
||||||
input S;
|
input S;
|
||||||
|
@ -2621,8 +2655,10 @@ module LDCE (...);
|
||||||
parameter MSGON = "TRUE";
|
parameter MSGON = "TRUE";
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
output Q;
|
output Q;
|
||||||
|
(* invertible_pin = "IS_CLR_INVERTED" *)
|
||||||
input CLR;
|
input CLR;
|
||||||
input D;
|
input D;
|
||||||
|
(* invertible_pin = "IS_G_INVERTED" *)
|
||||||
input G;
|
input G;
|
||||||
input GE;
|
input GE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -2635,20 +2671,14 @@ module LDPE (...);
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
output Q;
|
output Q;
|
||||||
input D;
|
input D;
|
||||||
|
(* invertible_pin = "IS_G_INVERTED" *)
|
||||||
input G;
|
input G;
|
||||||
input GE;
|
input GE;
|
||||||
|
(* invertible_pin = "IS_PRE_INVERTED" *)
|
||||||
input PRE;
|
input PRE;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module ODDR (...);
|
module ODDR (...);
|
||||||
output Q;
|
|
||||||
(* clkbuf_sink *)
|
|
||||||
input C;
|
|
||||||
input CE;
|
|
||||||
input D1;
|
|
||||||
input D2;
|
|
||||||
input R;
|
|
||||||
input S;
|
|
||||||
parameter DDR_CLK_EDGE = "OPPOSITE_EDGE";
|
parameter DDR_CLK_EDGE = "OPPOSITE_EDGE";
|
||||||
parameter INIT = 1'b0;
|
parameter INIT = 1'b0;
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
@ -2657,6 +2687,17 @@ module ODDR (...);
|
||||||
parameter SRTYPE = "SYNC";
|
parameter SRTYPE = "SYNC";
|
||||||
parameter MSGON = "TRUE";
|
parameter MSGON = "TRUE";
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
|
output Q;
|
||||||
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
|
input C;
|
||||||
|
input CE;
|
||||||
|
(* invertible_pin = "IS_D1_INVERTED" *)
|
||||||
|
input D1;
|
||||||
|
(* invertible_pin = "IS_D2_INVERTED" *)
|
||||||
|
input D2;
|
||||||
|
input R;
|
||||||
|
input S;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module CFGLUT5 (...);
|
module CFGLUT5 (...);
|
||||||
|
@ -2673,6 +2714,7 @@ module CFGLUT5 (...);
|
||||||
input CDI;
|
input CDI;
|
||||||
input CE;
|
input CE;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
|
|
@ -2,16 +2,24 @@
|
||||||
|
|
||||||
module RAMB18E1 (
|
module RAMB18E1 (
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKARDCLK_INVERTED" *)
|
||||||
input CLKARDCLK,
|
input CLKARDCLK,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKBWRCLK_INVERTED" *)
|
||||||
input CLKBWRCLK,
|
input CLKBWRCLK,
|
||||||
|
(* invertible_pin = "IS_ENARDEN_INVERTED" *)
|
||||||
input ENARDEN,
|
input ENARDEN,
|
||||||
|
(* invertible_pin = "IS_ENBWREN_INVERTED" *)
|
||||||
input ENBWREN,
|
input ENBWREN,
|
||||||
input REGCEAREGCE,
|
input REGCEAREGCE,
|
||||||
input REGCEB,
|
input REGCEB,
|
||||||
|
(* invertible_pin = "IS_RSTRAMARSTRAM_INVERTED" *)
|
||||||
input RSTRAMARSTRAM,
|
input RSTRAMARSTRAM,
|
||||||
|
(* invertible_pin = "IS_RSTRAMB_INVERTED" *)
|
||||||
input RSTRAMB,
|
input RSTRAMB,
|
||||||
|
(* invertible_pin = "IS_RSTREGARSTREG_INVERTED" *)
|
||||||
input RSTREGARSTREG,
|
input RSTREGARSTREG,
|
||||||
|
(* invertible_pin = "IS_RSTREGB_INVERTED" *)
|
||||||
input RSTREGB,
|
input RSTREGB,
|
||||||
|
|
||||||
input [13:0] ADDRARDADDR,
|
input [13:0] ADDRARDADDR,
|
||||||
|
@ -132,16 +140,24 @@ endmodule
|
||||||
|
|
||||||
module RAMB36E1 (
|
module RAMB36E1 (
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKARDCLK_INVERTED" *)
|
||||||
input CLKARDCLK,
|
input CLKARDCLK,
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKBWRCLK_INVERTED" *)
|
||||||
input CLKBWRCLK,
|
input CLKBWRCLK,
|
||||||
|
(* invertible_pin = "IS_ENARDEN_INVERTED" *)
|
||||||
input ENARDEN,
|
input ENARDEN,
|
||||||
|
(* invertible_pin = "IS_ENBWREN_INVERTED" *)
|
||||||
input ENBWREN,
|
input ENBWREN,
|
||||||
input REGCEAREGCE,
|
input REGCEAREGCE,
|
||||||
input REGCEB,
|
input REGCEB,
|
||||||
|
(* invertible_pin = "IS_RSTRAMARSTRAM_INVERTED" *)
|
||||||
input RSTRAMARSTRAM,
|
input RSTRAMARSTRAM,
|
||||||
|
(* invertible_pin = "IS_RSTRAMB_INVERTED" *)
|
||||||
input RSTRAMB,
|
input RSTRAMB,
|
||||||
|
(* invertible_pin = "IS_RSTREGARSTREG_INVERTED" *)
|
||||||
input RSTREGARSTREG,
|
input RSTREGARSTREG,
|
||||||
|
(* invertible_pin = "IS_RSTREGB_INVERTED" *)
|
||||||
input RSTREGB,
|
input RSTREGB,
|
||||||
|
|
||||||
input [15:0] ADDRARDADDR,
|
input [15:0] ADDRARDADDR,
|
||||||
|
|
|
@ -347,20 +347,26 @@ module GTHE2_CHANNEL (...);
|
||||||
output [7:0] RXDISPERR;
|
output [7:0] RXDISPERR;
|
||||||
output [7:0] RXNOTINTABLE;
|
output [7:0] RXNOTINTABLE;
|
||||||
input CFGRESET;
|
input CFGRESET;
|
||||||
|
(* invertible_pin = "IS_CLKRSVD0_INVERTED" *)
|
||||||
input CLKRSVD0;
|
input CLKRSVD0;
|
||||||
|
(* invertible_pin = "IS_CLKRSVD1_INVERTED" *)
|
||||||
input CLKRSVD1;
|
input CLKRSVD1;
|
||||||
|
(* invertible_pin = "IS_CPLLLOCKDETCLK_INVERTED" *)
|
||||||
input CPLLLOCKDETCLK;
|
input CPLLLOCKDETCLK;
|
||||||
input CPLLLOCKEN;
|
input CPLLLOCKEN;
|
||||||
input CPLLPD;
|
input CPLLPD;
|
||||||
input CPLLRESET;
|
input CPLLRESET;
|
||||||
input DMONFIFORESET;
|
input DMONFIFORESET;
|
||||||
|
(* invertible_pin = "IS_DMONITORCLK_INVERTED" *)
|
||||||
input DMONITORCLK;
|
input DMONITORCLK;
|
||||||
|
(* invertible_pin = "IS_DRPCLK_INVERTED" *)
|
||||||
input DRPCLK;
|
input DRPCLK;
|
||||||
input DRPEN;
|
input DRPEN;
|
||||||
input DRPWE;
|
input DRPWE;
|
||||||
input EYESCANMODE;
|
input EYESCANMODE;
|
||||||
input EYESCANRESET;
|
input EYESCANRESET;
|
||||||
input EYESCANTRIGGER;
|
input EYESCANTRIGGER;
|
||||||
|
(* invertible_pin = "IS_GTGREFCLK_INVERTED" *)
|
||||||
input GTGREFCLK;
|
input GTGREFCLK;
|
||||||
input GTHRXN;
|
input GTHRXN;
|
||||||
input GTHRXP;
|
input GTHRXP;
|
||||||
|
@ -456,9 +462,12 @@ module GTHE2_CHANNEL (...);
|
||||||
input RXSYNCIN;
|
input RXSYNCIN;
|
||||||
input RXSYNCMODE;
|
input RXSYNCMODE;
|
||||||
input RXUSERRDY;
|
input RXUSERRDY;
|
||||||
|
(* invertible_pin = "IS_RXUSRCLK2_INVERTED" *)
|
||||||
input RXUSRCLK2;
|
input RXUSRCLK2;
|
||||||
|
(* invertible_pin = "IS_RXUSRCLK_INVERTED" *)
|
||||||
input RXUSRCLK;
|
input RXUSRCLK;
|
||||||
input SETERRSTATUS;
|
input SETERRSTATUS;
|
||||||
|
(* invertible_pin = "IS_SIGVALIDCLK_INVERTED" *)
|
||||||
input SIGVALIDCLK;
|
input SIGVALIDCLK;
|
||||||
input TX8B10BEN;
|
input TX8B10BEN;
|
||||||
input TXCOMINIT;
|
input TXCOMINIT;
|
||||||
|
@ -481,6 +490,7 @@ module GTHE2_CHANNEL (...);
|
||||||
input TXPHALIGNEN;
|
input TXPHALIGNEN;
|
||||||
input TXPHDLYPD;
|
input TXPHDLYPD;
|
||||||
input TXPHDLYRESET;
|
input TXPHDLYRESET;
|
||||||
|
(* invertible_pin = "IS_TXPHDLYTSTCLK_INVERTED" *)
|
||||||
input TXPHDLYTSTCLK;
|
input TXPHDLYTSTCLK;
|
||||||
input TXPHINIT;
|
input TXPHINIT;
|
||||||
input TXPHOVRDEN;
|
input TXPHOVRDEN;
|
||||||
|
@ -504,7 +514,9 @@ module GTHE2_CHANNEL (...);
|
||||||
input TXSYNCIN;
|
input TXSYNCIN;
|
||||||
input TXSYNCMODE;
|
input TXSYNCMODE;
|
||||||
input TXUSERRDY;
|
input TXUSERRDY;
|
||||||
|
(* invertible_pin = "IS_TXUSRCLK2_INVERTED" *)
|
||||||
input TXUSRCLK2;
|
input TXUSRCLK2;
|
||||||
|
(* invertible_pin = "IS_TXUSRCLK_INVERTED" *)
|
||||||
input TXUSRCLK;
|
input TXUSRCLK;
|
||||||
input [13:0] RXADAPTSELTEST;
|
input [13:0] RXADAPTSELTEST;
|
||||||
input [15:0] DRPDI;
|
input [15:0] DRPDI;
|
||||||
|
@ -593,9 +605,11 @@ module GTHE2_COMMON (...);
|
||||||
input BGMONITORENB;
|
input BGMONITORENB;
|
||||||
input BGPDB;
|
input BGPDB;
|
||||||
input BGRCALOVRDENB;
|
input BGRCALOVRDENB;
|
||||||
|
(* invertible_pin = "IS_DRPCLK_INVERTED" *)
|
||||||
input DRPCLK;
|
input DRPCLK;
|
||||||
input DRPEN;
|
input DRPEN;
|
||||||
input DRPWE;
|
input DRPWE;
|
||||||
|
(* invertible_pin = "IS_GTGREFCLK_INVERTED" *)
|
||||||
input GTGREFCLK;
|
input GTGREFCLK;
|
||||||
input GTNORTHREFCLK0;
|
input GTNORTHREFCLK0;
|
||||||
input GTNORTHREFCLK1;
|
input GTNORTHREFCLK1;
|
||||||
|
@ -603,6 +617,7 @@ module GTHE2_COMMON (...);
|
||||||
input GTREFCLK1;
|
input GTREFCLK1;
|
||||||
input GTSOUTHREFCLK0;
|
input GTSOUTHREFCLK0;
|
||||||
input GTSOUTHREFCLK1;
|
input GTSOUTHREFCLK1;
|
||||||
|
(* invertible_pin = "IS_QPLLLOCKDETCLK_INVERTED" *)
|
||||||
input QPLLLOCKDETCLK;
|
input QPLLLOCKDETCLK;
|
||||||
input QPLLLOCKEN;
|
input QPLLLOCKEN;
|
||||||
input QPLLOUTRESET;
|
input QPLLOUTRESET;
|
||||||
|
@ -928,10 +943,14 @@ module GTPE2_CHANNEL (...);
|
||||||
output [4:0] RXPHMONITOR;
|
output [4:0] RXPHMONITOR;
|
||||||
output [4:0] RXPHSLIPMONITOR;
|
output [4:0] RXPHSLIPMONITOR;
|
||||||
input CFGRESET;
|
input CFGRESET;
|
||||||
|
(* invertible_pin = "IS_CLKRSVD0_INVERTED" *)
|
||||||
input CLKRSVD0;
|
input CLKRSVD0;
|
||||||
|
(* invertible_pin = "IS_CLKRSVD1_INVERTED" *)
|
||||||
input CLKRSVD1;
|
input CLKRSVD1;
|
||||||
input DMONFIFORESET;
|
input DMONFIFORESET;
|
||||||
|
(* invertible_pin = "IS_DMONITORCLK_INVERTED" *)
|
||||||
input DMONITORCLK;
|
input DMONITORCLK;
|
||||||
|
(* invertible_pin = "IS_DRPCLK_INVERTED" *)
|
||||||
input DRPCLK;
|
input DRPCLK;
|
||||||
input DRPEN;
|
input DRPEN;
|
||||||
input DRPWE;
|
input DRPWE;
|
||||||
|
@ -1005,9 +1024,12 @@ module GTPE2_CHANNEL (...);
|
||||||
input RXSYNCIN;
|
input RXSYNCIN;
|
||||||
input RXSYNCMODE;
|
input RXSYNCMODE;
|
||||||
input RXUSERRDY;
|
input RXUSERRDY;
|
||||||
|
(* invertible_pin = "IS_RXUSRCLK2_INVERTED" *)
|
||||||
input RXUSRCLK2;
|
input RXUSRCLK2;
|
||||||
|
(* invertible_pin = "IS_RXUSRCLK_INVERTED" *)
|
||||||
input RXUSRCLK;
|
input RXUSRCLK;
|
||||||
input SETERRSTATUS;
|
input SETERRSTATUS;
|
||||||
|
(* invertible_pin = "IS_SIGVALIDCLK_INVERTED" *)
|
||||||
input SIGVALIDCLK;
|
input SIGVALIDCLK;
|
||||||
input TX8B10BEN;
|
input TX8B10BEN;
|
||||||
input TXCOMINIT;
|
input TXCOMINIT;
|
||||||
|
@ -1030,6 +1052,7 @@ module GTPE2_CHANNEL (...);
|
||||||
input TXPHALIGNEN;
|
input TXPHALIGNEN;
|
||||||
input TXPHDLYPD;
|
input TXPHDLYPD;
|
||||||
input TXPHDLYRESET;
|
input TXPHDLYRESET;
|
||||||
|
(* invertible_pin = "IS_TXPHDLYTSTCLK_INVERTED" *)
|
||||||
input TXPHDLYTSTCLK;
|
input TXPHDLYTSTCLK;
|
||||||
input TXPHINIT;
|
input TXPHINIT;
|
||||||
input TXPHOVRDEN;
|
input TXPHOVRDEN;
|
||||||
|
@ -1050,7 +1073,9 @@ module GTPE2_CHANNEL (...);
|
||||||
input TXSYNCIN;
|
input TXSYNCIN;
|
||||||
input TXSYNCMODE;
|
input TXSYNCMODE;
|
||||||
input TXUSERRDY;
|
input TXUSERRDY;
|
||||||
|
(* invertible_pin = "IS_TXUSRCLK2_INVERTED" *)
|
||||||
input TXUSRCLK2;
|
input TXUSRCLK2;
|
||||||
|
(* invertible_pin = "IS_TXUSRCLK_INVERTED" *)
|
||||||
input TXUSRCLK;
|
input TXUSRCLK;
|
||||||
input [13:0] RXADAPTSELTEST;
|
input [13:0] RXADAPTSELTEST;
|
||||||
input [15:0] DRPDI;
|
input [15:0] DRPDI;
|
||||||
|
@ -1139,21 +1164,26 @@ module GTPE2_COMMON (...);
|
||||||
input BGMONITORENB;
|
input BGMONITORENB;
|
||||||
input BGPDB;
|
input BGPDB;
|
||||||
input BGRCALOVRDENB;
|
input BGRCALOVRDENB;
|
||||||
|
(* invertible_pin = "IS_DRPCLK_INVERTED" *)
|
||||||
input DRPCLK;
|
input DRPCLK;
|
||||||
input DRPEN;
|
input DRPEN;
|
||||||
input DRPWE;
|
input DRPWE;
|
||||||
input GTEASTREFCLK0;
|
input GTEASTREFCLK0;
|
||||||
input GTEASTREFCLK1;
|
input GTEASTREFCLK1;
|
||||||
|
(* invertible_pin = "IS_GTGREFCLK0_INVERTED" *)
|
||||||
input GTGREFCLK0;
|
input GTGREFCLK0;
|
||||||
|
(* invertible_pin = "IS_GTGREFCLK1_INVERTED" *)
|
||||||
input GTGREFCLK1;
|
input GTGREFCLK1;
|
||||||
input GTREFCLK0;
|
input GTREFCLK0;
|
||||||
input GTREFCLK1;
|
input GTREFCLK1;
|
||||||
input GTWESTREFCLK0;
|
input GTWESTREFCLK0;
|
||||||
input GTWESTREFCLK1;
|
input GTWESTREFCLK1;
|
||||||
|
(* invertible_pin = "IS_PLL0LOCKDETCLK_INVERTED" *)
|
||||||
input PLL0LOCKDETCLK;
|
input PLL0LOCKDETCLK;
|
||||||
input PLL0LOCKEN;
|
input PLL0LOCKEN;
|
||||||
input PLL0PD;
|
input PLL0PD;
|
||||||
input PLL0RESET;
|
input PLL0RESET;
|
||||||
|
(* invertible_pin = "IS_PLL1LOCKDETCLK_INVERTED" *)
|
||||||
input PLL1LOCKDETCLK;
|
input PLL1LOCKDETCLK;
|
||||||
input PLL1LOCKEN;
|
input PLL1LOCKEN;
|
||||||
input PLL1PD;
|
input PLL1PD;
|
||||||
|
@ -1442,16 +1472,19 @@ module GTXE2_CHANNEL (...);
|
||||||
output [7:0] RXNOTINTABLE;
|
output [7:0] RXNOTINTABLE;
|
||||||
output [9:0] TSTOUT;
|
output [9:0] TSTOUT;
|
||||||
input CFGRESET;
|
input CFGRESET;
|
||||||
|
(* invertible_pin = "IS_CPLLLOCKDETCLK_INVERTED" *)
|
||||||
input CPLLLOCKDETCLK;
|
input CPLLLOCKDETCLK;
|
||||||
input CPLLLOCKEN;
|
input CPLLLOCKEN;
|
||||||
input CPLLPD;
|
input CPLLPD;
|
||||||
input CPLLRESET;
|
input CPLLRESET;
|
||||||
|
(* invertible_pin = "IS_DRPCLK_INVERTED" *)
|
||||||
input DRPCLK;
|
input DRPCLK;
|
||||||
input DRPEN;
|
input DRPEN;
|
||||||
input DRPWE;
|
input DRPWE;
|
||||||
input EYESCANMODE;
|
input EYESCANMODE;
|
||||||
input EYESCANRESET;
|
input EYESCANRESET;
|
||||||
input EYESCANTRIGGER;
|
input EYESCANTRIGGER;
|
||||||
|
(* invertible_pin = "IS_GTGREFCLK_INVERTED" *)
|
||||||
input GTGREFCLK;
|
input GTGREFCLK;
|
||||||
input GTNORTHREFCLK0;
|
input GTNORTHREFCLK0;
|
||||||
input GTNORTHREFCLK1;
|
input GTNORTHREFCLK1;
|
||||||
|
@ -1528,7 +1561,9 @@ module GTXE2_CHANNEL (...);
|
||||||
input RXQPIEN;
|
input RXQPIEN;
|
||||||
input RXSLIDE;
|
input RXSLIDE;
|
||||||
input RXUSERRDY;
|
input RXUSERRDY;
|
||||||
|
(* invertible_pin = "IS_RXUSRCLK2_INVERTED" *)
|
||||||
input RXUSRCLK2;
|
input RXUSRCLK2;
|
||||||
|
(* invertible_pin = "IS_RXUSRCLK_INVERTED" *)
|
||||||
input RXUSRCLK;
|
input RXUSRCLK;
|
||||||
input SETERRSTATUS;
|
input SETERRSTATUS;
|
||||||
input TX8B10BEN;
|
input TX8B10BEN;
|
||||||
|
@ -1552,6 +1587,7 @@ module GTXE2_CHANNEL (...);
|
||||||
input TXPHALIGNEN;
|
input TXPHALIGNEN;
|
||||||
input TXPHDLYPD;
|
input TXPHDLYPD;
|
||||||
input TXPHDLYRESET;
|
input TXPHDLYRESET;
|
||||||
|
(* invertible_pin = "IS_TXPHDLYTSTCLK_INVERTED" *)
|
||||||
input TXPHDLYTSTCLK;
|
input TXPHDLYTSTCLK;
|
||||||
input TXPHINIT;
|
input TXPHINIT;
|
||||||
input TXPHOVRDEN;
|
input TXPHOVRDEN;
|
||||||
|
@ -1567,7 +1603,9 @@ module GTXE2_CHANNEL (...);
|
||||||
input TXSTARTSEQ;
|
input TXSTARTSEQ;
|
||||||
input TXSWING;
|
input TXSWING;
|
||||||
input TXUSERRDY;
|
input TXUSERRDY;
|
||||||
|
(* invertible_pin = "IS_TXUSRCLK2_INVERTED" *)
|
||||||
input TXUSRCLK2;
|
input TXUSRCLK2;
|
||||||
|
(* invertible_pin = "IS_TXUSRCLK_INVERTED" *)
|
||||||
input TXUSRCLK;
|
input TXUSRCLK;
|
||||||
input [15:0] DRPDI;
|
input [15:0] DRPDI;
|
||||||
input [15:0] GTRSVD;
|
input [15:0] GTRSVD;
|
||||||
|
@ -1644,9 +1682,11 @@ module GTXE2_COMMON (...);
|
||||||
input BGBYPASSB;
|
input BGBYPASSB;
|
||||||
input BGMONITORENB;
|
input BGMONITORENB;
|
||||||
input BGPDB;
|
input BGPDB;
|
||||||
|
(* invertible_pin = "IS_DRPCLK_INVERTED" *)
|
||||||
input DRPCLK;
|
input DRPCLK;
|
||||||
input DRPEN;
|
input DRPEN;
|
||||||
input DRPWE;
|
input DRPWE;
|
||||||
|
(* invertible_pin = "IS_GTGREFCLK_INVERTED" *)
|
||||||
input GTGREFCLK;
|
input GTGREFCLK;
|
||||||
input GTNORTHREFCLK0;
|
input GTNORTHREFCLK0;
|
||||||
input GTNORTHREFCLK1;
|
input GTNORTHREFCLK1;
|
||||||
|
@ -1654,6 +1694,7 @@ module GTXE2_COMMON (...);
|
||||||
input GTREFCLK1;
|
input GTREFCLK1;
|
||||||
input GTSOUTHREFCLK0;
|
input GTSOUTHREFCLK0;
|
||||||
input GTSOUTHREFCLK1;
|
input GTSOUTHREFCLK1;
|
||||||
|
(* invertible_pin = "IS_QPLLLOCKDETCLK_INVERTED" *)
|
||||||
input QPLLLOCKDETCLK;
|
input QPLLLOCKDETCLK;
|
||||||
input QPLLLOCKEN;
|
input QPLLLOCKEN;
|
||||||
input QPLLOUTRESET;
|
input QPLLOUTRESET;
|
||||||
|
@ -3271,30 +3312,6 @@ module PCIE_3_0 (...);
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module XADC (...);
|
module XADC (...);
|
||||||
output BUSY;
|
|
||||||
output DRDY;
|
|
||||||
output EOC;
|
|
||||||
output EOS;
|
|
||||||
output JTAGBUSY;
|
|
||||||
output JTAGLOCKED;
|
|
||||||
output JTAGMODIFIED;
|
|
||||||
output OT;
|
|
||||||
output [15:0] DO;
|
|
||||||
output [7:0] ALM;
|
|
||||||
output [4:0] CHANNEL;
|
|
||||||
output [4:0] MUXADDR;
|
|
||||||
input CONVST;
|
|
||||||
input CONVSTCLK;
|
|
||||||
input DCLK;
|
|
||||||
input DEN;
|
|
||||||
input DWE;
|
|
||||||
input RESET;
|
|
||||||
input VN;
|
|
||||||
input VP;
|
|
||||||
input [15:0] DI;
|
|
||||||
input [15:0] VAUXN;
|
|
||||||
input [15:0] VAUXP;
|
|
||||||
input [6:0] DADDR;
|
|
||||||
parameter [15:0] INIT_40 = 16'h0;
|
parameter [15:0] INIT_40 = 16'h0;
|
||||||
parameter [15:0] INIT_41 = 16'h0;
|
parameter [15:0] INIT_41 = 16'h0;
|
||||||
parameter [15:0] INIT_42 = 16'h0800;
|
parameter [15:0] INIT_42 = 16'h0800;
|
||||||
|
@ -3331,6 +3348,32 @@ module XADC (...);
|
||||||
parameter IS_DCLK_INVERTED = 1'b0;
|
parameter IS_DCLK_INVERTED = 1'b0;
|
||||||
parameter SIM_DEVICE = "7SERIES";
|
parameter SIM_DEVICE = "7SERIES";
|
||||||
parameter SIM_MONITOR_FILE = "design.txt";
|
parameter SIM_MONITOR_FILE = "design.txt";
|
||||||
|
output BUSY;
|
||||||
|
output DRDY;
|
||||||
|
output EOC;
|
||||||
|
output EOS;
|
||||||
|
output JTAGBUSY;
|
||||||
|
output JTAGLOCKED;
|
||||||
|
output JTAGMODIFIED;
|
||||||
|
output OT;
|
||||||
|
output [15:0] DO;
|
||||||
|
output [7:0] ALM;
|
||||||
|
output [4:0] CHANNEL;
|
||||||
|
output [4:0] MUXADDR;
|
||||||
|
input CONVST;
|
||||||
|
(* invertible_pin = "IS_CONVSTCLK_INVERTED" *)
|
||||||
|
input CONVSTCLK;
|
||||||
|
(* invertible_pin = "IS_DCLK_INVERTED" *)
|
||||||
|
input DCLK;
|
||||||
|
input DEN;
|
||||||
|
input DWE;
|
||||||
|
input RESET;
|
||||||
|
input VN;
|
||||||
|
input VP;
|
||||||
|
input [15:0] DI;
|
||||||
|
input [15:0] VAUXN;
|
||||||
|
input [15:0] VAUXP;
|
||||||
|
input [6:0] DADDR;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module DSP48E1 (...);
|
module DSP48E1 (...);
|
||||||
|
@ -3377,11 +3420,13 @@ module DSP48E1 (...);
|
||||||
output UNDERFLOW;
|
output UNDERFLOW;
|
||||||
input [29:0] A;
|
input [29:0] A;
|
||||||
input [29:0] ACIN;
|
input [29:0] ACIN;
|
||||||
|
(* invertible_pin = "IS_ALUMODE_INVERTED" *)
|
||||||
input [3:0] ALUMODE;
|
input [3:0] ALUMODE;
|
||||||
input [17:0] B;
|
input [17:0] B;
|
||||||
input [17:0] BCIN;
|
input [17:0] BCIN;
|
||||||
input [47:0] C;
|
input [47:0] C;
|
||||||
input CARRYCASCIN;
|
input CARRYCASCIN;
|
||||||
|
(* invertible_pin = "IS_CARRYIN_INVERTED" *)
|
||||||
input CARRYIN;
|
input CARRYIN;
|
||||||
input [2:0] CARRYINSEL;
|
input [2:0] CARRYINSEL;
|
||||||
input CEA1;
|
input CEA1;
|
||||||
|
@ -3398,10 +3443,13 @@ module DSP48E1 (...);
|
||||||
input CEM;
|
input CEM;
|
||||||
input CEP;
|
input CEP;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [24:0] D;
|
input [24:0] D;
|
||||||
|
(* invertible_pin = "IS_INMODE_INVERTED" *)
|
||||||
input [4:0] INMODE;
|
input [4:0] INMODE;
|
||||||
input MULTSIGNIN;
|
input MULTSIGNIN;
|
||||||
|
(* invertible_pin = "IS_OPMODE_INVERTED" *)
|
||||||
input [6:0] OPMODE;
|
input [6:0] OPMODE;
|
||||||
input [47:0] PCIN;
|
input [47:0] PCIN;
|
||||||
input RSTA;
|
input RSTA;
|
||||||
|
@ -3422,7 +3470,9 @@ module BUFGCE (...);
|
||||||
parameter [0:0] IS_I_INVERTED = 1'b0;
|
parameter [0:0] IS_I_INVERTED = 1'b0;
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O;
|
output O;
|
||||||
|
(* invertible_pin = "IS_CE_INVERTED" *)
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_I_INVERTED" *)
|
||||||
input I;
|
input I;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -3483,18 +3533,19 @@ module BUFMRCE (...);
|
||||||
parameter [0:0] IS_CE_INVERTED = 1'b0;
|
parameter [0:0] IS_CE_INVERTED = 1'b0;
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O;
|
output O;
|
||||||
|
(* invertible_pin = "IS_CE_INVERTED" *)
|
||||||
input CE;
|
input CE;
|
||||||
input I;
|
input I;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module BUFR (...);
|
module BUFR (...);
|
||||||
|
parameter BUFR_DIVIDE = "BYPASS";
|
||||||
|
parameter SIM_DEVICE = "7SERIES";
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O;
|
output O;
|
||||||
input CE;
|
input CE;
|
||||||
input CLR;
|
input CLR;
|
||||||
input I;
|
input I;
|
||||||
parameter BUFR_DIVIDE = "BYPASS";
|
|
||||||
parameter SIM_DEVICE = "7SERIES";
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module MMCME2_ADV (...);
|
module MMCME2_ADV (...);
|
||||||
|
@ -3575,6 +3626,7 @@ module MMCME2_ADV (...);
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
input CLKIN1;
|
input CLKIN1;
|
||||||
input CLKIN2;
|
input CLKIN2;
|
||||||
|
(* invertible_pin = "IS_CLKINSEL_INVERTED" *)
|
||||||
input CLKINSEL;
|
input CLKINSEL;
|
||||||
input [6:0] DADDR;
|
input [6:0] DADDR;
|
||||||
input DCLK;
|
input DCLK;
|
||||||
|
@ -3582,9 +3634,13 @@ module MMCME2_ADV (...);
|
||||||
input [15:0] DI;
|
input [15:0] DI;
|
||||||
input DWE;
|
input DWE;
|
||||||
input PSCLK;
|
input PSCLK;
|
||||||
|
(* invertible_pin = "IS_PSEN_INVERTED" *)
|
||||||
input PSEN;
|
input PSEN;
|
||||||
|
(* invertible_pin = "IS_PSINCDEC_INVERTED" *)
|
||||||
input PSINCDEC;
|
input PSINCDEC;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -3689,11 +3745,14 @@ module PLLE2_ADV (...);
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
input CLKIN1;
|
input CLKIN1;
|
||||||
input CLKIN2;
|
input CLKIN2;
|
||||||
|
(* invertible_pin = "IS_CLKINSEL_INVERTED" *)
|
||||||
input CLKINSEL;
|
input CLKINSEL;
|
||||||
input DCLK;
|
input DCLK;
|
||||||
input DEN;
|
input DEN;
|
||||||
input DWE;
|
input DWE;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
input [15:0] DI;
|
input [15:0] DI;
|
||||||
input [6:0] DADDR;
|
input [6:0] DADDR;
|
||||||
|
@ -4022,11 +4081,14 @@ module IDELAYE2 (...);
|
||||||
output [4:0] CNTVALUEOUT;
|
output [4:0] CNTVALUEOUT;
|
||||||
output DATAOUT;
|
output DATAOUT;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C;
|
input C;
|
||||||
input CE;
|
input CE;
|
||||||
input CINVCTRL;
|
input CINVCTRL;
|
||||||
input [4:0] CNTVALUEIN;
|
input [4:0] CNTVALUEIN;
|
||||||
|
(* invertible_pin = "IS_DATAIN_INVERTED" *)
|
||||||
input DATAIN;
|
input DATAIN;
|
||||||
|
(* invertible_pin = "IS_IDATAIN_INVERTED" *)
|
||||||
input IDATAIN;
|
input IDATAIN;
|
||||||
input INC;
|
input INC;
|
||||||
input LD;
|
input LD;
|
||||||
|
@ -4264,20 +4326,27 @@ module ISERDESE2 (...);
|
||||||
input CE1;
|
input CE1;
|
||||||
input CE2;
|
input CE2;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKB_INVERTED" *)
|
||||||
input CLKB;
|
input CLKB;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKDIV_INVERTED" *)
|
||||||
input CLKDIV;
|
input CLKDIV;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKDIVP_INVERTED" *)
|
||||||
input CLKDIVP;
|
input CLKDIVP;
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
input D;
|
input D;
|
||||||
input DDLY;
|
input DDLY;
|
||||||
input DYNCLKDIVSEL;
|
input DYNCLKDIVSEL;
|
||||||
input DYNCLKSEL;
|
input DYNCLKSEL;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_OCLK_INVERTED" *)
|
||||||
input OCLK;
|
input OCLK;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_OCLKB_INVERTED" *)
|
||||||
input OCLKB;
|
input OCLKB;
|
||||||
input OFB;
|
input OFB;
|
||||||
input RST;
|
input RST;
|
||||||
|
@ -4338,6 +4407,7 @@ module ODELAYE2 (...);
|
||||||
output [4:0] CNTVALUEOUT;
|
output [4:0] CNTVALUEOUT;
|
||||||
output DATAOUT;
|
output DATAOUT;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C;
|
input C;
|
||||||
input CE;
|
input CE;
|
||||||
input CINVCTRL;
|
input CINVCTRL;
|
||||||
|
@ -4346,6 +4416,7 @@ module ODELAYE2 (...);
|
||||||
input INC;
|
input INC;
|
||||||
input LD;
|
input LD;
|
||||||
input LDPIPEEN;
|
input LDPIPEEN;
|
||||||
|
(* invertible_pin = "IS_ODATAIN_INVERTED" *)
|
||||||
input ODATAIN;
|
input ODATAIN;
|
||||||
input REGRST;
|
input REGRST;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4384,24 +4455,38 @@ module OSERDESE2 (...);
|
||||||
output TFB;
|
output TFB;
|
||||||
output TQ;
|
output TQ;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKDIV_INVERTED" *)
|
||||||
input CLKDIV;
|
input CLKDIV;
|
||||||
|
(* invertible_pin = "IS_D1_INVERTED" *)
|
||||||
input D1;
|
input D1;
|
||||||
|
(* invertible_pin = "IS_D2_INVERTED" *)
|
||||||
input D2;
|
input D2;
|
||||||
|
(* invertible_pin = "IS_D3_INVERTED" *)
|
||||||
input D3;
|
input D3;
|
||||||
|
(* invertible_pin = "IS_D4_INVERTED" *)
|
||||||
input D4;
|
input D4;
|
||||||
|
(* invertible_pin = "IS_D5_INVERTED" *)
|
||||||
input D5;
|
input D5;
|
||||||
|
(* invertible_pin = "IS_D6_INVERTED" *)
|
||||||
input D6;
|
input D6;
|
||||||
|
(* invertible_pin = "IS_D7_INVERTED" *)
|
||||||
input D7;
|
input D7;
|
||||||
|
(* invertible_pin = "IS_D8_INVERTED" *)
|
||||||
input D8;
|
input D8;
|
||||||
input OCE;
|
input OCE;
|
||||||
input RST;
|
input RST;
|
||||||
input SHIFTIN1;
|
input SHIFTIN1;
|
||||||
input SHIFTIN2;
|
input SHIFTIN2;
|
||||||
|
(* invertible_pin = "IS_T1_INVERTED" *)
|
||||||
input T1;
|
input T1;
|
||||||
|
(* invertible_pin = "IS_T2_INVERTED" *)
|
||||||
input T2;
|
input T2;
|
||||||
|
(* invertible_pin = "IS_T3_INVERTED" *)
|
||||||
input T3;
|
input T3;
|
||||||
|
(* invertible_pin = "IS_T4_INVERTED" *)
|
||||||
input T4;
|
input T4;
|
||||||
input TBYTEIN;
|
input TBYTEIN;
|
||||||
input TCE;
|
input TCE;
|
||||||
|
@ -4474,6 +4559,7 @@ module PHASER_IN (...);
|
||||||
input FREQREFCLK;
|
input FREQREFCLK;
|
||||||
input MEMREFCLK;
|
input MEMREFCLK;
|
||||||
input PHASEREFCLK;
|
input PHASEREFCLK;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
input SYNCIN;
|
input SYNCIN;
|
||||||
input SYSCLK;
|
input SYSCLK;
|
||||||
|
@ -4515,6 +4601,7 @@ module PHASER_IN_PHY (...);
|
||||||
input FREQREFCLK;
|
input FREQREFCLK;
|
||||||
input MEMREFCLK;
|
input MEMREFCLK;
|
||||||
input PHASEREFCLK;
|
input PHASEREFCLK;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
input RSTDQSFIND;
|
input RSTDQSFIND;
|
||||||
input SYNCIN;
|
input SYNCIN;
|
||||||
|
@ -4557,6 +4644,7 @@ module PHASER_OUT (...);
|
||||||
input FREQREFCLK;
|
input FREQREFCLK;
|
||||||
input MEMREFCLK;
|
input MEMREFCLK;
|
||||||
input PHASEREFCLK;
|
input PHASEREFCLK;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
input SELFINEOCLKDELAY;
|
input SELFINEOCLKDELAY;
|
||||||
input SYNCIN;
|
input SYNCIN;
|
||||||
|
@ -4601,6 +4689,7 @@ module PHASER_OUT_PHY (...);
|
||||||
input FREQREFCLK;
|
input FREQREFCLK;
|
||||||
input MEMREFCLK;
|
input MEMREFCLK;
|
||||||
input PHASEREFCLK;
|
input PHASEREFCLK;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
input SELFINEOCLKDELAY;
|
input SELFINEOCLKDELAY;
|
||||||
input SYNCIN;
|
input SYNCIN;
|
||||||
|
@ -4614,7 +4703,9 @@ module PHASER_REF (...);
|
||||||
parameter [0:0] IS_PWRDWN_INVERTED = 1'b0;
|
parameter [0:0] IS_PWRDWN_INVERTED = 1'b0;
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
input CLKIN;
|
input CLKIN;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -4716,13 +4807,19 @@ module FIFO18E1 (...);
|
||||||
input [31:0] DI;
|
input [31:0] DI;
|
||||||
input [3:0] DIP;
|
input [3:0] DIP;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_RDCLK_INVERTED" *)
|
||||||
input RDCLK;
|
input RDCLK;
|
||||||
|
(* invertible_pin = "IS_RDEN_INVERTED" *)
|
||||||
input RDEN;
|
input RDEN;
|
||||||
input REGCE;
|
input REGCE;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RSTREG_INVERTED" *)
|
||||||
input RSTREG;
|
input RSTREG;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WRCLK_INVERTED" *)
|
||||||
input WRCLK;
|
input WRCLK;
|
||||||
|
(* invertible_pin = "IS_WREN_INVERTED" *)
|
||||||
input WREN;
|
input WREN;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -4763,13 +4860,19 @@ module FIFO36E1 (...);
|
||||||
input INJECTDBITERR;
|
input INJECTDBITERR;
|
||||||
input INJECTSBITERR;
|
input INJECTSBITERR;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_RDCLK_INVERTED" *)
|
||||||
input RDCLK;
|
input RDCLK;
|
||||||
|
(* invertible_pin = "IS_RDEN_INVERTED" *)
|
||||||
input RDEN;
|
input RDEN;
|
||||||
input REGCE;
|
input REGCE;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RSTREG_INVERTED" *)
|
||||||
input RSTREG;
|
input RSTREG;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WRCLK_INVERTED" *)
|
||||||
input WRCLK;
|
input WRCLK;
|
||||||
|
(* invertible_pin = "IS_WREN_INVERTED" *)
|
||||||
input WREN;
|
input WREN;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -4786,6 +4889,7 @@ module RAM128X1S (...);
|
||||||
input A6;
|
input A6;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4797,6 +4901,7 @@ module RAM256X1S (...);
|
||||||
input [7:0] A;
|
input [7:0] A;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4820,6 +4925,7 @@ module RAM32M (...);
|
||||||
input [1:0] DIC;
|
input [1:0] DIC;
|
||||||
input [1:0] DID;
|
input [1:0] DID;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4835,6 +4941,7 @@ module RAM32X1S (...);
|
||||||
input A4;
|
input A4;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4850,6 +4957,7 @@ module RAM32X1S_1 (...);
|
||||||
input A4;
|
input A4;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4868,6 +4976,7 @@ module RAM32X2S (...);
|
||||||
input D0;
|
input D0;
|
||||||
input D1;
|
input D1;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4891,6 +5000,7 @@ module RAM64M (...);
|
||||||
input DIC;
|
input DIC;
|
||||||
input DID;
|
input DID;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4907,6 +5017,7 @@ module RAM64X1S (...);
|
||||||
input A5;
|
input A5;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4923,6 +5034,7 @@ module RAM64X1S_1 (...);
|
||||||
input A5;
|
input A5;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -4942,6 +5054,7 @@ module RAM64X2S (...);
|
||||||
input D0;
|
input D0;
|
||||||
input D1;
|
input D1;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -5004,8 +5117,10 @@ module IDDR (...);
|
||||||
output Q1;
|
output Q1;
|
||||||
output Q2;
|
output Q2;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C;
|
input C;
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
input D;
|
input D;
|
||||||
input R;
|
input R;
|
||||||
input S;
|
input S;
|
||||||
|
@ -5022,10 +5137,13 @@ module IDDR_2CLK (...);
|
||||||
output Q1;
|
output Q1;
|
||||||
output Q2;
|
output Q2;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C;
|
input C;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CB_INVERTED" *)
|
||||||
input CB;
|
input CB;
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_D_INVERTED" *)
|
||||||
input D;
|
input D;
|
||||||
input R;
|
input R;
|
||||||
input S;
|
input S;
|
||||||
|
@ -5038,8 +5156,10 @@ module LDCE (...);
|
||||||
parameter MSGON = "TRUE";
|
parameter MSGON = "TRUE";
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
output Q;
|
output Q;
|
||||||
|
(* invertible_pin = "IS_CLR_INVERTED" *)
|
||||||
input CLR;
|
input CLR;
|
||||||
input D;
|
input D;
|
||||||
|
(* invertible_pin = "IS_G_INVERTED" *)
|
||||||
input G;
|
input G;
|
||||||
input GE;
|
input GE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -5052,20 +5172,14 @@ module LDPE (...);
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
output Q;
|
output Q;
|
||||||
input D;
|
input D;
|
||||||
|
(* invertible_pin = "IS_G_INVERTED" *)
|
||||||
input G;
|
input G;
|
||||||
input GE;
|
input GE;
|
||||||
|
(* invertible_pin = "IS_PRE_INVERTED" *)
|
||||||
input PRE;
|
input PRE;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module ODDR (...);
|
module ODDR (...);
|
||||||
output Q;
|
|
||||||
(* clkbuf_sink *)
|
|
||||||
input C;
|
|
||||||
input CE;
|
|
||||||
input D1;
|
|
||||||
input D2;
|
|
||||||
input R;
|
|
||||||
input S;
|
|
||||||
parameter DDR_CLK_EDGE = "OPPOSITE_EDGE";
|
parameter DDR_CLK_EDGE = "OPPOSITE_EDGE";
|
||||||
parameter INIT = 1'b0;
|
parameter INIT = 1'b0;
|
||||||
parameter [0:0] IS_C_INVERTED = 1'b0;
|
parameter [0:0] IS_C_INVERTED = 1'b0;
|
||||||
|
@ -5074,6 +5188,17 @@ module ODDR (...);
|
||||||
parameter SRTYPE = "SYNC";
|
parameter SRTYPE = "SYNC";
|
||||||
parameter MSGON = "TRUE";
|
parameter MSGON = "TRUE";
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
|
output Q;
|
||||||
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
|
input C;
|
||||||
|
input CE;
|
||||||
|
(* invertible_pin = "IS_D1_INVERTED" *)
|
||||||
|
input D1;
|
||||||
|
(* invertible_pin = "IS_D2_INVERTED" *)
|
||||||
|
input D2;
|
||||||
|
input R;
|
||||||
|
input S;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
module CFGLUT5 (...);
|
module CFGLUT5 (...);
|
||||||
|
@ -5090,6 +5215,7 @@ module CFGLUT5 (...);
|
||||||
input CDI;
|
input CDI;
|
||||||
input CE;
|
input CE;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
|
|
@ -7948,8 +7948,10 @@ module SYSMONE1 (...);
|
||||||
output [4:0] MUXADDR;
|
output [4:0] MUXADDR;
|
||||||
output OT;
|
output OT;
|
||||||
input CONVST;
|
input CONVST;
|
||||||
|
(* invertible_pin = "IS_CONVSTCLK_INVERTED" *)
|
||||||
input CONVSTCLK;
|
input CONVSTCLK;
|
||||||
input [7:0] DADDR;
|
input [7:0] DADDR;
|
||||||
|
(* invertible_pin = "IS_DCLK_INVERTED" *)
|
||||||
input DCLK;
|
input DCLK;
|
||||||
input DEN;
|
input DEN;
|
||||||
input [15:0] DI;
|
input [15:0] DI;
|
||||||
|
@ -8058,8 +8060,10 @@ module SYSMONE4 (...);
|
||||||
output OT;
|
output OT;
|
||||||
output SMBALERT_TS;
|
output SMBALERT_TS;
|
||||||
input CONVST;
|
input CONVST;
|
||||||
|
(* invertible_pin = "IS_CONVSTCLK_INVERTED" *)
|
||||||
input CONVSTCLK;
|
input CONVSTCLK;
|
||||||
input [7:0] DADDR;
|
input [7:0] DADDR;
|
||||||
|
(* invertible_pin = "IS_DCLK_INVERTED" *)
|
||||||
input DCLK;
|
input DCLK;
|
||||||
input DEN;
|
input DEN;
|
||||||
input [15:0] DI;
|
input [15:0] DI;
|
||||||
|
@ -8134,11 +8138,13 @@ module DSP48E2 (...);
|
||||||
output [7:0] XOROUT;
|
output [7:0] XOROUT;
|
||||||
input [29:0] A;
|
input [29:0] A;
|
||||||
input [29:0] ACIN;
|
input [29:0] ACIN;
|
||||||
|
(* invertible_pin = "IS_ALUMODE_INVERTED" *)
|
||||||
input [3:0] ALUMODE;
|
input [3:0] ALUMODE;
|
||||||
input [17:0] B;
|
input [17:0] B;
|
||||||
input [17:0] BCIN;
|
input [17:0] BCIN;
|
||||||
input [47:0] C;
|
input [47:0] C;
|
||||||
input CARRYCASCIN;
|
input CARRYCASCIN;
|
||||||
|
(* invertible_pin = "IS_CARRYIN_INVERTED" *)
|
||||||
input CARRYIN;
|
input CARRYIN;
|
||||||
input [2:0] CARRYINSEL;
|
input [2:0] CARRYINSEL;
|
||||||
input CEA1;
|
input CEA1;
|
||||||
|
@ -8155,21 +8161,34 @@ module DSP48E2 (...);
|
||||||
input CEM;
|
input CEM;
|
||||||
input CEP;
|
input CEP;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [26:0] D;
|
input [26:0] D;
|
||||||
|
(* invertible_pin = "IS_INMODE_INVERTED" *)
|
||||||
input [4:0] INMODE;
|
input [4:0] INMODE;
|
||||||
input MULTSIGNIN;
|
input MULTSIGNIN;
|
||||||
|
(* invertible_pin = "IS_OPMODE_INVERTED" *)
|
||||||
input [8:0] OPMODE;
|
input [8:0] OPMODE;
|
||||||
input [47:0] PCIN;
|
input [47:0] PCIN;
|
||||||
|
(* invertible_pin = "IS_RSTA_INVERTED" *)
|
||||||
input RSTA;
|
input RSTA;
|
||||||
|
(* invertible_pin = "IS_RSTALLCARRYIN_INVERTED" *)
|
||||||
input RSTALLCARRYIN;
|
input RSTALLCARRYIN;
|
||||||
|
(* invertible_pin = "IS_RSTALUMODE_INVERTED" *)
|
||||||
input RSTALUMODE;
|
input RSTALUMODE;
|
||||||
|
(* invertible_pin = "IS_RSTB_INVERTED" *)
|
||||||
input RSTB;
|
input RSTB;
|
||||||
|
(* invertible_pin = "IS_RSTC_INVERTED" *)
|
||||||
input RSTC;
|
input RSTC;
|
||||||
|
(* invertible_pin = "IS_RSTCTRL_INVERTED" *)
|
||||||
input RSTCTRL;
|
input RSTCTRL;
|
||||||
|
(* invertible_pin = "IS_RSTD_INVERTED" *)
|
||||||
input RSTD;
|
input RSTD;
|
||||||
|
(* invertible_pin = "IS_RSTINMODE_INVERTED" *)
|
||||||
input RSTINMODE;
|
input RSTINMODE;
|
||||||
|
(* invertible_pin = "IS_RSTM_INVERTED" *)
|
||||||
input RSTM;
|
input RSTM;
|
||||||
|
(* invertible_pin = "IS_RSTP_INVERTED" *)
|
||||||
input RSTP;
|
input RSTP;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -8221,14 +8240,20 @@ module FIFO18E2 (...);
|
||||||
input [31:0] DIN;
|
input [31:0] DIN;
|
||||||
input [3:0] DINP;
|
input [3:0] DINP;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_RDCLK_INVERTED" *)
|
||||||
input RDCLK;
|
input RDCLK;
|
||||||
|
(* invertible_pin = "IS_RDEN_INVERTED" *)
|
||||||
input RDEN;
|
input RDEN;
|
||||||
input REGCE;
|
input REGCE;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RSTREG_INVERTED" *)
|
||||||
input RSTREG;
|
input RSTREG;
|
||||||
input SLEEP;
|
input SLEEP;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WRCLK_INVERTED" *)
|
||||||
input WRCLK;
|
input WRCLK;
|
||||||
|
(* invertible_pin = "IS_WREN_INVERTED" *)
|
||||||
input WREN;
|
input WREN;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -8288,14 +8313,20 @@ module FIFO36E2 (...);
|
||||||
input INJECTDBITERR;
|
input INJECTDBITERR;
|
||||||
input INJECTSBITERR;
|
input INJECTSBITERR;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_RDCLK_INVERTED" *)
|
||||||
input RDCLK;
|
input RDCLK;
|
||||||
|
(* invertible_pin = "IS_RDEN_INVERTED" *)
|
||||||
input RDEN;
|
input RDEN;
|
||||||
input REGCE;
|
input REGCE;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RSTREG_INVERTED" *)
|
||||||
input RSTREG;
|
input RSTREG;
|
||||||
input SLEEP;
|
input SLEEP;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WRCLK_INVERTED" *)
|
||||||
input WRCLK;
|
input WRCLK;
|
||||||
|
(* invertible_pin = "IS_WREN_INVERTED" *)
|
||||||
input WREN;
|
input WREN;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -8431,20 +8462,28 @@ module RAMB18E2 (...);
|
||||||
input CASOREGIMUXEN_A;
|
input CASOREGIMUXEN_A;
|
||||||
input CASOREGIMUXEN_B;
|
input CASOREGIMUXEN_B;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKARDCLK_INVERTED" *)
|
||||||
input CLKARDCLK;
|
input CLKARDCLK;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKBWRCLK_INVERTED" *)
|
||||||
input CLKBWRCLK;
|
input CLKBWRCLK;
|
||||||
input [15:0] DINADIN;
|
input [15:0] DINADIN;
|
||||||
input [15:0] DINBDIN;
|
input [15:0] DINBDIN;
|
||||||
input [1:0] DINPADINP;
|
input [1:0] DINPADINP;
|
||||||
input [1:0] DINPBDINP;
|
input [1:0] DINPBDINP;
|
||||||
|
(* invertible_pin = "IS_ENARDEN_INVERTED" *)
|
||||||
input ENARDEN;
|
input ENARDEN;
|
||||||
|
(* invertible_pin = "IS_ENBWREN_INVERTED" *)
|
||||||
input ENBWREN;
|
input ENBWREN;
|
||||||
input REGCEAREGCE;
|
input REGCEAREGCE;
|
||||||
input REGCEB;
|
input REGCEB;
|
||||||
|
(* invertible_pin = "IS_RSTRAMARSTRAM_INVERTED" *)
|
||||||
input RSTRAMARSTRAM;
|
input RSTRAMARSTRAM;
|
||||||
|
(* invertible_pin = "IS_RSTRAMB_INVERTED" *)
|
||||||
input RSTRAMB;
|
input RSTRAMB;
|
||||||
|
(* invertible_pin = "IS_RSTREGARSTREG_INVERTED" *)
|
||||||
input RSTREGARSTREG;
|
input RSTREGARSTREG;
|
||||||
|
(* invertible_pin = "IS_RSTREGB_INVERTED" *)
|
||||||
input RSTREGB;
|
input RSTREGB;
|
||||||
input SLEEP;
|
input SLEEP;
|
||||||
input [1:0] WEA;
|
input [1:0] WEA;
|
||||||
|
@ -8666,23 +8705,31 @@ module RAMB36E2 (...);
|
||||||
input CASOREGIMUXEN_A;
|
input CASOREGIMUXEN_A;
|
||||||
input CASOREGIMUXEN_B;
|
input CASOREGIMUXEN_B;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKARDCLK_INVERTED" *)
|
||||||
input CLKARDCLK;
|
input CLKARDCLK;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKBWRCLK_INVERTED" *)
|
||||||
input CLKBWRCLK;
|
input CLKBWRCLK;
|
||||||
input [31:0] DINADIN;
|
input [31:0] DINADIN;
|
||||||
input [31:0] DINBDIN;
|
input [31:0] DINBDIN;
|
||||||
input [3:0] DINPADINP;
|
input [3:0] DINPADINP;
|
||||||
input [3:0] DINPBDINP;
|
input [3:0] DINPBDINP;
|
||||||
input ECCPIPECE;
|
input ECCPIPECE;
|
||||||
|
(* invertible_pin = "IS_ENARDEN_INVERTED" *)
|
||||||
input ENARDEN;
|
input ENARDEN;
|
||||||
|
(* invertible_pin = "IS_ENBWREN_INVERTED" *)
|
||||||
input ENBWREN;
|
input ENBWREN;
|
||||||
input INJECTDBITERR;
|
input INJECTDBITERR;
|
||||||
input INJECTSBITERR;
|
input INJECTSBITERR;
|
||||||
input REGCEAREGCE;
|
input REGCEAREGCE;
|
||||||
input REGCEB;
|
input REGCEB;
|
||||||
|
(* invertible_pin = "IS_RSTRAMARSTRAM_INVERTED" *)
|
||||||
input RSTRAMARSTRAM;
|
input RSTRAMARSTRAM;
|
||||||
|
(* invertible_pin = "IS_RSTRAMB_INVERTED" *)
|
||||||
input RSTRAMB;
|
input RSTRAMB;
|
||||||
|
(* invertible_pin = "IS_RSTREGARSTREG_INVERTED" *)
|
||||||
input RSTREGARSTREG;
|
input RSTREGARSTREG;
|
||||||
|
(* invertible_pin = "IS_RSTREGB_INVERTED" *)
|
||||||
input RSTREGB;
|
input RSTREGB;
|
||||||
input SLEEP;
|
input SLEEP;
|
||||||
input [3:0] WEA;
|
input [3:0] WEA;
|
||||||
|
@ -8777,10 +8824,13 @@ module URAM288 (...);
|
||||||
input CAS_IN_SBITERR_A;
|
input CAS_IN_SBITERR_A;
|
||||||
input CAS_IN_SBITERR_B;
|
input CAS_IN_SBITERR_B;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [71:0] DIN_A;
|
input [71:0] DIN_A;
|
||||||
input [71:0] DIN_B;
|
input [71:0] DIN_B;
|
||||||
|
(* invertible_pin = "IS_EN_A_INVERTED" *)
|
||||||
input EN_A;
|
input EN_A;
|
||||||
|
(* invertible_pin = "IS_EN_B_INVERTED" *)
|
||||||
input EN_B;
|
input EN_B;
|
||||||
input INJECT_DBITERR_A;
|
input INJECT_DBITERR_A;
|
||||||
input INJECT_DBITERR_B;
|
input INJECT_DBITERR_B;
|
||||||
|
@ -8790,9 +8840,13 @@ module URAM288 (...);
|
||||||
input OREG_CE_B;
|
input OREG_CE_B;
|
||||||
input OREG_ECC_CE_A;
|
input OREG_ECC_CE_A;
|
||||||
input OREG_ECC_CE_B;
|
input OREG_ECC_CE_B;
|
||||||
|
(* invertible_pin = "IS_RDB_WR_A_INVERTED" *)
|
||||||
input RDB_WR_A;
|
input RDB_WR_A;
|
||||||
|
(* invertible_pin = "IS_RDB_WR_B_INVERTED" *)
|
||||||
input RDB_WR_B;
|
input RDB_WR_B;
|
||||||
|
(* invertible_pin = "IS_RST_A_INVERTED" *)
|
||||||
input RST_A;
|
input RST_A;
|
||||||
|
(* invertible_pin = "IS_RST_B_INVERTED" *)
|
||||||
input RST_B;
|
input RST_B;
|
||||||
input SLEEP;
|
input SLEEP;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -8835,10 +8889,13 @@ module URAM288_BASE (...);
|
||||||
input [8:0] BWE_A;
|
input [8:0] BWE_A;
|
||||||
input [8:0] BWE_B;
|
input [8:0] BWE_B;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [71:0] DIN_A;
|
input [71:0] DIN_A;
|
||||||
input [71:0] DIN_B;
|
input [71:0] DIN_B;
|
||||||
|
(* invertible_pin = "IS_EN_A_INVERTED" *)
|
||||||
input EN_A;
|
input EN_A;
|
||||||
|
(* invertible_pin = "IS_EN_B_INVERTED" *)
|
||||||
input EN_B;
|
input EN_B;
|
||||||
input INJECT_DBITERR_A;
|
input INJECT_DBITERR_A;
|
||||||
input INJECT_DBITERR_B;
|
input INJECT_DBITERR_B;
|
||||||
|
@ -8848,9 +8905,13 @@ module URAM288_BASE (...);
|
||||||
input OREG_CE_B;
|
input OREG_CE_B;
|
||||||
input OREG_ECC_CE_A;
|
input OREG_ECC_CE_A;
|
||||||
input OREG_ECC_CE_B;
|
input OREG_ECC_CE_B;
|
||||||
|
(* invertible_pin = "IS_RDB_WR_A_INVERTED" *)
|
||||||
input RDB_WR_A;
|
input RDB_WR_A;
|
||||||
|
(* invertible_pin = "IS_RDB_WR_B_INVERTED" *)
|
||||||
input RDB_WR_B;
|
input RDB_WR_B;
|
||||||
|
(* invertible_pin = "IS_RST_A_INVERTED" *)
|
||||||
input RST_A;
|
input RST_A;
|
||||||
|
(* invertible_pin = "IS_RST_B_INVERTED" *)
|
||||||
input RST_B;
|
input RST_B;
|
||||||
input SLEEP;
|
input SLEEP;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -8868,6 +8929,7 @@ module RAM128X1S (...);
|
||||||
input A6;
|
input A6;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -8881,6 +8943,7 @@ module RAM256X1D (...);
|
||||||
input D;
|
input D;
|
||||||
input [7:0] DPRA;
|
input [7:0] DPRA;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -8892,6 +8955,7 @@ module RAM256X1S (...);
|
||||||
input [7:0] A;
|
input [7:0] A;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -8915,6 +8979,7 @@ module RAM32M (...);
|
||||||
input [1:0] DIC;
|
input [1:0] DIC;
|
||||||
input [1:0] DID;
|
input [1:0] DID;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -8954,6 +9019,7 @@ module RAM32M16 (...);
|
||||||
input [1:0] DIG;
|
input [1:0] DIG;
|
||||||
input [1:0] DIH;
|
input [1:0] DIH;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -8969,6 +9035,7 @@ module RAM32X1S (...);
|
||||||
input A4;
|
input A4;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -8980,6 +9047,7 @@ module RAM512X1S (...);
|
||||||
input [8:0] A;
|
input [8:0] A;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -9003,6 +9071,7 @@ module RAM64M (...);
|
||||||
input DIC;
|
input DIC;
|
||||||
input DID;
|
input DID;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -9042,6 +9111,7 @@ module RAM64M8 (...);
|
||||||
input DIG;
|
input DIG;
|
||||||
input DIH;
|
input DIH;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -9058,6 +9128,7 @@ module RAM64X1S (...);
|
||||||
input A5;
|
input A5;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_WCLK_INVERTED" *)
|
||||||
input WCLK;
|
input WCLK;
|
||||||
input WE;
|
input WE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -9066,6 +9137,7 @@ module AND2B1L (...);
|
||||||
parameter [0:0] IS_SRI_INVERTED = 1'b0;
|
parameter [0:0] IS_SRI_INVERTED = 1'b0;
|
||||||
output O;
|
output O;
|
||||||
input DI;
|
input DI;
|
||||||
|
(* invertible_pin = "IS_SRI_INVERTED" *)
|
||||||
input SRI;
|
input SRI;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9093,6 +9165,7 @@ module CFGLUT5 (...);
|
||||||
input CDI;
|
input CDI;
|
||||||
input CE;
|
input CE;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9107,6 +9180,7 @@ module OR2L (...);
|
||||||
parameter [0:0] IS_SRI_INVERTED = 1'b0;
|
parameter [0:0] IS_SRI_INVERTED = 1'b0;
|
||||||
output O;
|
output O;
|
||||||
input DI;
|
input DI;
|
||||||
|
(* invertible_pin = "IS_SRI_INVERTED" *)
|
||||||
input SRI;
|
input SRI;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9141,7 +9215,9 @@ module BUFGCE (...);
|
||||||
parameter [0:0] IS_I_INVERTED = 1'b0;
|
parameter [0:0] IS_I_INVERTED = 1'b0;
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O;
|
output O;
|
||||||
|
(* invertible_pin = "IS_CE_INVERTED" *)
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_I_INVERTED" *)
|
||||||
input I;
|
input I;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9159,8 +9235,11 @@ module BUFGCE_DIV (...);
|
||||||
parameter [0:0] IS_I_INVERTED = 1'b0;
|
parameter [0:0] IS_I_INVERTED = 1'b0;
|
||||||
(* clkbuf_driver *)
|
(* clkbuf_driver *)
|
||||||
output O;
|
output O;
|
||||||
|
(* invertible_pin = "IS_CE_INVERTED" *)
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_CLR_INVERTED" *)
|
||||||
input CLR;
|
input CLR;
|
||||||
|
(* invertible_pin = "IS_I_INVERTED" *)
|
||||||
input I;
|
input I;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9270,9 +9349,13 @@ module MMCME3_ADV (...);
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
output PSDONE;
|
output PSDONE;
|
||||||
input CDDCREQ;
|
input CDDCREQ;
|
||||||
|
(* invertible_pin = "IS_CLKFBIN_INVERTED" *)
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
|
(* invertible_pin = "IS_CLKIN1_INVERTED" *)
|
||||||
input CLKIN1;
|
input CLKIN1;
|
||||||
|
(* invertible_pin = "IS_CLKIN2_INVERTED" *)
|
||||||
input CLKIN2;
|
input CLKIN2;
|
||||||
|
(* invertible_pin = "IS_CLKINSEL_INVERTED" *)
|
||||||
input CLKINSEL;
|
input CLKINSEL;
|
||||||
input [6:0] DADDR;
|
input [6:0] DADDR;
|
||||||
input DCLK;
|
input DCLK;
|
||||||
|
@ -9280,9 +9363,13 @@ module MMCME3_ADV (...);
|
||||||
input [15:0] DI;
|
input [15:0] DI;
|
||||||
input DWE;
|
input DWE;
|
||||||
input PSCLK;
|
input PSCLK;
|
||||||
|
(* invertible_pin = "IS_PSEN_INVERTED" *)
|
||||||
input PSEN;
|
input PSEN;
|
||||||
|
(* invertible_pin = "IS_PSINCDEC_INVERTED" *)
|
||||||
input PSINCDEC;
|
input PSINCDEC;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9334,9 +9421,13 @@ module MMCME3_BASE (...);
|
||||||
output CLKOUT5;
|
output CLKOUT5;
|
||||||
output CLKOUT6;
|
output CLKOUT6;
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
|
(* invertible_pin = "IS_CLKFBIN_INVERTED" *)
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
|
(* invertible_pin = "IS_CLKIN1_INVERTED" *)
|
||||||
input CLKIN1;
|
input CLKIN1;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9420,9 +9511,13 @@ module MMCME4_ADV (...);
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
output PSDONE;
|
output PSDONE;
|
||||||
input CDDCREQ;
|
input CDDCREQ;
|
||||||
|
(* invertible_pin = "IS_CLKFBIN_INVERTED" *)
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
|
(* invertible_pin = "IS_CLKIN1_INVERTED" *)
|
||||||
input CLKIN1;
|
input CLKIN1;
|
||||||
|
(* invertible_pin = "IS_CLKIN2_INVERTED" *)
|
||||||
input CLKIN2;
|
input CLKIN2;
|
||||||
|
(* invertible_pin = "IS_CLKINSEL_INVERTED" *)
|
||||||
input CLKINSEL;
|
input CLKINSEL;
|
||||||
input [6:0] DADDR;
|
input [6:0] DADDR;
|
||||||
input DCLK;
|
input DCLK;
|
||||||
|
@ -9430,9 +9525,13 @@ module MMCME4_ADV (...);
|
||||||
input [15:0] DI;
|
input [15:0] DI;
|
||||||
input DWE;
|
input DWE;
|
||||||
input PSCLK;
|
input PSCLK;
|
||||||
|
(* invertible_pin = "IS_PSEN_INVERTED" *)
|
||||||
input PSEN;
|
input PSEN;
|
||||||
|
(* invertible_pin = "IS_PSINCDEC_INVERTED" *)
|
||||||
input PSINCDEC;
|
input PSINCDEC;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9484,9 +9583,13 @@ module MMCME4_BASE (...);
|
||||||
output CLKOUT5;
|
output CLKOUT5;
|
||||||
output CLKOUT6;
|
output CLKOUT6;
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
|
(* invertible_pin = "IS_CLKFBIN_INVERTED" *)
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
|
(* invertible_pin = "IS_CLKIN1_INVERTED" *)
|
||||||
input CLKIN1;
|
input CLKIN1;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9525,7 +9628,9 @@ module PLLE3_ADV (...);
|
||||||
output [15:0] DO;
|
output [15:0] DO;
|
||||||
output DRDY;
|
output DRDY;
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
|
(* invertible_pin = "IS_CLKFBIN_INVERTED" *)
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
|
(* invertible_pin = "IS_CLKIN_INVERTED" *)
|
||||||
input CLKIN;
|
input CLKIN;
|
||||||
input CLKOUTPHYEN;
|
input CLKOUTPHYEN;
|
||||||
input [6:0] DADDR;
|
input [6:0] DADDR;
|
||||||
|
@ -9533,7 +9638,9 @@ module PLLE3_ADV (...);
|
||||||
input DEN;
|
input DEN;
|
||||||
input [15:0] DI;
|
input [15:0] DI;
|
||||||
input DWE;
|
input DWE;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9562,10 +9669,14 @@ module PLLE3_BASE (...);
|
||||||
output CLKOUT1B;
|
output CLKOUT1B;
|
||||||
output CLKOUTPHY;
|
output CLKOUTPHY;
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
|
(* invertible_pin = "IS_CLKFBIN_INVERTED" *)
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
|
(* invertible_pin = "IS_CLKIN_INVERTED" *)
|
||||||
input CLKIN;
|
input CLKIN;
|
||||||
input CLKOUTPHYEN;
|
input CLKOUTPHYEN;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9604,7 +9715,9 @@ module PLLE4_ADV (...);
|
||||||
output [15:0] DO;
|
output [15:0] DO;
|
||||||
output DRDY;
|
output DRDY;
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
|
(* invertible_pin = "IS_CLKFBIN_INVERTED" *)
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
|
(* invertible_pin = "IS_CLKIN_INVERTED" *)
|
||||||
input CLKIN;
|
input CLKIN;
|
||||||
input CLKOUTPHYEN;
|
input CLKOUTPHYEN;
|
||||||
input [6:0] DADDR;
|
input [6:0] DADDR;
|
||||||
|
@ -9612,7 +9725,9 @@ module PLLE4_ADV (...);
|
||||||
input DEN;
|
input DEN;
|
||||||
input [15:0] DI;
|
input [15:0] DI;
|
||||||
input DWE;
|
input DWE;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -9641,10 +9756,14 @@ module PLLE4_BASE (...);
|
||||||
output CLKOUT1B;
|
output CLKOUT1B;
|
||||||
output CLKOUTPHY;
|
output CLKOUTPHY;
|
||||||
output LOCKED;
|
output LOCKED;
|
||||||
|
(* invertible_pin = "IS_CLKFBIN_INVERTED" *)
|
||||||
input CLKFBIN;
|
input CLKFBIN;
|
||||||
|
(* invertible_pin = "IS_CLKIN_INVERTED" *)
|
||||||
input CLKIN;
|
input CLKIN;
|
||||||
input CLKOUTPHYEN;
|
input CLKOUTPHYEN;
|
||||||
|
(* invertible_pin = "IS_PWRDWN_INVERTED" *)
|
||||||
input PWRDWN;
|
input PWRDWN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -10035,6 +10154,7 @@ module IDELAYE3 (...);
|
||||||
input CASC_RETURN;
|
input CASC_RETURN;
|
||||||
input CE;
|
input CE;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [8:0] CNTVALUEIN;
|
input [8:0] CNTVALUEIN;
|
||||||
input DATAIN;
|
input DATAIN;
|
||||||
|
@ -10042,6 +10162,7 @@ module IDELAYE3 (...);
|
||||||
input IDATAIN;
|
input IDATAIN;
|
||||||
input INC;
|
input INC;
|
||||||
input LOAD;
|
input LOAD;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -10249,15 +10370,18 @@ module ISERDESE3 (...);
|
||||||
output INTERNAL_DIVCLK;
|
output INTERNAL_DIVCLK;
|
||||||
output [7:0] Q;
|
output [7:0] Q;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
input CLKDIV;
|
input CLKDIV;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_B_INVERTED" *)
|
||||||
input CLK_B;
|
input CLK_B;
|
||||||
input D;
|
input D;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
input FIFO_RD_CLK;
|
input FIFO_RD_CLK;
|
||||||
input FIFO_RD_EN;
|
input FIFO_RD_EN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -10330,12 +10454,14 @@ module ODELAYE3 (...);
|
||||||
input CASC_RETURN;
|
input CASC_RETURN;
|
||||||
input CE;
|
input CE;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [8:0] CNTVALUEIN;
|
input [8:0] CNTVALUEIN;
|
||||||
input EN_VTC;
|
input EN_VTC;
|
||||||
input INC;
|
input INC;
|
||||||
input LOAD;
|
input LOAD;
|
||||||
input ODATAIN;
|
input ODATAIN;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -10353,10 +10479,13 @@ module OSERDESE3 (...);
|
||||||
output OQ;
|
output OQ;
|
||||||
output T_OUT;
|
output T_OUT;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLKDIV_INVERTED" *)
|
||||||
input CLKDIV;
|
input CLKDIV;
|
||||||
input [7:0] D;
|
input [7:0] D;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
input T;
|
input T;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -10408,7 +10537,9 @@ module RX_BITSLICE (...);
|
||||||
output [39:0] TX_BIT_CTRL_OUT;
|
output [39:0] TX_BIT_CTRL_OUT;
|
||||||
input CE;
|
input CE;
|
||||||
input CE_EXT;
|
input CE_EXT;
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
|
(* invertible_pin = "IS_CLK_EXT_INVERTED" *)
|
||||||
input CLK_EXT;
|
input CLK_EXT;
|
||||||
input [8:0] CNTVALUEIN;
|
input [8:0] CNTVALUEIN;
|
||||||
input [8:0] CNTVALUEIN_EXT;
|
input [8:0] CNTVALUEIN_EXT;
|
||||||
|
@ -10421,8 +10552,11 @@ module RX_BITSLICE (...);
|
||||||
input INC_EXT;
|
input INC_EXT;
|
||||||
input LOAD;
|
input LOAD;
|
||||||
input LOAD_EXT;
|
input LOAD_EXT;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RST_DLY_INVERTED" *)
|
||||||
input RST_DLY;
|
input RST_DLY;
|
||||||
|
(* invertible_pin = "IS_RST_DLY_EXT_INVERTED" *)
|
||||||
input RST_DLY_EXT;
|
input RST_DLY_EXT;
|
||||||
input [39:0] RX_BIT_CTRL_IN;
|
input [39:0] RX_BIT_CTRL_IN;
|
||||||
input [39:0] TX_BIT_CTRL_IN;
|
input [39:0] TX_BIT_CTRL_IN;
|
||||||
|
@ -10472,23 +10606,29 @@ module RXTX_BITSLICE (...);
|
||||||
input FIFO_RD_EN;
|
input FIFO_RD_EN;
|
||||||
input [39:0] RX_BIT_CTRL_IN;
|
input [39:0] RX_BIT_CTRL_IN;
|
||||||
input RX_CE;
|
input RX_CE;
|
||||||
|
(* invertible_pin = "IS_RX_CLK_INVERTED" *)
|
||||||
input RX_CLK;
|
input RX_CLK;
|
||||||
input [8:0] RX_CNTVALUEIN;
|
input [8:0] RX_CNTVALUEIN;
|
||||||
input RX_EN_VTC;
|
input RX_EN_VTC;
|
||||||
input RX_INC;
|
input RX_INC;
|
||||||
input RX_LOAD;
|
input RX_LOAD;
|
||||||
|
(* invertible_pin = "IS_RX_RST_INVERTED" *)
|
||||||
input RX_RST;
|
input RX_RST;
|
||||||
|
(* invertible_pin = "IS_RX_RST_DLY_INVERTED" *)
|
||||||
input RX_RST_DLY;
|
input RX_RST_DLY;
|
||||||
input T;
|
input T;
|
||||||
input TBYTE_IN;
|
input TBYTE_IN;
|
||||||
input [39:0] TX_BIT_CTRL_IN;
|
input [39:0] TX_BIT_CTRL_IN;
|
||||||
input TX_CE;
|
input TX_CE;
|
||||||
|
(* invertible_pin = "IS_TX_CLK_INVERTED" *)
|
||||||
input TX_CLK;
|
input TX_CLK;
|
||||||
input [8:0] TX_CNTVALUEIN;
|
input [8:0] TX_CNTVALUEIN;
|
||||||
input TX_EN_VTC;
|
input TX_EN_VTC;
|
||||||
input TX_INC;
|
input TX_INC;
|
||||||
input TX_LOAD;
|
input TX_LOAD;
|
||||||
|
(* invertible_pin = "IS_TX_RST_INVERTED" *)
|
||||||
input TX_RST;
|
input TX_RST;
|
||||||
|
(* invertible_pin = "IS_TX_RST_DLY_INVERTED" *)
|
||||||
input TX_RST_DLY;
|
input TX_RST_DLY;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -10515,13 +10655,16 @@ module TX_BITSLICE (...);
|
||||||
output [39:0] TX_BIT_CTRL_OUT;
|
output [39:0] TX_BIT_CTRL_OUT;
|
||||||
output T_OUT;
|
output T_OUT;
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [8:0] CNTVALUEIN;
|
input [8:0] CNTVALUEIN;
|
||||||
input [7:0] D;
|
input [7:0] D;
|
||||||
input EN_VTC;
|
input EN_VTC;
|
||||||
input INC;
|
input INC;
|
||||||
input LOAD;
|
input LOAD;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RST_DLY_INVERTED" *)
|
||||||
input RST_DLY;
|
input RST_DLY;
|
||||||
input [39:0] RX_BIT_CTRL_IN;
|
input [39:0] RX_BIT_CTRL_IN;
|
||||||
input T;
|
input T;
|
||||||
|
@ -10549,12 +10692,15 @@ module TX_BITSLICE_TRI (...);
|
||||||
output TRI_OUT;
|
output TRI_OUT;
|
||||||
input [39:0] BIT_CTRL_IN;
|
input [39:0] BIT_CTRL_IN;
|
||||||
input CE;
|
input CE;
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input [8:0] CNTVALUEIN;
|
input [8:0] CNTVALUEIN;
|
||||||
input EN_VTC;
|
input EN_VTC;
|
||||||
input INC;
|
input INC;
|
||||||
input LOAD;
|
input LOAD;
|
||||||
|
(* invertible_pin = "IS_RST_INVERTED" *)
|
||||||
input RST;
|
input RST;
|
||||||
|
(* invertible_pin = "IS_RST_DLY_INVERTED" *)
|
||||||
input RST_DLY;
|
input RST_DLY;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -10564,6 +10710,7 @@ module HARD_SYNC (...);
|
||||||
parameter integer LATENCY = 2;
|
parameter integer LATENCY = 2;
|
||||||
output DOUT;
|
output DOUT;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CLK_INVERTED" *)
|
||||||
input CLK;
|
input CLK;
|
||||||
input DIN;
|
input DIN;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -10575,8 +10722,10 @@ module IDDRE1 (...);
|
||||||
output Q1;
|
output Q1;
|
||||||
output Q2;
|
output Q2;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C;
|
input C;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_CB_INVERTED" *)
|
||||||
input CB;
|
input CB;
|
||||||
input D;
|
input D;
|
||||||
input R;
|
input R;
|
||||||
|
@ -10589,8 +10738,10 @@ module LDCE (...);
|
||||||
parameter MSGON = "TRUE";
|
parameter MSGON = "TRUE";
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
output Q;
|
output Q;
|
||||||
|
(* invertible_pin = "IS_CLR_INVERTED" *)
|
||||||
input CLR;
|
input CLR;
|
||||||
input D;
|
input D;
|
||||||
|
(* invertible_pin = "IS_G_INVERTED" *)
|
||||||
input G;
|
input G;
|
||||||
input GE;
|
input GE;
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -10603,8 +10754,10 @@ module LDPE (...);
|
||||||
parameter XON = "TRUE";
|
parameter XON = "TRUE";
|
||||||
output Q;
|
output Q;
|
||||||
input D;
|
input D;
|
||||||
|
(* invertible_pin = "IS_G_INVERTED" *)
|
||||||
input G;
|
input G;
|
||||||
input GE;
|
input GE;
|
||||||
|
(* invertible_pin = "IS_PRE_INVERTED" *)
|
||||||
input PRE;
|
input PRE;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
@ -10615,8 +10768,11 @@ module ODDRE1 (...);
|
||||||
parameter [0:0] SRVAL = 1'b0;
|
parameter [0:0] SRVAL = 1'b0;
|
||||||
output Q;
|
output Q;
|
||||||
(* clkbuf_sink *)
|
(* clkbuf_sink *)
|
||||||
|
(* invertible_pin = "IS_C_INVERTED" *)
|
||||||
input C;
|
input C;
|
||||||
|
(* invertible_pin = "IS_D1_INVERTED" *)
|
||||||
input D1;
|
input D1;
|
||||||
|
(* invertible_pin = "IS_D2_INVERTED" *)
|
||||||
input D2;
|
input D2;
|
||||||
input SR;
|
input SR;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
read_verilog << EOT
|
||||||
|
|
||||||
|
module ff4(...);
|
||||||
|
parameter [0:0] CLK_INV = 1'b0;
|
||||||
|
parameter [3:0] DATA_INV = 4'b0000;
|
||||||
|
(* invertible_pin = "CLK_INV" *)
|
||||||
|
input clk;
|
||||||
|
(* invertible_pin = "DATA_INV" *)
|
||||||
|
input [3:0] d;
|
||||||
|
output [3:0] q;
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module inv(...);
|
||||||
|
output o;
|
||||||
|
input i;
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module top(...);
|
||||||
|
input d0, d1, d2, d3;
|
||||||
|
input clk;
|
||||||
|
output q;
|
||||||
|
ff4 #(.DATA_INV(4'h5)) ff_inst (.clk(clk), .d({d3, d2, d1, d0}), .q(q));
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
EOT
|
||||||
|
|
||||||
|
extractinv -inv inv o:i
|
||||||
|
clean
|
||||||
|
|
||||||
|
select -assert-count 2 top/t:inv
|
||||||
|
select -assert-count 2 top/t:inv top/t:ff4 %ci:+[d] %ci:+[o] %i
|
||||||
|
|
||||||
|
select -assert-count 1 top/t:inv top/w:d0 %co:+[i] %i
|
||||||
|
select -assert-count 0 top/t:inv top/w:d1 %co:+[i] %i
|
||||||
|
select -assert-count 1 top/t:inv top/w:d2 %co:+[i] %i
|
||||||
|
select -assert-count 0 top/t:inv top/w:d3 %co:+[i] %i
|
||||||
|
|
||||||
|
select -assert-count 0 top/t:ff4 top/w:d0 %co:+[d] %i
|
||||||
|
select -assert-count 1 top/t:ff4 top/w:d1 %co:+[d] %i
|
||||||
|
select -assert-count 0 top/t:ff4 top/w:d2 %co:+[d] %i
|
||||||
|
select -assert-count 1 top/t:ff4 top/w:d3 %co:+[d] %i
|
Loading…
Reference in New Issue