繁体   English   中英

明确定义Xilinx XST工具中LUT和Slice的使用方式?

[英]Explicitly define how LUTs and slices are used in Xilinx XST tool?

我正在尝试实现LUT和切片的一些非常具体的行为,用VHDL编写,用于使用XST工具合成的Xilinx Virtex 5 FPGA。 我不知道是否可以通过让工具推断出我的意思来实现我的行为,那么我该如何明确指出这种情况呢?

我在谈论在Virtex5上使用6输入LUT,其中有4个在CLB中。

我想明确说明: - 在一个CLB切片中输入4个LUT中的每一个 - 从4个XORCY路由“S”输出 - 指定“第一个”MUXCY(C0)的输入 - “第4个”MUXCY的路由输出(Cn) - 能够以特定的顺序指定CLB的每个LUT的输入,因为它们显然是级联的。

理想情况下,我喜欢用VHDL实例化一个带有所有输入和输出的'CLB',并且能够映射这些......

我对文档进行了大量研究,并没有找到任何真正的东西

Saar建议您使用LUT6显式实例化LUT。 我更喜欢使用LUT_MAP约束来控制技术映射。 它需要较少的维护,您的HDL代码仍然与设备无关,并且模拟器友好。

这是一个例子。

(* LUT_MAP="yes" *)
module mux4(sel, a, b, c, d, o);
input [1:0] sel;
input       a;
input       b;
input       c;
input       d;
output reg  o;

always @* begin
    case(sel)
    2'b00: o <= a;
    2'b01: o <= b;
    2'b10: o <= c;
    2'b11: o <= d;
    endcase
end
endmodule

这使您可以编写任意组合逻辑并告诉综合(XST)这个(最多6个输入,一个输出)模块必须在单个LUT中实现。 如果将其与KEEP_HIERARCHY和RLOC约束相结合,则可以构建RPM(关系放置的宏)。

(* KEEP_HIERARCHY="true" *)
module mux4x4p4(sel, a, b, c, d, o);
input  [1:0] sel;
input  [3:0] a;
input  [3:0] b;
input  [3:0] c;
input  [3:0] d;
output [3:0] o;

(* RLOC="X0Y0" *)
mux4 m0(sel, a[0], b[0], c[0], d[0], o[0]);
(* RLOC="X0Y0" *)
mux4 m1(sel, a[1], b[1], c[1], d[1], o[1]);
(* RLOC="X0Y0" *)
mux4 m2(sel, a[2], b[2], c[2], d[2], o[2]);
(* RLOC="X0Y0" *)
mux4 m3(sel, a[3], b[3], c[3], d[3], o[3]);
endmodule

在我的旧网站www.fpgacpu.org上有关于数据路径的RPM的更多信息。 例如,高性能FPGA设计的艺术: http//www.fpgacpu.org/log/aug02.html#art

快乐的黑客!

您可以使用RLOC和BEL约束来实现所需的行为。 您可以在VHDL中嵌入约束:

VHDL Syntax

Declare the VHDL constraint as follows:
attribute bel : string;

Specify the VHDL constraint as follows:
attribute bel of {component_name| label_name}: {component|label} is {F|G|FFA|FFB|FFC|FFD|FFX|FFY|XORF|XORG|A6LUT|B6LUT|C6LUT|D6LUT|A5LUT|B5LUT|C5LUT|D5LUT}";

查看Xilinx约束指南以获取更多详细信息。

有关示例VHDL,请参阅comp.arch.fpga上的这篇文章: http//newsgroups.derkeiler.com/Archive/Comp/comp.arch.fpga/2008-05/msg00560.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM