我可以在具有 2 位 2 对 1 复用器功能的 virtex-5 FPGA 中对 LUT5_D 进行编程吗?
我正在尝试将 2 位 2 比 1 多路复用器放入一个 LUT 中。看起来 LUT5_D
有 5 个输入和 2 个输出。我可以按照我想要的方式对 LUT 进行编程吗?
我之前用过LUT3
、LUT4
。从 virtex-5 库指南来看,要实例化 LUT5_D
,我需要编写一个适当的初始化值,但只有一个要编程的初始化值,因此实际上只有一个输出用过的?或者两个输出在任何时候都会给出相同的值?
LUT5_D #(
.INIT(32'h55550f0f),
) LUT5_D_inst
(.O(O), // General LUT output (1-bit)
.LO(LO), // Local LUT output (1-bit)
.I0(I0), // LUT input (1-bit)
.I1(I1), // LUT input (1-bit)
.I2(I2), // LUT input (1-bit)
.I3(I3), // LUT input (1-bit)
.I4(SEL));
I am trying to fit a 2-bit 2-to-1 mux into one LUT. It seems that LUT5_D
has 5 inputs and 2 outputs. Can I program the LUT as what I want?
I have used LUT3
, LUT4
before. From the virtex-5 library guide, it seems that to instantiate LUT5_D
, I need to program a proper init value, but there is only one init value to program, so only one of the outputs will actually be used? Or will both of the outputs give the same value any time?
LUT5_D #(
.INIT(32'h55550f0f),
) LUT5_D_inst
(.O(O), // General LUT output (1-bit)
.LO(LO), // Local LUT output (1-bit)
.I0(I0), // LUT input (1-bit)
.I1(I1), // LUT input (1-bit)
.I2(I2), // LUT input (1-bit)
.I3(I3), // LUT input (1-bit)
.I4(SEL));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
LUT5_D
不会执行您想要的操作:两个输出是相同的(库指南中的表显示了这一点)。2 个输出选项是
LUT6_2
:对于您的应用程序,您有两个输入(A B) 每个都有两位 (0,1),输出 (Y) 也有两位。
I0
作为选择输入I5
以始终选择顶部 LUT5(逻辑 1 IIRC)。I4:1
连接为A0
、B0
、A1
、B1
。O6
就是Y0
,O5
就是Y1
我把它作为练习留给感兴趣的读者来想出INIT 值:
I0
在I4
和I3
之间进行 MUXI2 之间进行 MUX
和I1
基于I0
The
LUT5_D
is not going to do what you want: the two outputs are identical (the table in the libraries guide shows this).The 2 output option is the
LUT6_2
:For your application, you have two inputs (A and B) each with two bits (0,1) and an output (Y) also with two bits.
I0
as the select inputI5
to always select the top LUT5 (logic 1 IIRC).I4:1
asA0
,B0
,A1
,B1
.O6
is thenY0
,O5
isY1
I leave it as an exercise to the interested reader to come up with the INIT values which:
I4
andI3
based onI0
I2
andI1
based onI0
不要对 INIT 值进行编程。 LUT_MAP 更容易且更易于维护:
使用公共 sel 输入信号,通过将四个 6-LUT 中的每一个拆分为 2 个 5-LUT,可以将上面的 mux2 打包为 8 个(四个 6-LUT)切片。
Don't program INIT values. LUT_MAP is much easier and more maintainable:
With a common sel input signal, the mux2 above can be packed 8 to a (four 6-LUT) slice by splitting each of the four 6-LUTs into 2 5-LUTs.