凡亿教育 · 电子工程师实战教育品牌
嵌入式硬件培训:长沙/广州校区
|
课程咨询:15989478308(同微信)
免费领取课程大纲

128级移位寄存器,综合后只占几片LUT

128级移位寄存器,综合后只占几片LUT

128级移位寄存器,综合后只占几片LUT封面技术图

RTL里写出128级移位寄存器,很多人会先按128个触发器估资源。综合报告却可能只出现几片LUT,因为部分Xilinx LUT能够配置成SRL:数据每拍在LUT内部移动,地址端选择从第几级取出。它非常适合延时线和对齐链,但并不等于所有寄存器链都能自动压缩。加一个全级复位、并行装载或中间级调试口,映射结果就可能完全改变。

SRL不是一串普通触发器

普通移位寄存器把每一级状态放在独立触发器中,级数越长,触发器和级间布线越多。SRL则把LUT内部存储位组织成串行移位结构,时钟到来时从D端送入新数据,Q端按地址A选择某个延时深度。以SRL16类资源为例,一片LUT可以承担多级单比特延时;更深的延时可以级联。于是128级单比特延时线不必机械地对应128个触发器。

128级移位寄存器,综合后只占几片LUT正文技术图1:SRL16原语端口图显示D、CLK、地址抽头A与Q之间的实际资源关系。

图1 SRL16原语端口图显示D、CLK、地址抽头A与Q之间的实际资源关系。

地址端选的是抽头,不是重新分配深度

SRL内部仍然维持固定数量的移位级,地址端决定哪一级送到Q。改变地址可以在允许范围内改变可见延时,但数据并不是瞬间搬到另一条链。动态改变抽头时,输出会切换到当前内部状态的另一个位置,因此控制逻辑必须理解延时变化对数据帧边界的影响。若要得到固定延时,就把地址约束为常量,让综合器有更清晰的优化空间。

128级移位寄存器,综合后只占几片LUT正文技术图2:SRL地址与长度说明用于核对A0至A3如何选择1到16级的输出位置。

图2 SRL地址与长度说明用于核对A0至A3如何选择1到16级的输出位置。

综合器为什么有时不用SRL

SRL擅长串行输入、逐拍移动和末端或少量抽头输出,却不具备普通触发器那样灵活的逐级复位、并行写入和任意级访问。代码若要求异步清零每一级,工具通常无法在SRL内部完成,只能展开为触发器。将所有中间级接到调试核,或者每一级都参与不同组合逻辑,也会破坏连续延时链的推断条件。资源突增不一定是工具退化,而是RTL新增了SRL本身不支持的行为。

128级移位寄存器,综合后只占几片LUT正文技术图3:SRL16原语代码片段把数据、时钟、时钟使能、地址和初始化端口逐一对应。

图3 SRL16原语代码片段把数据、时钟、时钟使能、地址和初始化端口逐一对应。

省资源后,还要检查时序与可观测性

SRL减少触发器和局部布线,常能让长延时线更紧凑,但Q端之后仍可能需要寄存器来改善扇出和时序。跨多个LUT级联时,要确认级联端口与普通Q端的使用方式;动态抽头也要约束地址路径。仿真中还应区分配置初始化与运行时复位:INIT给出上电后的初始内容,不等于系统运行中能随时清空整条SRL。若协议有valid信号,用valid控制数据是否有效,往往比给几百级数据链逐级复位更省资源。

128级移位寄存器,综合后只占几片LUT正文技术图4:资源对照图把触发器链、单片SRL和多片级联的占用与能力边界并排列出。

图4 资源对照图把触发器链、单片SRL和多片级联的占用与能力边界并排列出。

评审时不要只盯RTL行数

确认一条延时链是否合理,至少看三处:综合报告里是否推断出SRL16、SRLC32E或同类资源;综合网表中是否出现意外的触发器展开;时序报告里地址、级联输出和最终扇出是否成为关键路径。若加复位后资源突然上涨,先问这条数据链是否真的需要清零,还是只需在若干周期内把valid置为无效。若调试需要观察中间级,可临时接受触发器开销,但不要让调试连接永久改变量产资源结构。迁移到不同系列或厂商时,也要重新确认LUT可支持的SRL深度、端口和综合模板,不能把某一代器件的映射结果当成语言语义。验证时可用一段带唯一标记的比特序列穿过延时链,逐拍检查输入与输出间隔,并在改变CE或动态抽头后确认边界数据没有重复、丢失或倒序。综合属性只能作为提示,不能代替综合网表确认;代码模板、复位写法和层次优化都可能影响最终映射。对于多比特总线,每一位通常都要占用相应SRL资源,所谓“一片LUT存32级”指的是单比特深度,并不等于32位总线也只用一片。资源预算应同时乘上位宽与级联深度。

长移位寄存器之所以能只占几片LUT,是因为器件里本来就有SRL能力。省资源的前提,是RTL行为与SRL支持的串行移位、抽头和初始化方式一致。真正交付前还要核对位宽乘以深度后的SRL数量、级联方式和末端扇出,并让仿真覆盖CE暂停、动态抽头和上电初始化。若加入复位后资源突然变大,应先重新定义数据有效性,再决定是否值得为清零整条延时链付出触发器和布线代价。

你们看到长延时链时,会先看综合出的SRL数量,还是习惯直接按触发器数量估资源?

声明:

本文由凡亿教育整理,转载请注明来源!

投稿/招聘/广告/课程合作/资源置换 请加微信:13237418207


上一篇隔离度测到100dB,先确认是不是仪器底噪 下一篇LLC只看标称谐振点,负载一变增益就会跑