Y Explorations, Inc.

eXCite

ANSI-C 到 RTL 的自动综合

eXCite的输入为ISO/ANSI-C,将之综合输出为RTL级的Verilog,VHDL或者SystemC。eXCite的输出可以用在FPGA或者ASIC,并作为各种逻辑综合工具的输入。

Bus接口的自动插入

Diagram

当进行基于C语言的综合时,也许最重要的步骤之一是在硬件模块中确认和插入和外界进行通信的管道(Channels)。

管道可以是流数据型,阻塞型或者数组型的。

管道的读写过程可以通过简单的C语言函数来实现。在C源代码中,则通过使用YXI定于的原语(Pragma)来实现对管道的描述。

eXCite读取这些在C源代码中定义的管道,并基于所选择的硬件平台,自动将他们综合到硬件平台上的总线。

举个例子,如果你使用的是Altera平台的Avalon接口,你所使用的管道将会自动综合映射到Avalon的流数据和内存映射接口。你甚至不需要了解那些接口的工作原理。当然,你需要知道如何将eXCite生成的硬件模块和系统中其他的模块相连接(使用Altera公司提供的SOPC Builder可以很轻松地完成模块相连)。

自动验证

在硬件设计中最重要的一个步骤是验证设计的正确性。在eXCite的设计流程中,首先在C语言源代码层上进行验证,然后在eXCite完成综合后,同时也会自动生成VHDL和Verilog的测试验证文件(testbench)。这个测试验证文件可以在任何的RTL仿真验证工具中验证eXCite生成的RTL的正确性。而且在RTL仿真过程中,使用的测试矢量是在C语言源代码仿真中生成的。

自动IP重复利用

在硬件设计中,重复利用以前设计的模块(IP)是非常关键的。

在eXCite进行C语言综合的过程中,如果一个功能可以用一个已经存在的IP来实现,eXCite会自动使用此IP。举例来说,在Altera平台下,浮点数的运算会自动映射到Altera公司的流水线浮点megafunctions。在eXCite的IP Template库中支持math.h中的各种函数调用,比如说sqrt(), cos(), sin()等。

更多...

  • 流水线 eXCite可以把循环或者整个模块进行流水线设计,并自动插入寄存器和流水线元件以得到最优的输出。
  • 比特优化 eXCite会自动尽可能的减少数据的比特数。如果使用的C语言的数据类型过大,用户更可以使用eXCite的原语来指定某种数据类型的长度。
  • 编译器优化 eXCite会执行各种编译器的优化,比如constant folding, partial evaluation, algebraic elimination, common subexpression elimination等等.

产品规格

产品: eXCite 专业版/eXCite FPGA版

输入语言: ISO/ANSI-C

输出语言: VHDL, Verilog, SystemC

优化功能: 比特,内存,流水线等所有优化功能(FPGA版没有流水线和元器件复用)

支持的目标硬件: FPGA, ASIC

Testbench: 自动生成 RTL Testbench

支持的平台: Windows, Linux, Solaris Windows

支持的FPGA: Altera/Xilinx各种 FPGA/CPLD,并可以扩展

库: 标准元件库,标准通信库,IP Template库,Altera Avalon 总线库

需要的C编译器: gcc2.8.1 或更高 (Solaris, Linux), 任何版本的Microsoft VC++ (Windows)

PC最低要求: 100MB 硬盘, 500MB 内存, 至少Pentium 4 以上的CPU

评估eXCite

点击下面的按钮可以得到eXCite免费评估版。

Evaluate