基于SYSTEM C的FPGA设计方法
[11-20 16:12:55] 来源:http://www.88dzw.com FPGA 阅读:8478次
文章摘要:sc_in<bool> trigger, din; sc_out<bool> 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
基于SYSTEM C的FPGA设计方法,标签:fpga是什么,fpga教程,http://www.88dzw.comsc_in<bool> trigger, din;
sc_out<bool> 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<sc_logic> 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是一种很有效的设计方法,它不仅可以帮助设计人员完成一个复杂的系统设计,还可以避免传统设计中的各种弊端,并提高设计人员的工作效率。它的这些优点使System C在复杂的系统设计中大有作为。并且习惯用HDL的设计人员,可以很容易地转到用System C设计。
参考文献
1 SystemC v1.0 User Guide (http:\\www.systemc.org)
2 SystemC v2.0 User Guide (http:\\www.systemc.org
《基于SYSTEM C的FPGA设计方法》相关文章
- › 利用基于SystemC/TLM的方法学进行IP开发和FPGA建模
- › 基于SYSTEM C的FPGA设计方法
- 在百度中搜索相关文章:基于SYSTEM C的FPGA设计方法
- 在谷歌中搜索相关文章:基于SYSTEM C的FPGA设计方法
- 在soso中搜索相关文章:基于SYSTEM C的FPGA设计方法
- 在搜狗中搜索相关文章:基于SYSTEM C的FPGA设计方法