Codetronix
快速开发 FPGA。
Codetronix 提供高级工具,能够成功实现快速开发和高级结果。Mobius 是一种多线程语言和工具,使得软件工程师能够有效地实现 FPGA 设计,并且还能让 FPGA 专家变得更高效。
提供的演示展示了推荐的编程风格和 Mobius 源码是如何在类似的结果质量下实现通常比等效 HDL 代码短 15-60 倍的代码长度的。
Codetronix 方面的更多信息:
语言和工具背景
何为 Mobius?
- Mobius 是一种微型多线程语言,可以编译到硬件和软件目标上
- Mobius 源码与 Pascal 相似,都是利用 CSP(通信顺序进程)方法实现多线程扩展
- Mobius 源码包含层次化规程和功能
- Mobius 利用所有电路内的消息传送来实现分布式本地控制和数据流
- Mobius 生成带有显式请求、确认和数据分量的 HDL 信号
- Mobius 利用包括用户定义类型在内的严格型检验功能
- Mobius 支持有符号和无符号整数、定点和浮点数据类型
- Mobius 支持结构体和多维数组
- Mobius 支持高级表达式(如消息传送)和低级表达式(如比特选择、比特级联)
- Mobius 工具包含事务级仿真器、HDL 发生器和 C 发生器
用户如何确定电路架构?
- 用户通过规定哪些语句按顺序或并行方式执行来确定架构
- 通过关键词“par/end”来表明并行基础模块,而用“seq/end”来表示顺序模块
- 对所有的表达式均进行并行评估,从而实现最大吞吐量
- 利用关键词“shared”来表示资源共享
- 并行模块利用 CSP 关键词“?”来进行同步和通信和 "!"
Mobius 跟 HDL 编码有何不同?
- 跟硬件编程相比,Mobius 更像是软件编程
- 跟 HDL 相比,Mobius 更易于描述具有复杂控制或数据流的算法
- 在结果质量相似的情况下,Mobius 源码通常比等效的手编 HDL 码短 15-60 倍
- 利用快速 Mobius 仿真器进行编码/测试/调试来获得预期的功能,然后生成 HDL 并进行综合
- 编译时,Mobius 可以通过辨别非法并行读/写或写/写语句来为您提供帮助
- Mobius 生成的分布式电路具有本地控制和数据流。除了时钟和复位,没有全局信号
- Mobius 支持快速增量综合,并且仅利用本地信号即可加快 P&R
- Mobius 自动创建很难用 HDL 进行手动编制的弹性流水线电路
支持浮点运算吗?
- 支持,Mobius 语言支持参数化浮点、定点和整数
提供哪些 Xilinx 专用应用指南?
- 分步辅导资料,表明如何使用 OPB 和 FSL 接口
- 分步辅导资料,表明如何利用带有 Mobius 程序的 XMD 和 ChipScope
输出是什么格式?
- Xilinx ISE 和 EDK 兼容 1993 VHDL 结构化可综合 RTL
- Xilinx ISE 和 EDK 兼容 2001 Verilog 结构化可综合 RTL
- Xilinx EDK 兼容 ansi C
- 开放源码“点”图,表明了 RTL 的控制和数据流
结果质量
- 提供的演示(如 DES 加密、AES 加密、浮点 FFT)表明 QoR 优于手动设计的商用内核
- 自定义的架构(wysiwyg)实现了资源和吞吐量之间的折中
- 易于添加功能的时分多路复用资源共享
- 易于为电路添加非弹性和弹性流水线
仿真和调试
- Mobius 事务级仿真器进行电路仿真的速度比 HDL 仿真器快 100 倍
- Mobius 仿真器的输出跟 HDL 仿真器的功能输出一致,从而使得用户能够快速验证他们的电路是否按照预期的方式运行
- 所有的 Mobius 信号均包含请求、确认和数据分量,这样就可以轻松连接 Mobius 电路和早期 IP
何为学习曲线?
- Mobius 语言是一种微型的正规语言,这就使得我们能够轻松掌握和使用
- 用户报告说,他们一开始使用 Mobius 就变得高效起来
- 提供培训课程和自学辅导资料
目标应用
目标听众
- 需要迅速开发 FPGA 的硬件工程师
- 需要开发 FPGA 硬件但缺乏硬件专业知识的软件工程师
- 需要实现比手动 HDL 编码更高的生产率、更高的质量和更低的风险的经理
产品的目标应用有哪些?
- 控制和数据控制算法
- 小型顺序和高吞吐量流水线算法
- 控制和信号处理
- 任何采用浮点或定点数值的应用
价值主张是什么?
- 高级抽象,从而极大地提高了生产率,加快了面市时间
- 更快的编码/测试/调试周期
- Mobius 语言是一种微型的正规语言,从而实现了极快的学习曲线
- Mobius 源码比手动设计的 HDL 码短 15-100 倍
- 快速事务级仿真器比 HDL 仿真器快 100 倍
- 多线程源码的编译时间验证
- 利用电路的结构校正组合从 Lego 类元件实现更高的质量
- 简单的设计流程将对 FPGA 和工具专业知识的需求降至最低水平
可以获得什么质量的结果?
- 提供多个标准测试,演示表明了简单的编码风格是如何实现吞吐量和资源能够跟最好的手动设计相媲美的电路的。
有哪些限制?
- 不支持无法用 HDL 表达的功能。
- Mobius 使用全局上升沿时钟和全局高复位信号。
- 采用多时钟域的设计可能需要手动编辑生成的时钟名称。
- 需要上升和下降时钟沿的设计(如 DDR 存储器核)很难用 Mobius 进行编码。
Xilinx 集成
支持哪些 Xilinx 器件/架构?
- 全部,Mobius 生成跟 Xilinx 工具兼容的可综合 HDL
支持 Xilinx 的哪些开发板?
- 全部,Mobius 生成跟 Xilinx 工具兼容的可综合 HDL
支持哪些 Xilinx CPU?
- 所有,Mobius 生成跟 Xilinx 工具兼容的 C(和多线程编码的定制调度程序)
支持 FSL 总线吗?
- 支持,分步应用指南说明了如何整合 Mobius 生成的 HDL 和 FSL 总线
支持 OPB 总线吗?
- 支持,分步应用指南说明了如何整合 Mobius 生成的 HDL 和 OPB 总线
支持 Virtex-4 FX APU 吗?
支持 Xilinx block RAM 吗?
- 支持,Mobius 数组说明生成可以被综合到 block RAM 上的 HDL。
支持 Virtex-4 DSP 模块吗?
- 支持,Mobius 生成的 HDL 被综合到 DSP 模块上
支持 Xilinx ISE 吗?
- 支持,Mobius 遵循 Xilinx 推荐的 HDL 编码惯例,从而能够有效实现电路设计
支持 Xilinx EDK 吗?
- 支持,Mobius 生成的内核易于添加到 EDK 项目上
何为硬件工具流程?
- 从 Mobius 源码开始,利用 Mobius 仿真器进行仿真来展示预期的功能
- 利用 Mobius 编译器生成 VHDL 或 Verilog
- 利用 Modelsim 进行 HDL 仿真。这一步实际上是可选的,因为 Modelsim 仿真和 Mobius 仿真展示的是相同的电路功能。
- 对生成的 HDL 进行综合,完成布局和布线,然后利用 ISE 生成比特流。
何为硬件/软件工具流程?
- 从 Mobius 源码开始,利用 Mobius 仿真器进行仿真来展示预期的功能
- 划分设计,然后选择硬件/软件接口(如 OPB、FSL、APU)
- 硬件划分
- 利用 Mobius 编译器生成 VHDL 或 Verilog
- 对生成的 HDL 进行综合,完成布局和布线,然后利用 EDK 生成比特流
- 软件划分
- 利用 Mobius 编译器生成 C 或手动进行 C 编码
- 利用 EDK 进行 C 编译
|