当前位置: 首页 > news >正文

寄存器链设计思路

一、打2拍输出的寄存器链
void register_chain_2stage(data_t input[1024], data_t output[1024]) {
// 5级寄存器链
data_t reg1, reg2;

for (int i = 0; i < 1024; i++) {
#pragma HLS PIPELINE II=1

// 移位操作
reg2 = reg1;
reg1 = input[i];

// 输出是5个周期前的输入
if (i >= 1) {
output[i-1] = reg2;
}
}
}

二、打5拍输出的寄存器链
void register_chain_5stage(data_t input[1024], data_t output[1024]) {
// 5级寄存器链
data_t reg1, reg2, reg3, reg4, reg5;

for (int i = 0; i < 1024; i++) {
#pragma HLS PIPELINE II=1

// 移位操作
reg5 = reg4;
reg4 = reg3;
reg3 = reg2;
reg2 = reg1;
reg1 = input[i];

// 输出是5个周期前的输入
if (i >= 4) {
output[i-4] = reg5;
}
}
}

三、上述的两个设计打拍存在的问题
1.寄存器链本身是没有问题的
2.存在的问题,是输出的数据少了一部分

四、如何解决少了的一部分数据?
void register_chain_5stage(data_t input[1024], data_t output[1024]) {
// 5级寄存器链
data_t reg1, reg2, reg3, reg4, reg5;

for (int i = 0; i < (1024 + 5); i++) {
#pragma HLS PIPELINE II=1

// 移位操作
reg5 = reg4;
reg4 = reg3;
reg3 = reg2;
reg2 = reg1;

if(i<1024)
reg1 = input[i];


// 输出是5个周期前的输入
if (i >= 4) {
output[i-4] = reg5;
}

}

五、寄存器链的核心设计部分

// 移位操作
reg5 = reg4;
reg4 = reg3;
reg3 = reg2;
reg2 = reg1;
reg1 = input[i];

要仔细体会,这块代码。这个和verilog和system verilog设计不一样的。

vivado hls中必须倒着写,才能实现移位的操作设计,因为这个是阻塞式的设计,不是非阻塞的设计;

阻塞式的设计,必须这么干,否则功能是不正确的。

http://www.jsqmd.com/news/804916/

相关文章:

  • 53.tcp socket
  • 值得信赖!广州晶石石英式动态称重传感器,以工匠精神铸就品质 - 品牌速递
  • 5/12
  • 【企业级AI效能审计】:Perplexity Pro在代码审查/论文研读/竞品分析中的实际吞吐量下降曲线与临界性价比拐点
  • 告别电网波动干扰:手把手教你用双同步坐标系锁相环搞定不平衡电压
  • 告别试错式编程:用结构化迭代与AI协同优化代码
  • 厚街联合办公哪家值得推荐:秒杀联合办公卓越典范 - 17322238651
  • 厚街管道疏通哪家值得推荐:秒杀管道疏通超高效 - 13724980961
  • 从平局投票看技术社区运营:低门槛互动如何提升用户参与感
  • 【AI】动态规划:执行中调整计划的实现
  • 嘉兴中小微企业财税攻略:会计事务所选择全解析 - 速递信息
  • 纳米芯片可靠性设计:从电迁移、NBTI到系统级验证实战
  • HDLbits刷题避坑:FSM与计数器组合题Q3a的三种常见错误写法(附Verilog代码对比)
  • 独立开发者一人公司如何高效管理多个API Key与用量
  • 开源工业物联网框架openOii:从协议解析到规则引擎的实战指南
  • UVa 203 Running Lights Visibility Calculator
  • 图片去水印用什么工具?免费图片去水印工具推荐,2026 实测哪款好用 - 科技热点发布
  • Ollama模型下载加速:绕过官方源,从Hugging Face等镜像站快速部署本地大模型
  • 我用 AI 写了一首歌,并把它上传到了 QQ 音乐、酷狗音乐、酷我音乐
  • WebChatGPT:为ChatGPT添加实时联网搜索功能的浏览器扩展详解
  • 从NOIP真题到日常开发:用Python和C++两种思路搞定‘数字统计’问题
  • 厚街婚礼策划哪家值得推荐:秒杀婚礼策划匠心定制 - 17329971652
  • 对比按需调用与 Token Plan 套餐在长期项目中的成本差异感受
  • Linux通过cgroups限制进程的cpu、内存使用率
  • 鼻毛剪刀哪个牌子好?鼻毛修剪器哪个牌子好?鼻毛剪十大品牌推荐
  • C#/.NET/.NET Core技术前沿周刊 | 第 70 期(2026年5.01-5.10)
  • 基于 JTT1078MediaServer 的集群方案实践(Nginx + 溯源模式)轻量级车联网音视频集群
  • AzurLaneAutoScript终极指南:如何彻底解放你的碧蓝航线游戏时间
  • RST风暴:从TCP复位包探秘ECONNABORTED的深层网络诱因与防御策略
  • 时间差分学习:结合动态规划和蒙特卡洛方法进行强化学习