您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于SYSTEM C的FPGA设计方法 正文
基于SYSTEM C的FPGA设计方法

基于SYSTEM C的FPGA设计方法

点击数:7970 次   录入时间:03-04 11:46:43   整理:http://www.55dianzi.com   DSP/FPGA技术

  SC_MODULE(example) {

  sc_in din;


  sc_out dout;//端口

  void inverter();//处理过程声明

  SC_CTOR(example) {

  SC_METHOD(inverter);

  sensitive(din);//处理过程由输入变化触发

  }

  };

  处理过程inverter如下:

  void example::inverter() {

  bool internal;

  internal = din;//输入数据取反后由输出端口输出

  dout = ~internal;

  }

  SC_THREAD是最常用的处理过程,基本上可以用在任何地方。它是由输入信号的变化触发,但与SC_METHOD不同的是它可以在两次调用这保存控制状态。它的功能类似于积存器的功能。SC_THREAD中可以包含有wait()函数,这使得处理过程可以被挂起。

  SC_CTHREAD是SC_THREAD的一种特殊情况。SC_CTHREAD能产生更好的综合效果。SC_CTHREAD中可以使用wait()函数。在不同的状态 
间加入wait()函数,设计人员可以用SC_CTHREAD来实现状态机。这种设计风格是简便的而且容易理解。SC_CTHREAD只能由时钟信号沿触发,而SC_THREAD可以由其它非时钟信号触发。如果在时钟上跳边触发,可以使用pos()函数,反之用neg()。

  为进一步说明SC_CTHREAD,下面给出了一个SC_CTHREAD的例子。

  SC_MODULE(example) {

  sc_in_clk clock;//输入时钟

  sc_in trigger, din;

  sc_out dout;

  void invert();

  SC_CTOR(example) {

  SC_CTHREAD(toggler, clock.pos());//时钟上升沿触发

  }

  }

  void example::invert() {

  bool last = false;

  for (;;) {

  wait_until(trigger.delayed() == true);//等到下个时钟上升沿 //且trigger=1再执行

  last = din; dout = last; wait();

  last =~din; dout = last;wait();//下个上升沿才更改数据

  }

  }

  3.端口与信号

  与HDL语言相似,使用System C库就可以在C程序中加入端口和信号。这些原先C语言中没有的功能,使设计更复合硬件设计的要求。

  模块与模块之间是通过端口信号加一联系。只要两个端口被连接在一起,信号就可以在它们之间进行传递。对于这一点习惯用HDL进行设计的设计人员是很容易理解和接受的,因为这和HDL中端口的功能是一样的。 信号只是在一个模块的内部使用,这也是和HDL中信号的用法是一致的。 下面给出端口和信号声明的例子。

  sc_in<“类型”> din// 输入端口din

  sc_out<“类型”> dout// 输出端口dout

  sc_inout<“类型”> q// 输入输出端口q

  sc_signal i[16]; //创建一个具有16比特的逻辑型信号i

  4.数据类型

  考虑到硬件设计的要求,System C中也加入了一些硬件设计中常用的数据类型。具体如下:

  sc_int 有符号整数类型,最大有64个比特位。

  sc_uint 无符号整数类型,最大有64个比特位。

  sc_bigint 有符号整数类型,任意比特位,其最大比特位定义在

  sc_constants.h中。

  sc_biguint 无符号整数类型,任意比特位,其最大比特位定义在

  sc_constants.h中。

  sc_bit 二值数据,单比特位。

  sc_logIC 四值数据,单比特位。

  sc_bv 二值数据,任意比特位。

  sc_lv 四值数据,任意比特位。

  sc_fixed 参数固定的有符号定点数。

  sc_ufixed 参数固定的无符号定点数。

  sc_fix 参数不固定的有符号定点数。

  sc_ufix 参数不固定的无符号定点数。

  User defined structs 用户自定义结构

  以上是一些System C的基本概念。

  五、结论

  System C是一种很有效的设计方法,它不仅可以帮助设计人员完成一个复杂的系统设计,



www.55dianzi.com

还可以避免传统设计中的各种弊端,并提高设计人员的工作效率。它的这些优点使System C在复杂的系统设计中大有作为。并且习惯用HDL的设计人员,可以很容易地转到用System C设计。



上一页  [1] [2] 


本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术