细丝简介

主要观点:传统硬件设计工具 HDL 存在繁琐且易出错的问题,许多人对此不满并想出替代方案,文中介绍了作者工作的 Filament。通过一个简单的 ALU 设计示例,展示了在 Verilog 中设计硬件时遇到的时序问题,如乘法器输出与预期不同等,而在 Filament 中能更明确地表达电路的基本约束,让编译器自动完成部分推理,但 Filament 目前只能表达静态调度电路。
关键信息

  • Verilog 中 ALU 设计示例及遇到的时序问题,如乘法器输出延迟等。
  • Filament 中 ALU 的签名形式及各部分含义,如comp ALU<'G:1>等。
  • Filament 中组件的实例化和调用方式,如add := new Add[32]<'G>(in0, in1)等。
  • 遇到的编译错误及对应的问题,如源端口提供值时间与目标要求时间不匹配等。
  • 通过添加寄存器链实现所需的吞吐量,解决资源竞争问题。
  • Filament 只能表达静态调度电路的局限性。
    重要细节
  • Verilog 中 ALU 设计通过assign语句实现加法和乘法,以及实例化外部乘法器的方式。
  • Filament 中各组件的参数表示,如comp Add[W]<'G: 1>中的W表示操作数宽度。
  • 编译错误的具体提示及原因,如事件触发频率与延迟不匹配等。
  • 用 JSON 形式指定 Filament 设计的输入。
阅读 12
0 条评论