⑴ 使用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模塊、信號、時間單位的定義。