使用High-Level Synthesis优化加密硬件设计

需积分: 9 1 下载量 170 浏览量 更新于2024-07-19 收藏 755KB PDF 举报
"本文主要探讨了密码硬件的高级综合(High-Level Synthesis,简称HLS)技术,通过使用软件编程语言如C/C++和特定领域语言(Cryptol)来实现FPGA硬件的设计与优化。HLS流程包括综合、映射和布局布线,可以缩短产品上市时间,简化验证过程,并允许进行架构探索。文章提到了几个重要的HLS工具,如Xilinx的Vivado HLS,多伦多大学的LegUp和Galois公司的Cryptol。" 在密码学硬件设计中,高级综合(High-Level Synthesis)是一种关键的技术,它使得开发者能够利用软件编程语言(如C/C++)或特定领域语言(Domain-Specific Language,例如Cryptol)来创建和优化硬件设计,特别是针对加密算法的实现。这种技术的使用显著减少了对硬件描述语言(如VHDL或Verilog)的直接操作,从而降低了设计的复杂性和时间成本。 1. **HLS流程**:HLS的基本流程通常包括三个主要步骤: - **综合(Synthesis)**:将高级语言代码转换成逻辑门级别的硬件描述。 - **映射(Map)**:将逻辑门级设计分配到具体的硬件资源上。 - **布局布线(Place/Route)**:确定电路中各个组件的位置并连接它们,以满足时序和性能要求。 2. **优势**: - **缩短时间至市场(Time-to-Market)**:HLS减少了编写和调试HDL代码所需的时间,加速了产品开发周期。 - **简化验证**:开发者可以在C/C++中编写测试平台,这比寄存器传输级(RTL)仿真运行得更快,使得验证过程更有效。 - **架构探索**:HLS允许设计者从单一的高级规格中生成多种架构,通过使用指令应用不同的架构策略。 3. **HLS工具**: - **Vivado HLS**:由Xilinx公司提供,能将C/C++代码转化为Verilog/VHDL/SystemC,支持通过指令控制综合过程,包括循环展开、内联和重塑等优化方法。 - **LegUp**:多伦多大学的研究成果,可能专注于特定的嵌入式或并行计算应用。 - **Cryptol**:由Galois公司开发,是一种专门针对密码学应用的功能性领域特定语言,它提供了强大的数学表示和自动推理功能,适合于加密算法的描述和分析。 4. **其他考虑**:在HLS过程中,设计者可以设置时钟频率和其他接口选项,以满足特定性能和功耗需求。此外,通过HLS工具,开发者还可以对算法进行优化,如通过循环展开提高执行效率,或者通过内联减少函数调用开销。 高级综合在密码学硬件设计中扮演着至关重要的角色,它不仅简化了设计流程,提高了设计效率,还为架构创新提供了广阔的舞台。通过使用像Cryptol这样的DSL,可以更方便地处理复杂的密码算法,同时利用Vivado HLS等工具实现高效的硬件实现。