基于SYSTEM C的FPGA设计方法

技术分类: 可编程器件  | 2007-04-17
来源:今日电子 | 作者: 西安电子科技大学电子工程学院 胡玲娜 张小军 邓鸿威

  1.人工将C\C++程序转换为HDL程序容易产生错误。在现在的这种设计方法中,系统工程师先按期望的设计要求设计出一个C模块,并验证这个模块使其达到期望的设计要求。然后系统工程师所设计的C模块被硬件设计人员手工转换为HDL模块。这个转换过程不仅容易产生错误,而且还很浪费时间。这是因为C\C++语言和HDL语言有着显著的区别。首先,HDL的处理方式比C\C++的复杂。C\C++程序采用顺序执行的处理方式,而HDL程序中既有顺序执行也有并行执行的处理方式。要将C\C++程序转化为HDL程序必然要引入一些控制信号,由这些信号控制HDL程序的运行,但这样也容易产生错误。其次,C\C++语言不涉及到时序关系。由于C\C++语言不支持对时序的描述,系统工程师设计的系统模型只是验证了概念和算法,而只能对时间耗费上有一个大概的估计。这就使得硬件实现时,为满足系统在时间上的要求,硬件设计人员必须对软件算法进行一定的改造或优化。而这些改造或优化也有可能引入各种错误。

  2.系统模块和HDL模块间缺乏联系。当系统模块被转换为HDL模块后,HDL模块成为整个系统设计的焦点。为适应硬件实现的特点,硬件设计人员会更改系统设计人员的设计,但这种更改只是在HDL模块中进行,而系统设计人员设计的C模块并没有因此更改。这就使得系统工程师设计的C模块和当前硬件设计人员设计的HDL模块缺乏必要的联系。当硬件设计人

员遇到概念模糊或理解错误的地方时,往往不能马上从C模块中得到明确的解答。此时,C模块的设计人员也不一定能为HDL设计人员提供有效的帮助。

  3.多系统测试。不但C模块要转换为HDL模块,对C模块的测试也要人工转换为在HDL环境下的测试。这种转换也很复杂,而且浪费时间。HDL设计人员是根据他所设计的HDL模块和系统要求来设计TESTBENCH,这使得硬件设计人员不可能利用软件设计人员所使用的测试文件。同时,HDL人员要设计出一个好的TESTBENCH也需要比较长的时间。
为解决在现在设计流程中所带来的种种弊端,一种全新的设计流程被提出,这就是System C设计流程。它能很好的解决上面所提到的各种设计弊端,大大提高设计效率。图2是System C的硬件设计流程。

  

图2

  这种设计方法与现在常用的设计方法相比有很多优点:

  1.精炼的设计方法。使用System C设计系统,系统设计人员不必花费很大的精力将整个系统设计由C语言描述转换为HDL描述。系统设计人员可以通过在C模块中很小的区域范围内加入必要的硬件和时序结构描述,从而将C模块方便准确地转化为一个有效的硬件设计,而避免将另行设计一个硬件模块。利用System C设计方法,设计人员可以很轻松地实现一个设计的更改,或在优化算法时检测出一些设计错误并及时修改。

  2.单一语言书写。使用System C设计系统,整个设计都用一种语言设计系统,降低了对设计人员的要求,减少了语言转换时所造成的错误。这一优点也使得设计人员可以在一个比较高的层次上进行系统模块设计。在较高层次的设计会导致产生小的设计代码,使设计和仿真的速度比传统的设计方法要快很多。这一点是很显著的。

  四、SYSTEM C基本概念

  1.模块

  模块是System C设计中的基本设计单元。模块可以使得设计者将一个复杂的系统分割为一些更小但易于管理的部分。System C模块的功能和作用与HDL语言中的模块是相类似的,这使得一位习惯于用HDL进行设计的设计人员可以很容易的转向用System C进行设计。
模块在System C中的关键字为SC_MODULE。紧跟着关键字后的是模块的名称,如SC_MODULE(fifo),这就定义了一个叫fifo的模块。定义的模块也可以像HDL语言一样包含端口、信号、其它模块、处理过程和结构体,这些单元实现用以实现模块的功能。通过端口可以将几个模块连接起来。
模块被保存为.h文件。如果在一个模块中调用其它模块,只需像C++中引入库一样将要调用的模块作为一个库引入即可。

  2.过程

  模块中的处理过程(process)类似于C语言中的子程序,与C语言中的子程序不同的的是它具有HDL语言中的触发功能。处理过程(process)的具体工作部分被保存为.cpp文件。处理过程的调用类似于在C语言中子程序的调用。根据不同的要求,SystemC中有三种处理过程。

  ● Methods : SC_METHOD() 
       ● Threads : SC_THREAD() 
       ● Clock Threads : SC_CTHREAD()

  

1
0
(请您对文章做出评价)
1】【2】【3】【4
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

  • 博客推荐

  • 论坛推荐

  • 在线研讨会