第一篇:Linux實(shí)驗(yàn) 常用開發(fā)工具
一、實(shí)驗(yàn)?zāi)康?/p>
1、掌握Linux 下的C語(yǔ)言編譯的基本方法
2、理解make工具的功能,學(xué)會(huì)編制makefile的方法
二、實(shí)驗(yàn)內(nèi)容
1、利用gcc編譯C語(yǔ)言程序,使用不同的選項(xiàng),觀察并分析顯示結(jié)果
2、編寫一個(gè)由多文件構(gòu)成的C語(yǔ)言程序,編制makefile,運(yùn)行make工具進(jìn)
行維護(hù)。
三、主要實(shí)驗(yàn)步驟
1、設(shè)計(jì)一個(gè)程序,打印輸出輸入數(shù)字的正弦值。要求定義屬于自己的頭文件,并且放在另外的目錄中。使用下列選項(xiàng)進(jìn)行編譯:-I,-E,-c , –o ,-l。參考教材的P155-158節(jié)的內(nèi)容。
2、針對(duì)下面4個(gè)C語(yǔ)言程序,main.c, one.c, two.c, public.h.。寫一個(gè)makefile 文件,運(yùn)行make工具進(jìn)行維護(hù)。public.h 在另外的目錄中。
Main.c: include “public.h” int main(){
printf(“main...n”);show1();show2();return 0;} One.c #include “public.h” void show1(){ printf(“hello, this show1 n”);} Two.c #include “public.h” void show2(){ printf(“hello, this show2 n”);}
public.h
#ifndef __MANYCO_MAKEFILE_PUBLIC_1 #define __MANYCO_MAKEFILE_PUBLIC_1 #include
五、心得體會(huì)
通過(guò)對(duì)數(shù)字的正玄值程序的編寫,我們掌握了Linux 下的C語(yǔ)言編譯的基本方法,理解了make工具的功能,學(xué)會(huì)了編制makefile的方法。我們更加深刻的了解了GCC的各參數(shù)的含義,知道了GCC的編譯流程大致為:先用Vim編輯源程序,生成源程序文件,然后使用GCC的“-E”參數(shù)預(yù)處理,生成經(jīng)過(guò)預(yù)處理的源程序文件,接著用GCC的“-S”參數(shù)編譯,生成匯編語(yǔ)言程序文件,然后用GCC的“:”參數(shù)匯編,生成二進(jìn)制文件。最后再一次使用GCC,把二進(jìn)制文件和一些用到的鏈接庫(kù)文件鏈接成可執(zhí)行文件,并使用“-o”參數(shù)將文件輸出到目錄文件,最終的目錄文件就是完全編譯好的可執(zhí)行文件。
第二篇:實(shí)驗(yàn)五常用軟件開發(fā)工具
實(shí)驗(yàn)
五、常用軟件開發(fā)工具
一、實(shí)驗(yàn)?zāi)康?/p>
1、熟悉字符模式下的C程序編譯和調(diào)試環(huán)境,基本掌握Linux字符模式下的編譯工具和調(diào)試工具的使用;
2、本實(shí)驗(yàn)需要綜合使用Linux基本文件命令、編輯器的使用,練習(xí)在Linux的字符模式下,編輯、編譯及調(diào)試一個(gè)C程序的基本方法。
二、實(shí)驗(yàn)內(nèi)容和步驟 1 gcc和 g++ 語(yǔ)言編譯器
GCC是GNU Compiler Collection的縮寫,它是世界上最為重要的開放源代碼軟件[18]。因?yàn)樗衅渌拈_放源代碼項(xiàng)目都依賴于GCC進(jìn)行編譯。比如,沒(méi)有GCC,Linux的產(chǎn)生就不會(huì)成為可能。
GCC能工作在很多平臺(tái)上,這里所說(shuō)的平臺(tái)是指計(jì)算機(jī)硬件芯片和運(yùn)行在其上的操作系統(tǒng)的組合。下表是GCC運(yùn)行的平臺(tái)。表 GCC運(yùn)行的平臺(tái) 硬件
操作系統(tǒng)
Alpha
Red Hat Linux 7.1
HPPA
HPUX 11.0
Intel x86
Debian Linux 2.2, Red Hat Linux 6.2, FreeBSD 4.5
MIPS
IRIX 6.5
PowerPC
AIX4.3.3
Sparc
Solaris 2.7
GCC可以編譯多種語(yǔ)言:C,C++,對(duì)象C(標(biāo)準(zhǔn)C的派生),F(xiàn)ortran,Java,Ada。正如GCC縮寫所代表的對(duì)象一樣,GCC實(shí)際上是多種編譯器的統(tǒng)稱,gcc是所有編譯器的統(tǒng)一的程序接口,在本書中,并沒(méi)有區(qū)分GCC和gcc。同時(shí),GCC 也能夠進(jìn)行代碼優(yōu)化,提高執(zhí)行程序的運(yùn)行速度。g++是構(gòu)建于 gcc 基礎(chǔ)上的 C++語(yǔ)言編譯器。gcc 編譯過(guò)程分為 4個(gè)階段: l
預(yù)處理 l
編譯 l
匯編 l
連接
最簡(jiǎn)單的C 語(yǔ)言編譯的例子: 用 vi建立一個(gè) hello.c文件 $vi hello.c
輸入字符 i,插入文本以下文本 /*
* hello.c
*/
#include
printf(“ Hello World!n”);
return 0;}
最后輸入字符
gcc 帶有多達(dá)數(shù)頁(yè)的編譯選項(xiàng),我們僅列出最常用的幾項(xiàng):
-o 可執(zhí)行文件名指定輸出的可執(zhí)行文件名,而不是默認(rèn)的 a.out-c
只編譯生成.o 的目標(biāo)文件,不連接生成可執(zhí)行文件-s
只編譯生成.s的匯編文件,不連接生成可執(zhí)行文件-g
在可執(zhí)行文件中加入標(biāo)準(zhǔn)調(diào)試信息-Wall
允許GCC發(fā)出警告型錯(cuò)誤信息 選項(xiàng)使用的例子:
對(duì)以上 hello.c使用-o,-g 常用選項(xiàng)重新編譯、執(zhí)行: $gcc-g hello.c-o hello $./hello Hello World!$
GCC默認(rèn)的擴(kuò)展文件名:.c
C 語(yǔ)言源代碼
.C
.cc
C++語(yǔ)言源代碼.i
預(yù)處理后的 C語(yǔ)言源代碼.ii
預(yù)處理后的 C++語(yǔ)言源代碼.S.s
匯編語(yǔ)言源代碼.o
編譯后的目標(biāo)代碼.a
.so 編譯后的庫(kù)代碼
下面的例子由兩個(gè)文件組成:main.c, calc.c,其中,main.c文件內(nèi)容為: #include
printf(“Please input a positive integer!n”);
scanf(“%i”,&iInput);} iOutput = calc(iInput);
printf(“Result is:%in”, iOutput);return 0;} calc.c的文件內(nèi)容為: #include
iOut += iOut * iIn;} return iOut;}
1、編譯過(guò)程
有三種方式編譯這兩個(gè)源程序,一是直接使用如下命令行完成編譯、鏈接過(guò)程: $gcc main.c calc.c-o main 命令行中,main.c calc.c的后綴名指明了調(diào)用c編譯器,前面講到了gcc是GCC的眾多編譯器的統(tǒng)一入口,gcc靠后綴名決定調(diào)用什么編譯器,-o 參數(shù)指定了可執(zhí)行文件的文件名為main。
第二種方法是編譯calc.c為靜態(tài)庫(kù),編譯main.c時(shí)指定靜態(tài)庫(kù)的位置。需要將calc.c編譯成中間文件calc.o,使用如下命令行: $gcc-c calc.c 生成靜態(tài)庫(kù)文件,添加calc.o到靜態(tài)庫(kù)中,使用如下命令行: $ar-r libcalc.a calc.o 命令行中,-r libcalc.a參數(shù)表示建立靜態(tài)庫(kù),名字為libcalc.a。接下來(lái),使用如下命令行: $gcc main.c libcalc.a-o main 上面這條命令也可以用下面的命令完成: $gcc main.c-lcalc –o main-l參數(shù)可以指定庫(kù)名稱,這里calc表示使用庫(kù)libcalc.a,庫(kù)名字前面的lib和后面的.a被省略掉了,遵從了命名法。
第三種方法是建立共享庫(kù),編譯時(shí)指定共享庫(kù)。首先,編譯calc.c為calc.o,使用命令行: $gcc-c-fpic calc.c 命令行中,-fpic指定calc.o為可重分配地址屬性,pic是position independence code的縮寫。接下來(lái)使用calc.o生成共享庫(kù)calc.so: $gcc-shared calc.o –o calc.so 這兩條命令也可以縮減為一行: $gcc-shared-fpic calc.c-o calc.so 最后編譯main.c,鏈接生成的共享庫(kù): $gcc main.c calc.so-o main 2 make項(xiàng)目管理器
make 項(xiàng)目管理器(GNU 中的名稱為 gmake)可以根據(jù)項(xiàng)目開發(fā)者說(shuō)明的項(xiàng)目開 發(fā)文件 Makefile 自動(dòng)的進(jìn)行編譯配置和重復(fù)編譯,能實(shí)現(xiàn)復(fù)雜項(xiàng)目的編譯自動(dòng)化。項(xiàng)目開發(fā)文件 Makefile 的編寫使用以下規(guī)則: 目標(biāo)體 1:依賴體 1 [依賴體2 [...]] 命令行 1 命令行 2
[...]
目標(biāo)體 2:依賴體 1 [依賴體2 [...]] 命令行 1 命令行 2
[...]
[...]
其中目標(biāo)體是命令行要生成的輸出文件,依賴體是命令行要輸入的文件或選項(xiàng),命 令行序列是要?jiǎng)?chuàng)建目標(biāo)體文件所需要的步驟,例如編譯命令。無(wú)特別指定,make 總是使用當(dāng)前目錄中的 Makefile 進(jìn)行自動(dòng)編譯。
例如我們?cè)诋?dāng)前目錄中有兩個(gè)項(xiàng)目開發(fā)文件hello.c和hello.h,則Makefile文件可以 編寫為: hello: hello.o
gcc hello.o-o hello
hello.o: hello.c hello.h
gcc-c hello.c clean:
rm hello *.o
make 命令的使用: $g make
輸入make或make hello將生成Makefile中所有的目標(biāo)文件,即hello,hello.o,hello.s。$g make hello.o 將僅生成目標(biāo)文件 hello.o $g make clean
是一條偽目標(biāo)生成命令,該目標(biāo)沒(méi)有依賴體,它只執(zhí)行對(duì)已生成目標(biāo)文件的刪除。當(dāng)我們對(duì)以上依賴體中的任意一個(gè)進(jìn)行了修改,重新 make 時(shí)僅會(huì)引發(fā)對(duì)應(yīng)目標(biāo)體的重新生成,從而提高了編譯的效率并保證了項(xiàng)目開發(fā)的正確性。3 gdb程序調(diào)試器
GDB是GNU Project Debugger的縮寫,用于調(diào)試Ada, C, C++, Objective-C, Pascal 和其他語(yǔ)言編寫的程序[20],這些程序可以運(yùn)行在本地計(jì)算機(jī)上,也可以運(yùn)行在遠(yuǎn)程計(jì)算機(jī)上。GDB可以運(yùn)行在幾乎所有的UNIX和微軟Windows平臺(tái)上。
GDB主要能做下面4種事(以及由它們所支持的其他事情): 1)啟動(dòng)程序,指定可能影響程序運(yùn)行的任何條件; 2)指定程序在一定條件下停止; 3)檢查當(dāng)程序停止時(shí)發(fā)生的事情;
4)通過(guò)改變程序中的某些條件,測(cè)試可能造成的軟件錯(cuò)誤,還可以由此學(xué)習(xí)其他的軟件錯(cuò)誤。
GDB可以做源代碼級(jí)別的程序調(diào)試(需要在編譯時(shí)指定相應(yīng)條件),也可以做二進(jìn)制級(jí)別的程序調(diào)試。
如果您在 gcc 編譯選項(xiàng)中用到了-g 調(diào)試選項(xiàng),則編譯出的可執(zhí)行文件就會(huì)帶有符號(hào)表。這樣的程序就可以使用 gdb 跟蹤調(diào)試,觀察到它的高級(jí)語(yǔ)言源代碼的執(zhí)行過(guò)程和變量的中間結(jié)果,從而能快速的排除程序運(yùn)行時(shí)發(fā)生的錯(cuò)誤。以下是一個(gè)帶有運(yùn)行時(shí)錯(cuò)誤的C程序,注意程序想通過(guò)傳地址方式在一個(gè)函數(shù)中為字符變量 C賦一個(gè)字符,但它引用了一個(gè)空指針,這將引發(fā)運(yùn)行時(shí)的段非法錯(cuò)誤使得程序異常終止。但我們可以通過(guò) gdb 跟蹤到它產(chǎn)生錯(cuò)誤的位置,從而分析出產(chǎn)生錯(cuò)誤的原因。/*
* debugmy.c */
#include
*cptr = 'a';
printf(“myputc=%cn”,*cptr);
}
int main(void){
char c;
char * cptr;
c = 'A';
myputc(cptr);
return 0;}
使用帶-g 選項(xiàng)的 gcc編譯、執(zhí)行: $gcc-g debugmy.c-o debugmy $./debugmy 段錯(cuò)誤 $
使用 gdb 跟蹤查錯(cuò) $ gdb./debugmy
GNU gdb Red Hat Linux(6.3.0.0-1.122rh)
Copyright 2004 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions.Type “show copying” to see the conditions.There is absolutely no warranty for GDB.Type “show warranty” for details.This GDB was configured as “i386-redhat-linux-gnu”...Using host libthread_db library “/lib/libthread_db.so.1”.(gdb)
現(xiàn)在進(jìn)入了 gdb 調(diào)試狀態(tài),可以使用 gdb 的調(diào)試子命令跟蹤程序的執(zhí)行。Gdb 常 用命令:
list [行號(hào)] 列出指定行號(hào)的上下行(缺省為 10行)break [源程序文件名:] 行號(hào)建立一個(gè)斷點(diǎn) run
啟動(dòng)被調(diào)試的程序 next
從斷點(diǎn)處向下執(zhí)行一行
step
從斷點(diǎn)處向下執(zhí)行一行,當(dāng)前行為函數(shù)則跟蹤進(jìn)入函數(shù) continue
繼續(xù)從斷點(diǎn)處連續(xù)執(zhí)行 print 變量名打印變量當(dāng)前值 quit
退出 gdb
讓我們現(xiàn)使用 list命令查看一下要調(diào)試的程序是否已經(jīng)裝入,輸入:(gdb)list 10
void myputc(char * cptr)6
{
*cptr = 'a';
printf(“myputc=%cn”,*cptr);9
}
int main(void)11
{
char c;13
char * cptr;14
c = 'A';
我們將斷點(diǎn)設(shè)在第 15 行上,輸入:(gdb)break 15
Breakpoint 1 at 0x80483c0: file debugmy.c, line 15.開始跟蹤執(zhí)行,輸入:
(gdb)run
Starting program: /root/ipc/debugmy
Reading symbols from shared object read from target memory...done.Loaded system supplied DSO at 0xffffe000
Breakpoint 1, main()at debugmy.c:15 15
myputc(cptr);
程序執(zhí)行到第 15 行上停止,我們采用單步執(zhí)行跟蹤錯(cuò)誤的發(fā)生,輸入:(gdb)step
myputc(cptr=0x9bbe40 “U211? WVS203? L? 215s”)at debugmy.c:7 7
*cptr = 'a';
程序執(zhí)行一行,進(jìn)入函數(shù)myputc,再單步執(zhí)行一行,再次輸入:(gdb)step
Program received signal SIGSEGV, Segmentation fault.0x0804838d in myputc(cptr=0x9bbe40 “U211? WVS203? L? 215s”)at debugmy.c:7 7
*cptr = 'a';
第三篇:嵌入式linu學(xué)習(xí)心得
嵌入式Linux學(xué)習(xí)心得
1、Linux命令
ls:查看目錄-l以列表方式查看;ls –l 與ll的功能一樣 pwd: 查看當(dāng)前的目錄
cd:改變當(dāng)前操作目錄cd /直接跳到根目錄 cd..回到上一級(jí)目錄 cat: 打印顯示當(dāng)前文件的內(nèi)容信息
mkdir:創(chuàng)建目錄
fdisk: 查看硬盤分區(qū)信息,-l以列表方式查看
->代表是鏈接文件,類似window下的快捷方式。
cp: 復(fù)制命令,例子cp 文件名 /home/dir/
mv: 移動(dòng)或改名,如mv sonf.confsonf.txt(改名)移動(dòng):mv sonf.conf / rm:刪除命令,如rm –f test.c;如刪除目錄rm –fr d
man:查看某個(gè)命令的幫助,man 命令
2、各系統(tǒng)目錄的功能
drw—r—w--:d代表是目錄,drw代表當(dāng)前用戶的權(quán)限,r代表組用戶的權(quán)限,w代表其它用戶的權(quán)限。x代表有執(zhí)行權(quán)限。
/boot/gruff.conf: 啟動(dòng)引導(dǎo)程序
/dev:brw—rw--:b代表是塊設(shè)備。Linux設(shè)備有三種,塊設(shè)備(b開頭)、字符設(shè)備(c開頭)、網(wǎng)絡(luò)設(shè)備。had代表第一個(gè)硬盤,hdb代表第二個(gè)硬盤。Hdb2代表第二塊硬盤的第二個(gè)分區(qū)。3,67代表主設(shè)備為3,從設(shè)備為67./etc:存放的是系統(tǒng)的配置文件。Inittab文件存放不同啟動(dòng)方式下必須啟動(dòng)的進(jìn)程。Inittab文件中有6個(gè)啟動(dòng)level,wait中對(duì)應(yīng)著6個(gè)level的目錄,respawn代表當(dāng)一個(gè)進(jìn)程被意外終止了,但會(huì)自動(dòng)啟動(dòng)的進(jìn)程,如守護(hù)進(jìn)程。rc.d目錄中存放了一個(gè)rc.sysinit文件,里面存放系統(tǒng)初始化配置信息。/etc還有一個(gè)vsftpd里面存放tcp、ftp的配置。
/home : 用戶目錄,存放用戶的文件,/lib:存放庫(kù)文件,后綴為so的文件代表動(dòng)態(tài)鏈接庫(kù)。
/lost+found:系統(tǒng)意外終止,存放一些可以找回的文件。
/mnt:掛載外部設(shè)備,如掛載光驅(qū):mount –t /dev/cdrom/mnt/cdrom,如
果在雙系統(tǒng)中,要查看windows中D盤的文件,首先應(yīng)該將D盤的文件映射過(guò)來(lái),mount –t /dev/hda2/mnt/windows/d
/opt:用戶安裝的應(yīng)用程序
/proc:是系統(tǒng)運(yùn)行的映射,比較重要。里面的文件數(shù)字代表進(jìn)程號(hào)。每個(gè)進(jìn)程號(hào)目錄下包含進(jìn)程的基本信息。還有其他信息,如cpuinfo等,內(nèi)核支持的文件系統(tǒng)filesystem等。系統(tǒng)支持的中斷interrupts,iomen代表內(nèi)存分配情況。ioport存放IO端口號(hào)。還有分區(qū)信息,modole信息,狀態(tài)信息,版本信息
對(duì)于Linux的設(shè)備驅(qū)動(dòng)程序,有兩種加載模式,一種是直接加載進(jìn)linux內(nèi)核,一種是以模塊的方式加載到內(nèi)核。
/sbin: 系統(tǒng)管理的一些工具。如poweroff關(guān)機(jī)工具。
/usr: 安裝系統(tǒng)時(shí)很多文件放在此目錄下面,包含一些更新等,include包含的頭文件,lib 是Linux的庫(kù)文件,src包含Linux2.4的內(nèi)核源碼
/var:存放是臨時(shí)變量
3、
第四篇:EDA開發(fā)工具簡(jiǎn)介
EDA開發(fā)工具簡(jiǎn)介.txt為什么我們?cè)谥v故事的時(shí)候總要加上從前?開了一夏的花,終落得粉身碎骨,卻還笑著說(shuō)意義。本文由中國(guó)山東人2009貢獻(xiàn)
doc文檔可能在WAP端瀏覽體驗(yàn)不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機(jī)查看。EDA 開發(fā)工具簡(jiǎn)介
1.Xilinx ISE 8.2i Xilinx ISE 8.2 終于于 2006.6 月釋放。業(yè)界最完整的可編程邏輯設(shè)計(jì)解決 方案,用于實(shí)現(xiàn)最優(yōu)性能、功率管理、降低成本和提高生產(chǎn)率。Xilinx ISE 8.2i 除了具有目前市場(chǎng)上最快的速度,Xilinx ISE v8.2i 和新 的 Virtex-4? FPGA 系列還具有多達(dá) 200,000 個(gè)的邏輯單元和高達(dá) 500 MHz 的頻 率性能,使設(shè)計(jì)者能夠?qū)崿F(xiàn)完全嶄新的設(shè)計(jì)前景!Xilinx ISE 8.2 領(lǐng)略世界上最 容易使用的、首屈一指的 PLD 設(shè)計(jì)環(huán)境,由頂級(jí) FPGA 工具供應(yīng)商提供的高級(jí)邏 輯解決方案 Xilinx ISE 8.2 Xilinx ISE 8.2 關(guān)鍵特性 支持 Virtex-4 系列器件 – 業(yè)界第一個(gè)多平臺(tái) FPGA 與最接近的競(jìng)爭(zhēng)產(chǎn)品相比,Xilinx Fmax 技術(shù)的平均性能快出 10%-37%,最 高性能快出 70%。可以節(jié)省一個(gè)或多個(gè)速度等級(jí)的成本,并可在邏輯設(shè)計(jì)中實(shí)現(xiàn)最低的總成 本。可支持多處理器工作站,通過(guò)在設(shè)計(jì)流程中采用超線程技術(shù),使您能夠節(jié)省 項(xiàng)目時(shí)間并充分使用工作站設(shè)備。無(wú)可比擬的易用性和獲得廣泛支持的平臺(tái) 2004 與 2005 年的獨(dú)立調(diào)查顯示:ISE 是 FPGA 設(shè)計(jì)者的首選。2006 年 6 月,今天宣布推出其深受歡迎的集成軟件環(huán)境(ISE)設(shè)計(jì)工具 套件 8.2i 版,新版本增加了新的 ISE Fmax 技術(shù),具有增強(qiáng)的物理綜合能力,可提高 Virtex?-4 和 Spartan?-3 架構(gòu)的性能和時(shí)序收斂特性。通過(guò)使用 ISE 8.2i 軟件,設(shè)計(jì)者可將性能提升至比以前 ISE 版本平均高出 10% 到 37%,與相 比,并將使用 Virtex-4 FPGA 的性能提升至最高可超出競(jìng)爭(zhēng)解決方案的 70%。ISE 8.2i 還對(duì)其業(yè)界唯一的局部重配置技術(shù)進(jìn)行了增強(qiáng),可實(shí)現(xiàn)更低的成本、更小 的尺寸和更低的功耗。通過(guò)以低于上一個(gè) ISE 版本的成本來(lái)提供相同的平均速度等級(jí),這些新特 性旨在進(jìn)一步加強(qiáng)賽靈思面向高性能系統(tǒng)設(shè)計(jì)的解決方案,包括具有嵌入式處 理、數(shù)字信號(hào)處理(DSP)和高級(jí)連接性協(xié)議等功能的設(shè)計(jì)。通過(guò)在 ISE 工具中使用高級(jí)物理 綜合功能,設(shè)計(jì)者可最大程度地提高性能吞吐率,加快上市時(shí)間,降低總開發(fā)成 本。此外,諸如 ChipScope? Pro 8.2i 片內(nèi)調(diào)試(in-silicon debug)集成以及更為強(qiáng)大的 局部重配置支持等特性進(jìn)一步縮短了開發(fā)時(shí)間,降低了系統(tǒng)成本。
“我們一直在與設(shè)計(jì)者們合作以解決他們的關(guān)鍵挑戰(zhàn),如時(shí)序收斂、成本和 系統(tǒng)設(shè)計(jì)復(fù)雜度等。ISE 8.2i 通過(guò)高級(jí)設(shè)計(jì)編譯優(yōu)化很好地解決了這些問(wèn)題,提供了實(shí)質(zhì)性的自動(dòng)化 Fmax 提升和直觀的新界面特性,”賽靈思公司設(shè)計(jì)軟件部副總裁 Bruce Talley 說(shuō)。“現(xiàn)在設(shè)計(jì)者可以有更大的把握來(lái)滿足其最終產(chǎn)品的系統(tǒng)性能、功 能性和成本目標(biāo)。” ISE Fmax 性能技術(shù)可將設(shè)計(jì)速度提升至最高超出競(jìng)爭(zhēng)解決方案 70% 新的 ISE Fmax 技術(shù)采用高效算法以改善物理綜合與邏輯優(yōu)化的結(jié)果,使 Virtex-4 FPGA 的性能優(yōu)勢(shì)比競(jìng)爭(zhēng)器件可最多高出 70%。ISE Fmax 技術(shù)包括用 于設(shè)計(jì)重定時(shí)、時(shí)序驅(qū)動(dòng)包裝與布局、性能評(píng)估與布局后邏輯優(yōu)化的一整套功能。最新版本中包含的 ISE Xplorer 工具是一個(gè)易于使用的腳本,可幫助設(shè)計(jì)者評(píng) 估和優(yōu)化 Virtex-4 與 Spartan-3FPGA 的性能,對(duì)于時(shí)序驅(qū)動(dòng)設(shè)計(jì)可比以前版 本平均提高 10% 的性能。ISE 8.2i 提供了一種性能評(píng)估模式,可對(duì)沒(méi)有時(shí)序約 束的設(shè)計(jì)提供 37% 的直接性能改善。ISE Fmax 技術(shù)與由 Synplicity 和 Mentor Graphics 提供的綜合優(yōu)化技術(shù) 互為補(bǔ)充。綜合優(yōu)化技術(shù)與 ISE Fmax 技術(shù)的結(jié)合可使用戶滿足苛刻的時(shí)序目 標(biāo)。“新的 ISE 8.2i 軟件與 Synplify Pro 綜合技術(shù)產(chǎn)品的結(jié)合,為賽靈思 FPGA 設(shè)計(jì)者們提供了推進(jìn)時(shí)序性能的優(yōu)勢(shì),”Synplicity 公司 FPGA 產(chǎn)品營(yíng)銷 主管 Jeff Garrison 說(shuō)。“我們一直與賽靈思保持緊密合作,以確保我們的最 新技術(shù),如最近在我們的 Synplify Premier 產(chǎn)品中引入的基于圖形的物理綜合 際醯齲 芄揮?ISE 軟件實(shí)現(xiàn)對(duì)接,從而為整個(gè)賽靈思 FPGA 產(chǎn)品線提供最快的時(shí) 序收斂。” “Mentor Graphics 的高級(jí) Precision Synthesis 解決方案在賽靈思 ISE 8.2i 版中的緊密集成,為我們的共同客戶同時(shí)提供了兩種環(huán)境的最佳特性,” Mentor Graphics 公 司 設(shè) 計(jì) 創(chuàng) 建 與 綜 合 技 術(shù) 部 總 經(jīng) 理 Simon Bloch 說(shuō)。“Precision Synthesis 中經(jīng)過(guò)客戶驗(yàn)證的設(shè)計(jì)分析技術(shù),可實(shí)現(xiàn)自動(dòng)/交互優(yōu) 化與用戶控制之間的恰當(dāng)平衡,現(xiàn)在可為 ISE 8.2i 中業(yè)界領(lǐng)先的賽靈思 Fmax 技 術(shù)提供有力補(bǔ)充。” 業(yè)界唯一的局部重配置解決方案 通過(guò)推出 8.2i 版本,賽靈思增加了一種新的方法,以增強(qiáng)其業(yè)界首個(gè)且唯 一的局部重配置解決方案。局部重配置可降低系統(tǒng)成本、尺寸、器件數(shù)量及功耗,適用于眾多的應(yīng)用,如軟件無(wú)線電(SDR)和高性能計(jì)算等。設(shè)計(jì)者現(xiàn)在可以在 器件其余部分繼續(xù)運(yùn)行的同時(shí)將不同的硬件配置動(dòng)態(tài)加載到 FPGA 的同一區(qū)域。這種實(shí)時(shí)可編程特性建立在現(xiàn)場(chǎng)可升級(jí)性和多引導(dǎo)方法的基礎(chǔ)上。現(xiàn)場(chǎng)可升級(jí)性 和多引導(dǎo)方法已經(jīng)使許多賽靈思客戶通過(guò)實(shí)時(shí)診斷提升了系統(tǒng)可靠性,降低了現(xiàn) 場(chǎng)服務(wù)成本,并延長(zhǎng)了市場(chǎng)中已有產(chǎn)品的使用壽命。易用性提高了生產(chǎn)率
ISE 8.2i 在性能評(píng)估模式中提供了快 37% 的按鈕,可實(shí)現(xiàn)對(duì)無(wú)需約束的設(shè) 計(jì)進(jìn)行快速和輕松的評(píng)估。ISE 8.2i 還提供了對(duì)雙核 CPU 工作站的支持,可實(shí) 現(xiàn)更快的編譯時(shí)間和在多個(gè) CPU 核上的設(shè)計(jì)作業(yè)并行處理。業(yè)界最全面的功耗 分析解決方案 Xpower、WebPower Tools 8.2i 中改進(jìn)的 Web 分析功能以及新的 功耗優(yōu)化布線技術(shù)都進(jìn)一步加強(qiáng)了這些能力。ISE 8.2i Project Navigator(項(xiàng) 目瀏覽器)和集成的 ISE Simulator(仿真器)工具在所有平臺(tái)上提供了全新直 觀的 Windows XPTM 外觀和感受,使 ISE 8.2i 比以前任何時(shí)候都更容易學(xué)習(xí)和 使用。2.ChipScope Pro 8.2i ChipScope Pro 8.2i 的發(fā)布提供了業(yè)界最完善和易用的調(diào)試解決方案,最 快可超出仿真 50 倍。ChipScope Pro 內(nèi)核資源估計(jì)器可讓用戶發(fā)掘片上調(diào)試與 驗(yàn)證功能選項(xiàng),如觸發(fā)寬度、采樣深度,以及高級(jí)功能如觸發(fā)排序和存儲(chǔ)資格審 查等,以決定片上可視性與 FPGA 資源分配之間的最佳平衡。3.Xilinx EDK 8.2i嵌入式開發(fā)套件 Xilinx平臺(tái) FPGA,例如 Virtex-
4、Virtex-II Pro 或 Spartan-3 器件系列 允許工程團(tuán)隊(duì)定制他們的硬核/軟核設(shè)計(jì),以優(yōu)化其特性集、性能、尺寸和成本.采用靈活的可編程平臺(tái),這些智能的平臺(tái)工具能夠使系統(tǒng)架構(gòu)、硬件和軟件工程 師成為可編程系統(tǒng)領(lǐng)域的專家。XPS 7.1i 支持 Virtex-4 FX,并有一系列很有用的改進(jìn) 我們很高興地宣布發(fā)布 7.1i 版嵌入式開發(fā)套件和平臺(tái)工作室工具包。這些 功能強(qiáng)大的處理器開發(fā)工具是 Xilinx 綜合性嵌入式解決方案的關(guān)鍵部分,面向 Virtex 和 Spartan 的 FPGA.Xilinx平臺(tái)工作室工具包通過(guò)提取和自動(dòng)化處理 器系統(tǒng)設(shè)計(jì),加速了嵌入式開發(fā)。7.1i 主要的更新是對(duì) Virtex-4 FX平臺(tái) FPGA 器件和其它 XPS 改進(jìn)提供新 的設(shè)計(jì)支持,包括軟件域輪廓分析、硬件平臺(tái)開發(fā)的改進(jìn)、易用性和產(chǎn)品的改進(jìn)。7.1i 主要包括以下的創(chuàng)新: 5.Virtex-4 FX平臺(tái) FPGA 嵌入式開發(fā)支持: 使用協(xié)處理器單元(APU)單元應(yīng)用,優(yōu)化了性能,通過(guò)將它們移入硬件,強(qiáng) 化了軟件功能 輪廓/分析關(guān)鍵有助于識(shí)別性能瓶頸,使設(shè)計(jì)功能面向 FPGA 硬件(XPS-SDK)的加速 硬件平臺(tái)開發(fā)的改進(jìn): 返回設(shè)計(jì)資源錯(cuò)誤(C, MSS, MHS, etc.)ISE 和 XPS 工具相結(jié)合-ISE 直接調(diào)用 XPS 的程序,如基本系統(tǒng)組建器向?qū)?設(shè)計(jì)數(shù)據(jù)表的生成 外設(shè)應(yīng)用測(cè)試代碼的生成 XPS 仿真環(huán)境檢查器 為 XPS 產(chǎn)生定制的板定義文件
易用性和其它產(chǎn)品改進(jìn) XMD 的改進(jìn) 支持新的 MicroBlaze 調(diào)試邏輯、面積更小、下載更快 中斷和 FLASH 調(diào)試的更精細(xì)控制 FLASH 書寫程序的改進(jìn) 自動(dòng)引導(dǎo)下載程序的生成 仿真 XPS 仿真環(huán)境檢查器 自動(dòng)測(cè)試的生成 MicroBlaze ISS 支持/改進(jìn) FSL 高速緩存存儲(chǔ)器鏈接接口 FSL 數(shù)據(jù)鏈接 模型的改進(jìn) OPB Uartlite 支持中斷、波特率等 OPB GPIO 支持中斷 OPB 定時(shí)器支持多個(gè)定時(shí)器 系統(tǒng)仿真支持(MicroBlaze)為 MicroBlaze 系統(tǒng)生成虛擬平臺(tái)模型 概要 升級(jí)到 8.4 版 TCL 運(yùn)行 GUI 和基本工具的命令行 DRC 的改進(jìn) 升級(jí)到新版 GCC,用于 MB 和 PPC LWIP & XMK 打包用于插槽: Ethernetlite 的 LWIP 支持 編譯器的改進(jìn):新 CMP 指令,MB-gcc 優(yōu)化 數(shù)據(jù)表生成器 PBDE 的改進(jìn) 允許塊上有端口 使端口成為全局或外部端口的能力 將原理圖捕捉到 JPEG 文件中
將 FSL 向?qū)Р⑷?Create IP 向?qū)?現(xiàn)在,產(chǎn)生/輸入外設(shè)向?qū)г?Verilog 中輸出用戶核心 改進(jìn)了庫(kù)處理-用戶庫(kù) 支持 Verilog 6.Altera Quartus II 6.0(電子設(shè)計(jì)): Quartus II 軟件 6.0 在性能和效率上達(dá)到了最高水平。這一版本包括了 FPGA 供應(yīng)商提供的第一款時(shí)序分析工具——TimeQuest 時(shí)序分析儀,能夠很好的 支持業(yè)界標(biāo)準(zhǔn) Synopsys 設(shè)計(jì)約束(SDC)時(shí)序格式。該版本還含有擴(kuò)展團(tuán)隊(duì)設(shè)計(jì)功 能,提高了高密度設(shè)計(jì)協(xié)作的效率。Altera 在 Quartus II 軟件 6.0 高密度設(shè)計(jì)上實(shí)現(xiàn)重大改進(jìn) 2006 年 5 月 9 號(hào),香港—Altera 公司(NASDAQ: ALTR)今天宣布開始發(fā)售 6.0 版的 Quartus? II 軟件。該版本包括了由 FPGA 供應(yīng)商提供的第一款時(shí)序分 析工具 TimeQuest 時(shí)序分析儀,為業(yè)界標(biāo)準(zhǔn) Synopsys 設(shè)計(jì)約束(SDC)時(shí)序格式 提供自然、全面的支持。這一最新版本還包括擴(kuò)展的團(tuán)隊(duì)設(shè)計(jì)功能,能夠有效管 理高密度設(shè)計(jì)團(tuán)隊(duì)之間的協(xié)作。這些改進(jìn)迎合了當(dāng)今高密度 90nm 的設(shè)計(jì)要求,同時(shí)為滿足客戶對(duì)更高密度 FPGA 的需求以及 Altera 發(fā)展下一代 65nm 產(chǎn)品系列 打下了基礎(chǔ)。Synopsys 戰(zhàn)略聯(lián)盟總監(jiān) Lonn Fiance 評(píng)論說(shuō):“FPGA 設(shè)計(jì)人員將業(yè)界標(biāo)準(zhǔn) SDC 時(shí)序約束格式直接讀取到 TimeQuest 時(shí)序分析儀中,能夠更迅速的實(shí)現(xiàn)時(shí)序 逼近。采用 SDC 格式可以提高 FPGA 設(shè)計(jì)人員的效率,進(jìn)一步促進(jìn)標(biāo)準(zhǔn)時(shí)序驗(yàn)證 方法在半導(dǎo)體業(yè)界的應(yīng)用。” Quartus II 軟件 6.0 的新增功能包括: TimeQuest 時(shí)序分析儀 TimeQuest 時(shí)序分析儀——新的 ASIC 性能時(shí)序分析儀,能夠自然的支持業(yè) 界標(biāo)準(zhǔn) SDC 時(shí)序約束格式。TimeQuest 時(shí)序分析儀幫助您建立、管理、分析具有 復(fù)雜時(shí)序約束的設(shè)計(jì),例如時(shí)鐘復(fù)用設(shè)計(jì)和源同步接口,并能夠迅速進(jìn)行高級(jí)時(shí) 序驗(yàn)證。Quartus II 軟件 6.0 訂購(gòu)版含有 TimeQuest 時(shí)序分析儀。
工程管理接口——改進(jìn)的團(tuán)隊(duì)設(shè)計(jì) 工程管理接口——在頂層設(shè)計(jì)上管理資源和時(shí)序預(yù)算。此外,您還可以利用 工程管理接口來(lái)管理模塊間的時(shí)序約束,以達(dá)到最佳性能。這一新功能使團(tuán)隊(duì)能 夠協(xié)作實(shí)現(xiàn)高密度 FPGA 設(shè)計(jì),從而提高設(shè)計(jì)性能和效率。這一功能是建立在 Quartus II 軟件 5.0 和 5.1 首次引入的漸進(jìn)式編譯設(shè)計(jì)基礎(chǔ)之上。其他增強(qiáng)功能
SystemVerilog 支 持 —— 包 括 對(duì) 流 行 SystemVerilog 語(yǔ) 法 的 支 持。SystemVerilog 提高了寄存器傳送級(jí)(RTL)設(shè)計(jì)的抽象等級(jí),更迅速的實(shí)現(xiàn) RTL 設(shè)計(jì)。改進(jìn)的 I/O 引腳規(guī)劃器——直接對(duì) Altera?宏功能、知識(shí)產(chǎn)權(quán)(IP)進(jìn)行整合,以及對(duì)引腳的簡(jiǎn)單分配。擴(kuò)展的板級(jí)設(shè)計(jì)支持——采用 Stratix? II FPGA 進(jìn)行設(shè)計(jì)時(shí),為設(shè)計(jì)輸出 提供 HSPICE 模型,以提高電路板建模的效率。LogicLock 增強(qiáng)——提供 LogicLockTM 成員資源濾除功能,將某些資源類型(例如,數(shù)字信號(hào)處理(DSP)單元、M4K 存儲(chǔ)器等)的設(shè)計(jì)單元從 LogicLock 區(qū) 域中自動(dòng)濾除,從而提高了設(shè)計(jì)效率。SignalTap II 邏輯分析儀——含有 Nios? II CPU SignalTap? II 分解插件。插件協(xié)助完成對(duì)已定義 Nios II 節(jié)點(diǎn)集的“提取”,以及 Nios II CPU 助記符定 義,從而提高了系統(tǒng)級(jí)調(diào)試效率。OS 支持 Windows XP Professional x64(32 位)——運(yùn)行 Quartus II 軟件 32 位應(yīng) 用軟件的 Windows XP Professional x64 操作系統(tǒng)支持 Quartus II 軟件。64 位硬件/軟件平臺(tái)上運(yùn)行 32 位應(yīng)用軟件的優(yōu)勢(shì)在于能夠訪問(wèn)更多的存儲(chǔ)器,從而 提高了性能。7.Red Hat Linux Enterprise 4.0——現(xiàn)在提供支持。Nios.II.Development.Kit.Version.5.0(NiosII 嵌入式處理器集成開發(fā)環(huán) 境)在 20 世紀(jì) 90 年代末,可編程邏輯器件(PLD)的復(fù)雜度已經(jīng)能夠在單個(gè)可 編程器件內(nèi)實(shí)現(xiàn)整個(gè)系統(tǒng)。完整的單芯片系統(tǒng)(SOC)概念是指在一個(gè)芯片中實(shí) 現(xiàn)用戶定義的系統(tǒng),它通常暗指包括片內(nèi)存儲(chǔ)器和外設(shè)的微處理器。最初宣稱真 正的 SOC――或可編程單芯片系統(tǒng)(SOPC)――能夠提供基于 PLD 的處理器。在 2000 年,Altera 發(fā)布了 Nios 處理器,這是 AlteraExcalibur 嵌入處理器計(jì)劃中 第一個(gè)產(chǎn)品,它成為業(yè)界第一款為可編程邏輯優(yōu)化的可配置處理器。本文闡述開 發(fā) Nios 處理器設(shè)計(jì)環(huán)境的過(guò)程和涉及的決策,以及它如何演化為一種 SOPC 工具。Altera 清楚地意識(shí)到,如果把可編程邏輯的固有的優(yōu)勢(shì)集成到嵌入處 理器的開發(fā)流程中,我們就會(huì)擁有非常成功的產(chǎn)品。基于 PLD 的處理器恰恰具有 應(yīng)用所需的特性。一旦定義了處理器之后,設(shè)計(jì)者就“具備”了體系結(jié)構(gòu),可放 心使用。因?yàn)?PLD 和嵌入處理器隨即就生效了,可以馬上開始設(shè)計(jì)軟件原型。CPU 周邊的專用硬件邏輯可以慢慢地集成進(jìn)去,在每個(gè)階段軟件都能夠進(jìn)行測(cè)試,解 決遇到的問(wèn)題。另外,軟件組可以對(duì)結(jié)構(gòu)方面提出一些建議,改善代碼效率和/ 或處理器性能,這些軟件/硬件權(quán)衡可以在硬件設(shè)計(jì)過(guò)程中間完成。處理器體系和開發(fā)流程 Altera 很早就認(rèn)為創(chuàng)建基于 Nios 處理器的系統(tǒng)和處理器本身一樣很重 要。隨著新生產(chǎn)品逐漸成熟,Altera 必須讓嵌入設(shè)計(jì)者信服地接受新的處理器
和新的設(shè)計(jì)流程。我們最無(wú)法確定的是嵌入設(shè)計(jì)者是否接受新的指令集。隨著 C 成為嵌入設(shè)計(jì)的事實(shí)標(biāo)準(zhǔn),這一問(wèn)題也迎刃而解。Altera 和 Cygnus(現(xiàn)歸 RedHat 所有)密切合作定義指令集體系,這樣 Cygnus 可以很容易地導(dǎo)入和優(yōu)化他們的 GNUPro Toolkit,這是絕大部分設(shè)計(jì)者非常熟悉的標(biāo)準(zhǔn) GNU 環(huán)境。設(shè)計(jì)流程成為最大的問(wèn)題。現(xiàn)成的微控制器提供了定義明確的外設(shè)組,由制造商集成處理器和外設(shè)。可配置處理器讓設(shè)計(jì)者自行創(chuàng)建總線體系,定義存 儲(chǔ)器映射和分配中斷優(yōu)先級(jí),非常自由地完成更多的工作。Altera 相信 SOPC 的 優(yōu)勢(shì)會(huì)吸引嵌入設(shè)計(jì)者,但是條件是其它的需求最小,風(fēng)險(xiǎn)很低。8.Nios II 集成開發(fā)環(huán)境 Nios II 集成開發(fā)環(huán)境(IDE)是 Nios II 系列嵌入式處理器的基本軟件開發(fā) 工具。所有軟件開發(fā)任務(wù)都可以 Nios II IDE 下完成,包括編輯、編譯和調(diào)試程 序。Nios II IDE 提供了一個(gè)統(tǒng)一的開發(fā)平臺(tái),用于所有 Nios II 處理器系統(tǒng)。僅僅通過(guò)一臺(tái) PC 機(jī)、一片 Altera 的 FPGA 以及一根 JTAG 下載電纜,軟件開發(fā)人 員就能夠往 Nios II 處理器系統(tǒng)寫入程序以及和 NiosII 處理器系統(tǒng)進(jìn)行通訊。Nios II IDE 基于開放式的、可擴(kuò)展 Eclipse IDE project 工程以及 Eclipse C/C++ 開發(fā)工具(CDT)工程。Nios II IDE 為軟件開發(fā)提供四個(gè)主要的功能:(1)工程管理器 Nios II IDE 提供多個(gè)工程管理任務(wù),加快嵌入式應(yīng)用程序的開發(fā)進(jìn)度。新工程向?qū)?——Nios II IDE 推出了一個(gè)新工程向?qū)В糜谧詣?dòng)建立 C/C++ 應(yīng)用程序工程和系統(tǒng)庫(kù)工程。采用新工程向?qū)В軌蜉p松地在 Nios II IDE 中創(chuàng) 建新工程。軟件工程模板——除了工程創(chuàng)建向?qū)В琋ios II IDE 還以工程模板的形式提 供了軟件代碼實(shí)例,幫助軟件工程師盡可能快速地推出可運(yùn)行的系統(tǒng)。(2)編輯器和編譯器 Altera Nios II IDE 提供了一個(gè)全功能的源代碼編輯器和 C/C++編譯器 文本編輯器——Nios II IDE 文本編輯器是一個(gè)成熟的全功能源文件編輯 器。這些功能包括:語(yǔ)法高亮顯示-C/C++、代碼輔助/代碼協(xié)助完成、全面的 搜索工具、文件管理、廣泛的在線幫助主題和教程、引入輔助、快速定位自動(dòng)糾 錯(cuò)、內(nèi)置調(diào)試功能。C/C++編譯器——Nios II IDE 為 GCC 編譯器提供了一個(gè)圖形化用戶界面,Nios II IDE 編譯環(huán)境使設(shè)計(jì) Altera 的 Nios II 處理器軟件更容易,它提供了 一個(gè)易用的按鈕式流程,同時(shí)允許開發(fā)人員手工設(shè)置高級(jí)編譯選項(xiàng)。Nios II IDE 編譯環(huán)境自動(dòng)地生成一個(gè)基于用戶特定系統(tǒng)配置(SOPC Builder 生成的 PTF 文件)的 makefile。Nios II IDE 中編譯/鏈接設(shè)置的任何改變都會(huì) 自動(dòng)映射到這個(gè)自動(dòng)生成的 makefile 中。這些設(shè)置可包括生成存儲(chǔ)器初始化文
件(MIF)的選項(xiàng)、閃存內(nèi)容、仿真器初始化文件(DAT/HEX)以及 profile 總結(jié) 文件的相關(guān)選項(xiàng)。(3)調(diào)試器 Nios II IDE 包含一個(gè)強(qiáng)大的、在 GNU 調(diào)試器基礎(chǔ)之上的軟件調(diào)試器-GDB。該調(diào)試器提供了許多基本調(diào)試功能,以及一些在低成本處理器開發(fā)套件中不會(huì)經(jīng) 常用到的高級(jí)調(diào)試功能。基本調(diào)試功能——Nios II IDE 調(diào)試器包含如下的基本調(diào)試功能:運(yùn)行控制、調(diào)用堆棧查看、軟件斷點(diǎn)、反匯編代碼查看、調(diào)試信息查看、指令集仿真器。高級(jí)調(diào)試 ——除了上述基本調(diào)試功能之外,Nios II IDE 調(diào)試器還支持以 下高級(jí)調(diào)試功能:硬件斷點(diǎn)調(diào)試 ROM 或閃存中的代碼、數(shù)據(jù)觸發(fā)、指令跟蹤。(4)閃存編程器 使用 Nios II 處理器的設(shè)計(jì)都在單板上采用了閃存,可以用來(lái)存儲(chǔ) FPGA 配 置數(shù)據(jù)和/或 Nios II 編程數(shù)據(jù)。Nios II IDE 提供了一個(gè)方便的閃存編程方法。任何連接到 FPGA 的兼容通用閃存接口(CFI)的閃存器件都可以通過(guò) Nios II IDE 閃存編程器來(lái)燒結(jié)。CFI 閃存之外,除 Nios II IDE 閃存編程器能夠?qū)B接到 FPGA 的任何 Altera 串行配置器件進(jìn)行編程。9.ModelSim SE 6.2B(電子仿真): 2006.8 月初發(fā)行的最新版本:ModelSim SE 6.2b ModelSim 專業(yè)版,VHDL、Verilog 和 Mixed-HDL 仿真器
Mentor Graphics ModelSim SE 6.1b 是業(yè)界最優(yōu)秀的 HDL 語(yǔ)言仿真器,它 提供最友好的調(diào)試環(huán)境,是唯一的單內(nèi)核支持 VHDL 和 Verilog 混合仿真的仿真 器。是作 FPGA/ASIC 設(shè)計(jì)的 RTL 級(jí)和門級(jí)電路仿真的首選,它采用直接優(yōu)化的編 譯技術(shù)、Tcl/Tk 技術(shù)、和單一內(nèi)核仿真技術(shù),編譯仿真速度快,編譯的代碼與平臺(tái)無(wú)關(guān),便于保護(hù) IP 核,個(gè)性化的圖形界面和用戶接口,為用戶加快調(diào)錯(cuò)提 供強(qiáng)有力的手段。全面支持 VHDL 和 Verilog 語(yǔ)言的 IEEE 標(biāo)準(zhǔn),支持 C/C++功能 調(diào)用和調(diào)試 具有快速的仿真性能和最先進(jìn)的調(diào)試能力,全面支持 UNIX(包括 64 位)、Linux 和 Windows平臺(tái)。主要特點(diǎn): RTL 和門級(jí)優(yōu)化,本地編譯結(jié)構(gòu),編譯仿真速度快; 單內(nèi)核 VHDL 和 Verilog 混合仿真; 源代碼模版和助手,項(xiàng)目管理; 集成了性能分析、波形比較、代碼覆蓋等功能;
數(shù)據(jù)流 ChaseX; Signal Spy; C 和 Tcl/Tk 接口,C 調(diào)試 10.Synplify Pro 8.1 Synplify Pro 8.1 半導(dǎo)體設(shè)計(jì)及驗(yàn)證軟件供應(yīng)商 Synplicity 公司近日對(duì)其 可編程邏輯器件(PLD)綜合軟件 Synplify Pro 8.1 進(jìn)行了改進(jìn)。Synplify Pro 軟 件 支 持 Verilog-2001 標(biāo) 準(zhǔn) 以 及 新 器 件 及 新 操 作 系 統(tǒng)(OS)。最 新 版 本 的 Synplify Pro 軟件提高了若干項(xiàng) QoR(最終結(jié)果質(zhì)量),以及增效定時(shí)引擎及自動(dòng) 寄存器重新定時(shí)功能的增強(qiáng),能夠提高設(shè)計(jì)人員的產(chǎn)出率,并且性能更佳。業(yè)界領(lǐng)先的基于 FPGA 的 ASIC 原型驗(yàn)證綜合工具,通過(guò)提供諸如團(tuán)隊(duì)設(shè)計(jì)、自動(dòng) re-timing、快速的編譯以及額外的特性來(lái)優(yōu)化設(shè)計(jì)結(jié)果。除了具有 B.E.S.T.引 擎 外,Synplify pro 又 加 入 了 D.S.T.(Direct Synthesis Technology),SCOPE(Synthesis Constraint Optimization Environment),STAMP 和多點(diǎn)優(yōu)化等技術(shù)來(lái)滿足設(shè)計(jì)者的需求。Synplify pro 提供了和布局布線工具 之間的 native-link 接口來(lái)完成 Push-Button 的流程,使用戶只需要點(diǎn)擊就可以 完成所有的綜合和布局布線的工作。基于 Synplicety 公司的 B.E.S.T.引擎,Synplify Pro 可以輕松綜合數(shù)百萬(wàn)門的設(shè)計(jì)而不需要分割。Synplify Pro 詳細(xì)功能描述 ◇ 提供優(yōu)于傳統(tǒng)綜合技術(shù)的快速的全局編譯和綜合優(yōu)化,針對(duì)算術(shù)模塊和 數(shù)據(jù)路徑的高性能和高面積利用率的優(yōu)化; ◇ 提供對(duì)設(shè)計(jì)約束的全面控制,智能化人機(jī)界面,提高設(shè)計(jì)效率,結(jié)合具 體器件結(jié)構(gòu),提供最佳性能; ◇ 提供自動(dòng)的 RAM 例化過(guò)程,提供自動(dòng)時(shí)鐘控制和同步/異步清零寄存器結(jié) 構(gòu),自動(dòng)識(shí)別 FSM 和選擇編碼方式以達(dá)到最佳性能,提供針對(duì) FSM 的快速的調(diào)試 和觀察工具,自動(dòng)進(jìn)行流水處理,以提高電路性能; ◇ 在不改變?cè)a的情況下,提供內(nèi)部線網(wǎng)到外部測(cè)試管腳的能力,在源 代碼、RTL 視圖和 Log 文件之間的交互標(biāo)識(shí)能力; ◇ 集成化、圖形化的分析和調(diào)試關(guān)鍵路徑的環(huán)境; ◇ 支持黑盒子的時(shí)序以及管腳信息,支持同時(shí)實(shí)現(xiàn)多個(gè)應(yīng)用,通過(guò)設(shè)計(jì)劃 分支持 Xilinx 模塊化設(shè)計(jì); ◇ 自動(dòng)對(duì)組合邏輯進(jìn)行寄存器平衡以提高性能,支持智能化的增量綜合。11.Synplicity Amplify V3.6.1(電子物理優(yōu)化器): 是第一款為 FPGA 設(shè)計(jì)的物理綜合產(chǎn)品。Amplify Physical Optimizer 產(chǎn) 品補(bǔ)充了流行的 Synplify FPGA 綜合產(chǎn)品,可通過(guò)在綜合過(guò)程中充分利用物理設(shè) 計(jì)信息來(lái)提高性能和生產(chǎn)力。Amplify Physical Optimizer 是為那些需要從他 們的 Xilinx Virtex?系列和 Spartan-3 系列器件中獲得盡可能的最高的性能的 開發(fā)人員創(chuàng)建的。Amplify 產(chǎn)品已經(jīng)被全球 100 多家企業(yè)采用。Amplify?工具
結(jié)合了寄存器級(jí)(RTL)的圖形物理約束以及創(chuàng)新的可同時(shí)完成布局和邏輯優(yōu)化 的物理綜合算法。其輸出不僅是一個(gè)邏輯設(shè)計(jì)的物理布局,而且是一個(gè)新的物理 優(yōu)化的網(wǎng)表。另外,Amplify 產(chǎn)品還包括了全部的 Optimization Physical Synthesis(TOPS)技術(shù)。TOPS 技術(shù)進(jìn)一步提升了性能,同時(shí)還通過(guò)高度準(zhǔn)確的 時(shí)序估算降低了設(shè)計(jì)反復(fù)次數(shù)。12.Mentor Graphics LeonardoSpectrum V2005a.82(HDL 邏輯綜合軟件): 以上每步操作都提供相應(yīng)的幫助,簡(jiǎn)單明了。需要注意的是,在輸入設(shè)計(jì)文 件時(shí)要正確排列文件的次序,將底層文件放在前面,頂層文件放到后面,這樣 LeonardoSpectrum 軟件才能正確地建立數(shù)據(jù)信息庫(kù)。綜合完成后,可以將輸出 網(wǎng)表文件(.EDF)作為 MAX+PLUS II 或 Quartus II 的設(shè)計(jì)輸入文件,再完成編 譯、仿真、定時(shí)分析和器件編程等步驟,完成整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程。
第五篇:C++開發(fā)工具簡(jiǎn)介
無(wú)數(shù)次聽到“我要開始學(xué)習(xí)C++!”的吶喊,無(wú)數(shù)次聽到“C++太復(fù)雜了,我真的學(xué)不會(huì)”的無(wú)奈。Stan Lippman先生曾在《C++ Primer》一書中指出“C++是最為難學(xué)的高級(jí)程序設(shè)計(jì)語(yǔ)言之一”,人們常將“之一”去掉以表達(dá)自己對(duì)C++的敬畏。誠(chéng)然,C++程序設(shè)計(jì)語(yǔ)言對(duì)于學(xué)習(xí)者的確有很多難以逾越的鴻溝,體系結(jié)構(gòu)的龐大,應(yīng)接不暇并不斷擴(kuò)充的特性……除此之外,參考資料之多與冗雜使它的學(xué)習(xí)者望而卻步,欲求深入者苦不堪言。希望這一份不完全導(dǎo)引能夠成為您C++學(xué)習(xí)之路上的引路燈。
撰寫本文的初衷并不打算帶領(lǐng)大家體驗(yàn)古老的C++歷史,如果你想了解C++的歷史與其前期發(fā)展中諸多技術(shù)的演變,你應(yīng)當(dāng)去參考Bjarne的《The Design and Evolution of C++》。當(dāng)然也不打算給大家一個(gè)無(wú)所不包的寶典(并非不想:其一是因水平有限,其二無(wú)奈C++之博大精深),所給出的僅僅是一些我們認(rèn)為對(duì)于想學(xué)習(xí)C++的廣大讀者來(lái)說(shuō)最重要并且觸手可及的開發(fā)與學(xué)習(xí)資源。
本文介紹并分析了一些編譯器,開發(fā)環(huán)境,庫(kù),少量的書籍以及參考網(wǎng)站,并且盡可能嘗試著給出一個(gè)利用這些資源的導(dǎo)引,望對(duì)如同我們一樣的初學(xué)者能夠有所裨益。
編譯器
在 C++之外的任何語(yǔ)言中,編譯器都從來(lái)沒(méi)有受到過(guò)如此之重視。因?yàn)镃++是一門相當(dāng)復(fù)雜的語(yǔ)言,所以編譯器也難于構(gòu)建。直到最近我們才開始能夠使用上完全符合C++標(biāo)準(zhǔn)的編譯器(哦,你可能會(huì)責(zé)怪那些編譯器廠商不能盡早的提供符合標(biāo)準(zhǔn)的編譯器,這只能怪他們各自維系著自身的一套別人不愿接受的標(biāo)準(zhǔn))。什么?你說(shuō)這無(wú)關(guān)緊要?哦,不,你所需要的是和標(biāo)準(zhǔn)化C++高度兼容的編譯環(huán)境。長(zhǎng)遠(yuǎn)來(lái)看,只有這樣的編譯器對(duì)C++開發(fā)人員來(lái)說(shuō)才是最有意義的工具,尤其是對(duì)于程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí)者。一至性讓代碼具備可移植性,并讓一門語(yǔ)言及其庫(kù)的應(yīng)用更為廣泛。嗯,是的,我們這里只打算介紹一些公認(rèn)的優(yōu)秀編譯器。
Borland C++
這個(gè)是Borland C++ Builder和Borland C++ Builder X這兩種開發(fā)環(huán)境的后臺(tái)編譯器。(哦,我之所以將之分為兩種開發(fā)環(huán)境你應(yīng)當(dāng)能明白為什么,正如Delphi7到Delphi8的轉(zhuǎn)變,是革命性的兩代。)Borland C++由老牌開發(fā)工具廠商Borland傾力打造。該公司的編譯器素以速度快,空間效率高著稱,Borland C++ 系列編譯器秉承了這個(gè)傳統(tǒng),屬于非常優(yōu)質(zhì)的編譯器。標(biāo)準(zhǔn)化方面早在5.5版本的編譯器中對(duì)標(biāo)準(zhǔn)化C++的兼容就達(dá)到了92.73%。目前最新版本是 Borland C++ Builder X中的6.0版本,官方稱100%符合ANSI/ISO的C++標(biāo)準(zhǔn)以及C99標(biāo)準(zhǔn)。嗯…這正是我前面所指的“完全符合C++標(biāo)準(zhǔn)的編譯器”。
Visual C++
這個(gè)正是我們熟知的Visual Studio 和 Visual Studio.net 2002, 2003以及2005 Whidbey中帶的C++編譯器。由Microsoft公司研制。在Visual Studio 6.0中,因?yàn)榫幾g器有太多地方不能與后來(lái)出現(xiàn)的C++標(biāo)準(zhǔn)相吻合而飽受批評(píng)(想想你在使用STL的時(shí)候編譯時(shí)報(bào)出的那些令人厭惡的error和 warning吧)。VC++6.0對(duì)標(biāo)準(zhǔn)化C++的兼容只有83.43%。但是隨著C++編譯器設(shè)計(jì)大師Stanley
Lippman以及諸多C++社群達(dá)人的加盟,在Visual Studio.NET 2003中,Visual C++編譯器已經(jīng)成為一個(gè)非常成熟可靠的C++編譯器了。Dr.Dobb's Journal的評(píng)測(cè)顯示Visual C++7.1對(duì)標(biāo)準(zhǔn)C++的兼容性高達(dá)98.22%,一度成為CBX之前兼容性最好的編譯器。結(jié)合強(qiáng)大的Visual Studio.NET開發(fā)環(huán)境,是一個(gè)非常不錯(cuò)的選擇。至于Whidbey時(shí)代的Visual C++,似乎微軟所最關(guān)注的是
C++/CLI……我們不想評(píng)論微軟下一代的C++編譯器對(duì)標(biāo)準(zhǔn)化兼容如何,但他確實(shí)越來(lái)越適合.NET(其實(shí)你和我的感覺(jué)可能是一樣的,微軟不應(yīng)當(dāng)把標(biāo)準(zhǔn)C++這塊肥肉丟給Borland,然而微軟可能并不這樣認(rèn)為)。
GNU C++
著名的開源C++編譯器。是類Unix操作系統(tǒng)下編寫C++程序的首選。特點(diǎn)是有非常好的移植性,你可以在非常廣泛的平臺(tái)上使用它,同時(shí)也是編寫跨平臺(tái),嵌入式程序很好的選擇。另外在符合標(biāo)準(zhǔn)這個(gè)方面一直都非常好,GCC3.3大概能夠達(dá)到96.15%。但是由于其跨平臺(tái)的特性,在代碼尺寸速度等優(yōu)化上略微差一點(diǎn)。
基于GNU C++的編譯器有很多,比如:
l Mingw:
GCC的一個(gè)Windows的移植版本(Dev-C++的后臺(tái))
l Cygwin:
GCC的另外一個(gè)Windows移植版本是Cygwin的一部分,Cygwin是Windows下的一個(gè)Unix仿真環(huán)境。嚴(yán)格的說(shuō)是模擬GNU的環(huán)境,這也就是“Gnu's Not Unix”要表達(dá)的意思,噢,扯遠(yuǎn)了,這并不是我們?cè)谶@里關(guān)心的實(shí)質(zhì)內(nèi)容。
l Djgpp:
這是GCC的DOS移植版本。
l RSXNT:
這是GCC的DOS和Windows移植版本。
Intel C++
著名CPU制造廠商Intel出品的編譯器,Special Design for Intel x86!對(duì)于Intel x86結(jié)構(gòu)的CPU經(jīng)過(guò)特別的優(yōu)化。在有些應(yīng)用情況下,特別是數(shù)值計(jì)算等高性能應(yīng)用,僅僅采用Intel的編譯器編譯就能大幅度的提高性能。
Digital Mars C++
網(wǎng)絡(luò)上提供免費(fèi)下載,Zortech/Symantec C++的繼承者,其前身在當(dāng)年慘烈的C++四國(guó)戰(zhàn)中也是主角之一。
開發(fā)環(huán)境
開發(fā)環(huán)境對(duì)于程序員的作用不言而喻。選擇自己朝夕相處的環(huán)境也不是容易的事情,特別是在IDE如此豐富的情況下。下面就是我們推薦的一些常見(jiàn)的C++開發(fā)環(huán)境,并沒(méi)有包括一些小型的,罕見(jiàn)的IDE。其中任何一款都是功能豐富,可以用作日常開發(fā)使用的。對(duì)于不同層面的開發(fā)者,請(qǐng)參見(jiàn)內(nèi)文關(guān)于適用對(duì)象的描述。
Visual Studio 6.0
這個(gè)雖然是Microsoft公司的老版本的開發(fā)環(huán)境,但是鑒于其后繼版本Visual Studio.NET的龐大身軀,以及初學(xué)者并不那么高的功能要求,所以推薦這個(gè)開發(fā)環(huán)境給C++的初學(xué)者,供其學(xué)習(xí)C++的最基本的部分,比如C的那部分子集,當(dāng)然你別指望他能夠支持最新的C99標(biāo)準(zhǔn)。在日常的開發(fā)中,仍然有很多公司使用這個(gè)經(jīng)典穩(wěn)定的環(huán)境,比如筆者就看曾親見(jiàn)有些公司將其編譯器替換為 GCC做手機(jī)開發(fā)之用。
Visual Studio.NET 2003
作為Microsoft公司官方正式發(fā)布的最新版本開發(fā)環(huán)境,其中有太多激動(dòng)人心的功能。結(jié)合其最新的C++編譯器。對(duì)于機(jī)器配置比較好的開發(fā)人員來(lái)說(shuō),使用這個(gè)開發(fā)環(huán)境將能滿足其大部分的要求。這里不打算單獨(dú)說(shuō)Visual Studio Whidbey,雖然Visual Studio.NET 2005-Whidbey社區(qū)預(yù)覽版已經(jīng)推出,但暫不是很穩(wěn)定,讀者可以親身去體驗(yàn)。
Borland C++ Builder 6
這個(gè)并不是Borland的C++開發(fā)環(huán)境的最新版本。選擇它的原因是它不是用Java寫的IDE,速度比較快。它有一個(gè)很完善的GUI窗體設(shè)計(jì)器,和 Delphi共用一個(gè)VCL。由于這些特點(diǎn),比較適合初學(xué)者上手。但是由于其GUI的中心位置,可能不利于對(duì)于C++語(yǔ)言的學(xué)習(xí)。而且其為了支持VCL這個(gè)Object Pascal寫的庫(kù)也對(duì)C++進(jìn)行了一些私有的擴(kuò)充。使得人們有一個(gè)不得不接受的事實(shí):“Borland C++ Builder 6的高手幾乎都是Delphi高手”。
Borland C++ Builder X
正如前文所述,雖然版本號(hào)上和前面那個(gè)IDE非常相象,但是其實(shí)它們是完全不同的兩個(gè)集成開發(fā)環(huán)境。C++Builder更多的是一個(gè)和Delphi同步的C++版本的開發(fā)環(huán)境,C++BuilderX則是完全從C++的角度思考得出的一個(gè)功能豐富的IDE。其最大的特點(diǎn)是跨平臺(tái),跨編譯器,多種Framework的集成,并且有一個(gè)WxWindows為基礎(chǔ)的GUI設(shè)計(jì)器。尤其是采用了純C++來(lái)重寫了整個(gè)Framework,摒棄了以前令人無(wú)奈的版本。對(duì)于C++的開發(fā)來(lái)說(shuō),從編譯器,到庫(kù),到功能集成都是非常理想的。可以預(yù)見(jiàn),Borland C++ Builder X 2.0很值得C++愛(ài)好者期待。唯一令人難堪之處是作為一個(gè)C++的開發(fā)工具,其IDE是用Java寫的,在配置不夠理想的機(jī)器上請(qǐng)慎重考慮再安裝。
Emacs + GCC
前面講的大部分是Windows環(huán)境下的集成開發(fā)環(huán)境。Linux上的開發(fā)者更傾向于使用Emacs來(lái)編輯C++的文件,用Makefile來(lái)命令GCC做編譯。雖然看上去比較松散,但是這些東西綜合起來(lái)還是一個(gè)開0發(fā)環(huán)境。如果你能夠嫻熟的使用這樣的環(huán)境寫程序,你的水平應(yīng)該足夠指導(dǎo)我們來(lái)寫這篇陋文了。
Dev C++
GCC 是一個(gè)很好的編譯器。在Windows上的C++編譯器一直和標(biāo)準(zhǔn)有著一段距離的時(shí)候,GCC就是一個(gè)讓W(xué)indows下開發(fā)者流口水的編譯器。Dev-C++就是能夠讓GCC跑在Windows下的工具,作為集成開發(fā)環(huán)境,還提供了同專業(yè)IDE相媲美的語(yǔ)法高亮,代碼提示,調(diào)試等功能。由于使用 Delphi開發(fā),占用內(nèi)存少,速度很快,比較適合輕量級(jí)的學(xué)習(xí)和使用。
Eclipse + CDT
Eclipse 可是近來(lái)大名鼎鼎的開發(fā)工具。最新一期的Jolt大獎(jiǎng)就頒給了這個(gè)杰出的神物。說(shuō)其神奇是因?yàn)椋旧硎怯肑ava寫的,但是擁有比一般Java寫的程序快得多的速度。而且因?yàn)槠浠诓寮M裝一切的原則,使得能夠有CDT這樣的插件把Eclipse變成一個(gè)C/C++的開發(fā)環(huán)境。如果你一直用 Eclipse寫Java的程序,不妨用它體驗(yàn)一下C++開發(fā)的樂(lè)趣。