⑴ 使用vs2017如何进行systemc 编程
一、编译System库
下载SystemC library source code
下载SystemC library,目前的版本是systemc 2.3.1
以SystemC 2.3.1为例,下载后的文件名喂systemc-2.3.1.tgz,解压到工作目录下:...(个人的工作目录路径)systemcsystemc-2.3.1
打开....systemcsystemc-2.3.1msvc80SystemC目录下的SystemC.sln
systemC的软件开发环境篇
VS2012 "生成(Build英文)"-->“生成解决方案(Build Solution)”,生成SystemC.lib文件。
systemC的软件开发环境篇
如果编译成功的话(忽略那些Warning)。
在..systemcsystemc-2.3.1msvc80SystemCdebug目录下就生成了SystemC.lib
PS:编译systemc-2.3.0会遇到以下问题:
systemC的软件开发环境篇
VS2012在编译时会遇到这样的问题:fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.导致生成库不成功,
解决方案是:工程项目SystemC处右键Properties -> configuration Properties ->C/C++ -> Preprocessor -> Preprocessor Definitions 添加_XKEYCHECK_H。
systemC的软件开发环境篇
systemC的软件开发环境篇
然后就可以编译通过了
二、新建SystemC工程,并配置项目属性
有了编译的SystemC.lib库,我们就可以在vs2012配置我们的systemc工程属性了
新建项目,win32控制台应用程序,控制台应用程序设置时选择“空项目”。
添加.cpp源文件与.h头文件。
以下是一个简单地hello systemC的程序 功能是打印三行语句
Hello,SystemC!
by Eagleson
by Eagleson2016-01-12
源代码如下
//main.c
#include
#include "hello.h"
int sc_main(int, char**){
hello h("hello");
system("pause");
return 0;
}
//hello.h
#ifndef _HELLO_H
#define _HELLO_H
#include "systemc.h"
#include
#include
using namespace std;
void print1(string & name){
name = name + "2016-01-12";
cout<
}
SC_MODULE(hello)
{
SC_CTOR(hello)
{
cout<<"Hello,SystemC!"<
string str;
str="by Eagleson";
cout<
print1(str);
}
};
#endif
添加源文件后进行项目属性设置。
C/C++→常规→附加包含目录 (..systemc-2.3.1src)
systemC的软件开发环境篇
C/C++ →语言→启用运行时类型信息→是
systemC的软件开发环境篇
C/C++→代码生成→运行库→多线程调试(/MTd)
systemC的软件开发环境篇
C/C++→ 命令行→其它选项 加上/vmg
systemC的软件开发环境篇
Linker →常规→附加目录库 (..systemc-2.3.1msvc80SystemCDebug)
systemC的软件开发环境篇
Linker →输入→附加依赖库(SystemC.lib)
systemC的软件开发环境篇
C/C++→所有选项→警告等级 等级1(/W1)
systemC的软件开发环境篇
上述属性设置在每次建立SystemC工程时都需要设置。若想免去每次都设置的麻烦可通过以下方法。
View-->Property Manager 在左侧会有属性窗口打开。展开树形找到“Microsoft.Cpp.Win32.user”,双击之后就可以设置所有项目的属性了。
systemC的软件开发环境篇
三、编译、调试程序
systemC的软件开发环境篇
与我们预期的结果是一致的。
SystemC基于VS2012的软件平台搭建到这里就完成了。有了这个平台环境,后面的语法学习和练习就不只是纸上谈兵了。
⑵ 怎样在Windows下安装SystemC库和用VC6进行编译
把systemC做为一个project加入到你的workspace中,再使用你自己的project dependencies systemC的project就好
⑶ 有没有什么软件能够将systemc综合为verilog代码
第一,verilog是HDL语言,写出来的东西,也是需要综合才能上片子的。所以不叫systemc综合成verilog,只能叫转换。
第二,你如果是做综合的话,wait这种延时的东西,就算是verilog也是不支持的。
⑷ VHDL,verilog,system verilog,systemC,impluseC,哪个更好
做逻辑开发的话,vhdl或者verilog都可以,没什么问题
如果做逻辑评测或者ic验证的话,system verilog比较专业
⑸ 如何在linux下使用systemc
1、./configure ;2、make ;3、 make install;SystemC也不例外。将下载的源码解压到文件夹如:/home/user/DirA;user代表你的用户名,DirA表示你创建的某个目录;
1 cd /home/user/DirA
2
3 ./configure -prefix=INSTALL_DIR //用-prefix=指定要安装到的目录路径,此路径必须已经存在;
4
5 make
6
7 make install
基本就可以了,我是在虚拟机下的小红帽,我的安装遇到一些小的错误,主要是example没有安装进去,docs也没有,但类库都已经安装好了;
执行 make check 检查安装是否成功,make check 成功就没问题了,我的是成功状态。
最后的安装目录如下:
2、VC6++/VS2010 SystemC使用
前面说过,SystemC实际上是一个C++类库,因此,VC或者VS下使用SystemC就是外部库的使用。
库编译:下载解压后的systemc-version下有msvc60等目录,下面有工程文件,直接可以打开编译即可得到SystemC的库。
新建工程;
库添加:
1)项目右键-属性-配置属性-连接器-常规:添加附件库目录
2)项目右键-属性-配置属性-连接器-输入:添加库
3)项目右键-属性-配置属性-C/C++-常规:添加头文件所在目录
编写sc_hello.cpp代码如下并添加到工程:
1 // sc_helloworld.cpp : 定义控制台应用程序的入口点。
2 //
3
4 #include "systemc.h"
5 SC_MODULE(hello)
6 {
7 sc_in<bool> clock;
8 void run()
9 {
10 cout << "@"<<sc_simulation_time<<" hello world" <<endl;
11 }
12
13 SC_CTOR(hello)
14 {
15 SC_METHOD(run);
16 sensitive<<clock.pos();
17 }
18 };
19
20 int sc_main(int argc, char* argv[])
21 {
22 sc_clock clk("clock",20,SC_NS);
23 hello h("hello");
24 h.clock(clk);
25 sc_start(200,SC_NS);
26 system("pause");
27 return 0;
28 }
⑹ SCML是什么意思啊(除了模块库)
SystemC模块库(SCML) CoWare发布了SystemC模块库(SCML)源代码和复用方法导则,将SCML的标准级方法扩展到所有与IEEE 1666 SystemC相兼容的工具环境。CoWare公司营销和业务开发副总裁AK Kalekos表示,“我们一直致力于开发SystemC TLM(交易级建模)的行业标准,而这一导则的公布则体现了我们这一目标。” SCML应用编程接口和方法导则在1月份推出,目的是为了提供基础架构来开发出SystemC中用户自定义的高可复用性TLM外围模型。CoWare 公司称,SCML可以在外围模型内部将TLM通信、存储、计时和执行等程序分解开来,从而使编码更加模块化,易于高效的开发和测试。 东芝是采用CoWare产品的十家公司和组织之一,该公司负责半导体研发的数字媒体SoC研发中心的首席专家Nobu Matsumoto说:“半导体公司必须改变其产品开发策略,才能将重心从单个产品转移到产品平台。对于东芝的多核MeP数字媒体平台来说,基于标准的交易级建模的互用性和设计复用是此种策略的基石。SCML方法和快速的MeP处理器模型结合,让我们的系统架构师更快地为软件和硬件研发队伍提供正确抽象层级的平台模型。” CoWare公司的源代码库套件包括:SCML API库源代码;SCML源代码建模范例;OSCI开发源概念验证SystemC库的构建草稿;使用gcc 3.2.3的CoWare Model Designer;SCML API参考手册和SCML建模TLM外围设备用户指南。
求采纳
⑺ 如何用modelsim打开systemc生成的vcd文件
ModelSim创建VCD文件手册_网络文库:
http://wenku..com/link?url=3zI8p4hTOAJtinBtEhgPm_wYPZzkmMisq5_5VpbQGbLlx7e1JsSaYe3bopJ_MILUYjt-
⑻ SystemC和C++的语法一样吗如果能看懂SystemC的代码,那么能看懂C++的代码吗谢谢!
SystemC是基于C++的,所以语法很类似。
但是毕竟C++是软件设计用的,函数还是有很多不一样的。
我觉得努力是可以学习看懂的。
⑼ VC6运行System例子时,显示”执行 link.exe 时出错“
systemc.lib没有链接上,下面方法试试:
1、依次点击菜单项Project->setting...->link选项卡,在Object/library moles中添加systemc.lib
2、依次点击菜单项Tool->Options->Directories选项卡,Show directories for选择Library files,在下面的列表里把systemc.lib所在目录添加到里面。
3、Clear后重新编译
如果上面不行的话,把列表里systemc.lib所在目录向上提下优先级,再执行第3步。
如果还不行,那就是可以考虑编译器的问题或者楼主rp太低了,嘿嘿。
⑽ 为什么要在设计中 include <systemc.h
SystemC核心库包括2个最基本和重要的名字空间,一是sc_core,另外一个是sc_dt。sc_core是SystemC基本的内核空间,sc_dt则定义了SystemC的最基本数据类型。#include systemc只将sc_core和sc_dt包括到目标设计中,而#include systemc.h 则包括了除sc_core和sc_dt外的其它仿真中所需要的名字。 但是在大型设计中,常常希望只包括需要的名字空间,而不是所有名字空间以加快仿真速度,减少名字冲突。如: #include"systemc"usingsc_core::sc_mole;usingsc_core::sc_signal;usingsc_core::SC_NS; 在该例子中,只包括了SystemC模块、信号、时间单位的定义。