AutoPilot高层次综合C算法设计技巧-移位寄存器
来源:互联网 发布:全友家具靠谱吗 知乎 编辑:程序博客网 时间:2024/05/22 00:26
// Register-based shift register implementation using C
// for High-Level Synthesis with AutoESL : AutoPilot
#define SIZE 10
typedef int dType;
void shiftReg(dType din, dType *dout)
{
#pragma AUTOPILOT pipeline II=1
static dType regs[SIZE];
int i;
for (i = SIZE-1; i > 0; i--)
regs[i] = regs[i-1];
regs[0] = din;
*dout = regs[SIZE-1];
}
熟悉RTL设计的话,对这种C描述应该比较习惯,如果是纯软件开发人员刚开始接触这样的C代码估计够呛。
会觉得很别扭。
上面的C代码就是一个比较高效的移位寄存器的C语言实现,用高层次综合工具AutoPilot综合可以得到和手写
RTL(verilog和vhdl)效果一样的移位寄存器。
在这里:
1.
#pragma AUTOPILOT pipeline II=1
告诉综合工具让这个模块流水起来,并且达到每一个时钟周期进一个数据的吞吐率。
2.
Regs数组会被partition掉,综合成寄存器。
- AutoPilot高层次综合C算法设计技巧-移位寄存器
- B-M算法求线性移位寄存器的线性综合解
- 基本运算单元的高层次综合:C/C++ to RTL
- 高层次综合(HLS)熟了
- 高层次综合(HLS)-简介
- 高层次设计检查表
- VGA(DVI interface) Controller的高层次综合
- 《代码大全》 高层次设计检查表
- 移位寄存器
- 链表综合算法设计
- 实际使用高层次综合(HLS)的时机是否成熟?
- 已经有的ESL高层次综合(High Level Synthesis,HLS)产品
- 上海High-level Synthesis Software Engineer(高层次/系统综合软件工程师)
- vivado高层次综合(high-level synthesis,HLS)学习日记
- 【算法】算法设计技巧
- SOA安全性基础知识之创建高层次设计
- OpenCores学习(2)--高层次设计 (HLD)
- C++算法设计技巧
- String,CString,TCHAR,char之间区别和联系
- 数据库引擎优化顾问及简单使用
- TCHAR 与 STD::string 之间的若干问题
- c、c++在定义变量,数组时的内存布局及内存字节对齐
- c++ 静态成员 分配回收空间
- AutoPilot高层次综合C算法设计技巧-移位寄存器
- CString、TCHAR*、char*转换
- [转]如何有效的使用C#读取文件
- 关于thickbox的返回值获取
- 在全文索引中同义词的使用
- JavaScript中使用zDragDrop实现拖放功能
- java 格式化显示当前时间。
- symbian 发送短信程序
- get 请求不读IE缓存