标题
64115 - 为什么我找不到 ISE 中存在的 SIMPRIM 库?描述
浏览到 Vivado 中的库位置(即,<Vivado_Install_Location>\data\verilog\src)时,可以看到其中不含名为 simprims 的文件夹,而在 ISE 的位置 <ISE_Install_Location>\ISE_DS\ISE\verilog\src 处则存在此文件夹。
为什么我找不到 ISE 中存在的 SIMPRIM 库?
解决方案
Vivado 进一步统一了仿真库,现在单一原语不再需要两个仿真文件。在 ISE 中,原先使用的文件如下:
Unisims 文件夹 - AND2.v - 用于行为/网表仿真
Simprims 文件夹 - X_AND2.v - 仅用于时序仿真
这两个文件现已合并,所得文件存在于 unisims 文件夹内,该文件夹所在位置为:<Vivado_Install_Location>\data\verilog\src\unisims
这是使用 XIL_TIMING 宏来完成的。
Vivado 中的 AND2 示例:
module AND2B1L #(
`ifdef XIL_TIMING //Simprim
parameter LOC = "UNPLACED",
`endif
...)(
..
`ifdef XIL_TIMING //Simprim
parameter LOC = "UNPLACED",
`endif
...)(
..
..
..
specify
(DI => O) = (0:0:0, 0:0:0);
(SRI => O) = (0:0:0, 0:0:0);
`ifdef XIL_TIMING
$width (negedge SRI, 0:0:0, 0, notifier);
$width (posedge SRI, 0:0:0, 0, notifier);
`endif
specparam PATHPULSE$ = 0;
endspecify
(DI => O) = (0:0:0, 0:0:0);
(SRI => O) = (0:0:0, 0:0:0);
`ifdef XIL_TIMING
$width (negedge SRI, 0:0:0, 0, notifier);
$width (posedge SRI, 0:0:0, 0, notifier);
`endif
specparam PATHPULSE$ = 0;
endspecify
endmodule
因此,Vivado 中无需像 ISE 那样的 simprim 文件夹。