當前位置:首頁 » 編程語言 » systemc語言

systemc語言

發布時間: 2022-02-10 05:08:24

1. 有沒有什麼軟體能夠將systemc綜合為verilog代碼

第一,verilog是HDL語言,寫出來的東西,也是需要綜合才能上片子的。所以不叫systemc綜合成verilog,只能叫轉換。

第二,你如果是做綜合的話,wait這種延時的東西,就算是verilog也是不支持的。

2. 使用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的軟體平台搭建到這里就完成了。有了這個平台環境,後面的語法學習和練習就不只是紙上談兵了。

3. systemverilog 和systemc,e語言比較,有哪些優缺點

現在出了很多HDL語言,systemC,systemverilog,不知道verilog是否會在幾年後變得過時或者淘汰了,到時候就杯具了,還得重新轉戰其他語言。

4. 與計算機硬體有關的程序設計語言有哪些各有什麼特點

你指的是硬體描述語言吧?
像VHDL、Verilog、SystemC這種。
具體特點本人還真不是很清楚,沒有全部用過。
只知道VHDL相對更面向硬體一點,SystemC這種更接近高級語言。

5. 如何用modelsim編譯systemC的設計

SystemC作為一種系統級設計與驗證語言,非常適合做復雜IC的驗證,而不是用於RTL描述。很多人問我如何將SystemC綜合和編譯為可以下載的CPLD/FPGA的比特文件或者綜合為ASIC網表,我的回答是用SystemC做RTL設計還為時過早。可以想像將來可能將SystemC的行為級的描述綜合為網表,即所謂高層次綜合,這是一個很美好的未來,但未來不是現在。

Verilog/SystemVerilog依然是最好的RTL設計語言。未來的RTL設計屬於SystemVerilog。關於SystemC和SystemVerilog在設計中的地位問題,我認為在驗證方面,SystemC有明顯的優勢。如果你設計純粹的ASIC,那麼用SystemVerilog可能就足夠了。但是在很多場合,軟硬體同時存在,SystemC的代碼很多部分可以之間用於設計軟體,這個是很明顯的優勢。大家同時也可以看到,現在在ModelSim等模擬軟體中,SystemC使用起來跟Verilog/VHDL一樣,非常方便。舉一個例子,我們假如想做DVB-S2的LDPC,我們一定會先用C++(M atlab也可以)寫模擬程序,驗證演算法的正確性。然後假設我們已經確定了目標ASIC的架構,打算用Verilog做RTL設計。現在既然C++代碼的驗證部分可以幾乎不加改變的用於基於SystemC的驗證模塊的設計,我們為什麼還要費力的用SystemVerilog重新寫一遍驗證代碼呢?
下面步入正題,講一講如何在ModelSim下編譯和模擬SystemC的設計。我們設計一個一位移位寄存器模塊(Verilog代碼): 1.shifter.v
`timescale 1ns/100ps
mole shifter(clk,nrst,din,dout); input clk,nrst; input din;
output reg dout;
always (posedge clk or negedge nrst) begin:shifter_with_nreset if(~nrst) dout<=1'b0; else dout<=din; end
endmole
頂層設計為驗證模塊加shifter模塊的例化: 2.tb.v
`timescale 1ns/100ps mole tb;
wire clk,nrst,data,data_fd_bk; shifter_test
tester(.clk(clk),.nrst(nrst),.data(data),.data_fd_bk(data_fd_bk)); shifter uut(.clk(clk),.nrst(nrst),.din(data),.dout(data_fd_bk)); endmole
其中shifter_test用SystemC描述。這個例子實際上不能顯示SystemC的好處。 下面是SystemC的代碼: 3.Shifter_test.h
#ifndef __shifter_test_h #define __shifter_test_h
#include #include
SC_MODULE(shifter_test) {
public:
// Mole ports
sc_out clk,nrst; sc_out data;
sc_in data_fd_bk; bool data_reg; bool err;
sc_clock internal_clk;
void st_behaviour() {
nrst=0; data=0;
wait(5); data=1; wait(2); nrst=1; wait(2); while(1) {
data=0; wait(2); data=1; wait(3); data=0; wait(4);
if(err) printf("Test failed"); else printf("Test passed\n"); } }
void gen_clk(){clk=internal_clk.read();} void disp_data(){
printf("nrst=%d,data input=%d,data
output=%d\n",nrst.read(),data_reg,data_fd_bk.read());
if((nrst.read()==1) && (data_reg!=data.read())) {
err=1;
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
assert(false); }
data_reg=data.read(); }
SC_CTOR(shifter_test)
:clk("clk"),nrst("nrst"),data("data"),data_fd_bk("data_fd_bk"),internal_clk("internal_clk",1000,0.5,SC_NS) {
SC_METHOD(gen_clk);
sensitive<<INTERNAL_CLK; dont_initialize();
SC_CTHREAD(st_behaviour, clk.pos());
SC_METHOD(disp_data); sensitive<<CLK.NEG();
err=0; } }; #endif
4.shifter_test.cpp
#include "shift_test.h" SC_MODULE_EXPORT(shifter_test);
只有兩行代碼。注意這里SC_MODULE_EXPORT的作用是將systemc的模塊對其它語言可見。將以上4個文件加入到ModelSim的Project中,之後輸入編譯命令如下: sccom –g *.cpp sccom –link vlog *.v vsim tb 之後就可以根據需要看一些信號的模擬波形了。這里只有 sccom –g *.cpp sccom –link 與
SystemC有關。 在ModelSim中選擇Compile all之後,再執行sccom –link,其效果等價於sccom –g *.cpp;vlog *.v;sccom –link。

6. systemverilog 和systemc,e,evra語言比較,有哪些優缺點

VERb.、Jeda、e語言。從方法學上他們都在朝層次化...systemverilog》。驗證方法學本身並不局限於語言。...用SystemC來實現VMM,把系統建模和驗證平台更完美的

7. systemc是一種系統級的建模語言,其特性有

現已證明,C語言設計不僅生產效率高,而且也是對Verilog流程的補充。SystemVerilog/SystemC的整合,使軟體團隊可以在與高效的硬體設計和驗證過程開展合作的時候,用自有的編程語言進行工作,使整個方法途徑在適宜的生產水平下進行。

工具和IP供應商正在為System Verilog提供支持。IP提供商已認識到統一化所帶來的益處,特別是在驗證領域,語言的統一使他們不必考慮當前支持多種語言的需求。

Accellera已推出SystemVerilog 3.0,並計劃2003年中期推出 3.1版。憑借在標准背後的能力水平和可以解決重大設計問題的潛力,這一產品必能在業內取得成功。

8. VHDL,verilog,system verilog,systemC,impluseC,哪個更好

做邏輯開發的話,vhdl或者verilog都可以,沒什麼問題
如果做邏輯評測或者ic驗證的話,system verilog比較專業

9. SystemC與Verilog的比較

System C是一種軟/硬體協同設計語言,一種新的系統級建模語言。

研究表明,具有較高的抽象能力,同時能體現出硬體設計中的信號同步、時間延遲、狀態轉換等物理信息的語言,才能給工程師提供一個系統級設計的公共基礎平台。在我們常用的設計語言中,C、C++ 和Java等高級編程語言有較高的抽象能力,但由於不能體現硬體設計的物理特性,硬體模塊部分需重新用硬體描述語言設計,使得後續設計缺乏連貫性;而VHDL,Verilog最初目的並不是進行電路設計,前者是用來描述電路的,而後者起源於板級系統模擬,因此它們並不適合進行系統級的軟體和演算法設計,特別是現在系統中的功能越來越多的由軟體來完成時。

SystemC既是系統級語言,也是硬體描述語言。《SystemC入門》介紹的是SystemC2.0標准,主要介紹SystemC有關硬體建模方面的語法特性,換言之,是介紹SystemC的RTI.可綜合子集。其主要內存包括:SystemC數據類型、組合邏輯建模,同步邏輯建模、三態驅動器建模、常用的設計函數模型,測試平台的編寫及系統級建模的功能等。隨書附帶l張光碟,內含《SystemC入門》所有例子的代碼。《SystemC入門》所有例子都經SystemC2.0.1的驗證。《SystemC入門》可作為想要了解和學習SystemC的設計工程師和系統工程師的參考書,也可用做大學講授體系結構、數字設計或系統設計課程的教材。

你可以看看《systemc入門》這本書,很好的,介紹非常詳細,而且裡面有不少的圖表介紹設計的流程。 其實最大的區別是SystemC對於系統架構的探索具有很有作用,但真正的RTL級電路設計,還是以VerilogHDL和VHDL為主的。

10. 從驗證的角度,systemverilog和systemc誰更合適

systemverilog和systemc誰更合適
System C是一種軟/硬體協同設計語言,一種新的系統級建模語言。

研究表明,具有較高的抽象能力,同時能體現出硬體設計中的信號同步、時間延遲、狀態轉換等物理信息的語言,才能給工程師提供一個系統級設計的公共基礎平台。在我們常用的設計語言中,C、C++ 和Java等高級編程語言有較高的抽象能力,但由於不能體現硬體設計的物理特性,硬體模塊部分需重新用硬體描述語言設計,使得後續設計缺乏連貫性;而VHDL,Verilog最初目的並不是進行電路設計,前者是用來描述電路的,而後者起源於板級系統模擬,因此它們並不適合進行系統級的軟體和演算法設計,特別是現在系統中的功能越來越多的由軟體來完成時。

SystemC既是系統級語言,也是硬體描述語言。《SystemC入門》介紹的是SystemC2.0標准,主要介紹SystemC有關硬體建模方面的語法特性,換言之,是介紹SystemC的RTI.可綜合子集。其主要內存包括:SystemC數據類型、組合邏輯建模,同步邏輯建模、三態驅動器建模、常用的設計函數模型,測試平台的編寫及系統級建模的功能等。隨書附帶l張光碟,內含《SystemC入門》所有例子的代碼。《SystemC入門》所有例子都經SystemC2.0.1的驗證。《SystemC入門》可作為想要了解和學習SystemC的設計工程師和系統工程師的參考書,也可用做大學講授體系結構、數字設計或系統設計課程的教材。

你可以看看《systemc入門》這本書,很好的,介紹非常詳細,而且裡面有不少的圖表介紹設計的流程。 其實最大的區別是SystemC對於系統架構的探索具有很有作用,但真正的RTL級電路設計,還是以VerilogHDL和VHDL為主的。

熱點內容
如何配置一台長久耐用的電腦 發布:2025-07-12 11:43:03 瀏覽:601
昆明桃源碼頭 發布:2025-07-12 11:38:45 瀏覽:568
大司馬腳本掛機 發布:2025-07-12 11:38:35 瀏覽:458
資料庫實時監控 發布:2025-07-12 11:31:33 瀏覽:743
vb6反編譯精靈 發布:2025-07-12 11:23:12 瀏覽:997
模擬存儲示波器 發布:2025-07-12 11:10:58 瀏覽:814
怎麼查看安卓真實運行內存 發布:2025-07-12 11:08:39 瀏覽:883
鏈接直接訪問 發布:2025-07-12 11:03:37 瀏覽:950
安卓如何把備忘錄轉為文檔 發布:2025-07-12 10:48:15 瀏覽:702
無法連接ftp主機 發布:2025-07-12 10:47:33 瀏覽:345