Vivado HLS推动协议处理系统蓬勃发展(上)
时间:10-30
来源:互联网
点击:
3 创建流水线设计
将要讨论的最后也是最重要的一个是编译指令。第2行中的数据流编译指令指示Vivado HLS尽量以并行方式安排执行该函数的所有子函数。“internal”参数用于设置该模块的初始化间隔(II)。初始化间隔(II)告知Vivado HLS该模块必须具备的处理新输入数据字的频次,故决定了设计的吞吐量。不过这并不妨碍模块内部的流水线化和拥有>1的时延。当II=2时,该模块将用两个周期完成数据字的处理,然后再读入新的数据字。以这种方式Vivado HLS可以简化模块最终的RTL。也就是说,在一个典型的协议处理应用中,设计必须具备每个时钟周期处理一个数据字的能力,故从现在起我们令II=1。
初始化间隔(II)告知Vivado HLS该模块必须具备的处理新输入数据字的频次,故决定了设计的吞吐量。
最后要解决的问题是函数调用本身。在Vivado HLS中,这个过程对应的是模块的实例化。传递给每个模块的参数实质上定义了模块的通信端口。在本例中,通过将输入连接到第一个模块,然后用 modOne2modTwo流把第一个模块连接到第二个模块,依次类推,将三个模块链接起来。(未完待续)
将要讨论的最后也是最重要的一个是编译指令。第2行中的数据流编译指令指示Vivado HLS尽量以并行方式安排执行该函数的所有子函数。“internal”参数用于设置该模块的初始化间隔(II)。初始化间隔(II)告知Vivado HLS该模块必须具备的处理新输入数据字的频次,故决定了设计的吞吐量。不过这并不妨碍模块内部的流水线化和拥有>1的时延。当II=2时,该模块将用两个周期完成数据字的处理,然后再读入新的数据字。以这种方式Vivado HLS可以简化模块最终的RTL。也就是说,在一个典型的协议处理应用中,设计必须具备每个时钟周期处理一个数据字的能力,故从现在起我们令II=1。
初始化间隔(II)告知Vivado HLS该模块必须具备的处理新输入数据字的频次,故决定了设计的吞吐量。
最后要解决的问题是函数调用本身。在Vivado HLS中,这个过程对应的是模块的实例化。传递给每个模块的参数实质上定义了模块的通信端口。在本例中,通过将输入连接到第一个模块,然后用 modOne2modTwo流把第一个模块连接到第二个模块,依次类推,将三个模块链接起来。(未完待续)
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 基于PLB总线的H.264整数变换量化软核的设计(03-20)
- FPGA按键模式的研究与设计(03-24)
- 验证FPGA设计:模拟,仿真,还是碰运气?(08-04)