最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

fpga - Xilinx 7 overwrite LUT contents after flashing - Stack Overflow

programmeradmin0浏览0评论

I want to be able to change device behavior during work

Can I overwrite INIT values of LUT within FPGA work process? I've seen, that I can use it as LUTRAM, but I also want to be able to shift data from one LUT to another. I can use it as Shif Register, also, bit for some reason, capacity of LUT6 LUTRAM is 64bit, but for LUT6 shiftreg it is 32bit.

So is there any way I can overwrite values the same way they are loaded at poweron?

I want to be able to change device behavior during work

Can I overwrite INIT values of LUT within FPGA work process? I've seen, that I can use it as LUTRAM, but I also want to be able to shift data from one LUT to another. I can use it as Shif Register, also, bit for some reason, capacity of LUT6 LUTRAM is 64bit, but for LUT6 shiftreg it is 32bit.

So is there any way I can overwrite values the same way they are loaded at poweron?

Share Improve this question asked Mar 2 at 15:47 lazbalazba 1811 silver badge12 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

In Xilinx FPGAs, especially the 7 series, the LUTs (Look-Up Tables) are typically initialized with the values specified in the configuration (bitstream) during the power-on or reconfiguration phase. These values are typically stored in the "INIT" parameters of the LUTs.

LUT as LUTRAM (Block RAM Mode): As you mentioned, one of the ways to change the contents of LUTs during the FPGA's operation is to configure the LUTs as LUTRAM. LUTRAM allows the LUT to be used as a small RAM block, and the contents can be written to or read from during normal operation. In this case, the LUT's INIT value can be overwritten with new data.

LUT as Shift Register: Similarly, LUTs can also be configured to act as shift registers (using the LUTs in shift-register mode), which enables shifting data through the LUT. However, there is a limitation in how you use LUTs in shift register mode compared to LUTRAM. For example, a LUT6 configured as a shift register typically supports 32-bit data, while in LUTRAM mode, the capacity can go up to 64 bits.

Overwriting INIT Values Dynamically: During operation, once the FPGA has been programmed and is running, the LUT's INIT values can't be directly rewritten the same way they are loaded at power-on because those values are part of the configuration bitstream. However, by utilizing the LUT as RAM (LUTRAM), you can change its behavior dynamically as you load new data into it.

If you want to shift data from one LUT to another, you could implement a control mechanism in your design where the LUTs, configured as LUTRAM, can be written to dynamically via logic. You would need a control signal to manage when and how the data is shifted between the LUTs. The difference in capacity between the LUT6 configured as LUTRAM (64 bits) and shift register mode (32 bits) comes from the fact that shift register mode is typically more optimized for serial operations, while LUTRAM is designed for parallel read/write operations, which can accommodate more bits. Reconfiguration (Partial Reconfiguration): If you want to modify the behavior of your FPGA during operation in a more flexible manner, you could consider partial reconfiguration. This allows you to change a section of the FPGA's logic without resetting the entire device. This is more complex but allows for real-time changes to your design without a full power cycle or reprogramming.

发布评论

评论列表(0)

  1. 暂无评论