1. proteus怎麼配置編譯器
打開ISIS,新建一個工程,保存。
2. quartus 選擇哪個器件進行編譯
QuartusII 是Altera公司開發的功能最強大的PLD編譯工具,全面取代MAX+PLUS
使用步驟:
一、建立工程.
1、「File」→「New Project Wizard」開始新工程的建立設置。『NEXT』
2、指定project的路徑,和project的名稱,頂層文件的名稱(一般與工程名相同)。
3、指定project中要include 的文件。
4、選擇project中要使用的一些EDA TOOLS。
5、選擇所使用的器件的家族「family」 和具體型號。
6、『finish』 完成工程的設置。
二、輸入文件. 在工程中新建設計文件:圖形文件「Block Diagram/Schematic File」,Verilog語言文 件「VerilogHDL File」
1、完成工程文件的輸入,若為頂層文件,則文件名應該保存為與工程名相同。
2、編譯設置:「Assignment」→「Compiler Settings Wizard」→「Next」
3、根據編譯窗口的提示修改錯誤。
4、編譯後會生成編譯報告「Compilation Report」會分成如下幾項:
(1) Analysis&Synthesis語法檢查,把大電路轉成較小的元件
(2) Fitter 器件資源利用情況,引腳分配情況等
(3) Assembler 連線各元件
(4) Timing Analyzer 時間分析
三、模擬. 完成工程文件的編譯、綜合、時間、分析後就可以建立波形模擬文件進行功能模擬
1、建立模擬文件
「File」→「New」→「Other Files」→「Vector Waveform File」→「OK」
2、選擇輸入輸出引腳
Edit→「Insert Node or Bus」→「Node Finder」,在「Filter」處選擇「Pins:all」,再按下「 >>」將所有選中的引腳添加到「Seleted Nodes」框,點「OK」→「OK」完成引腳添加。可通過右鍵 修改引腳的顯示方式、屬性、初始值等參數。
3、模擬時間、柵格的設置
Edit→『End Time』 設置模擬結束的時間, 『Grid Size』設置每個柵格表示的時間。模擬時間是 以建立模擬文件時給出的結束時間為准,模擬設置「Wizards」中設定的End Time沒用。
4、模擬編譯設置
『Assignments』→『Wizards』→『Simulator Settings Wizard』→選擇當前要模擬得文件
模擬文件做好後還要將其設置為當前模擬文件,才可以開始模擬。因為有時一個工程需要建立多個 模擬文件,這就需要通過設置確定仿哪個文件了。在選擇模擬類型「Type of simulation」時,「 timing」代表考慮延時,「functional」表示功能型的模擬。
5、先編譯後模擬
『Processing』→『Start Compilation&Simulation』
6、模擬結束後會生成模擬報告「Simulation Report」
模擬結果並不是出現 在所建立得模擬文件中,在模擬報告中有獨立的模擬結果。
模擬的結果總是與當前的工程文件相對應,工程文件改變後要重新模擬後才有意義。
四、將工程模塊化,利用圖形設計文件建立更大的工程
模塊工程文件(「Block Diagram/Schematic File」或「Verilog HDL File」)編譯模擬成功後就可以 將其模塊化,然後在更高層次將各個模塊級聯起來,構成更大得工程。
1、模塊化
『File』→『Creat/Updata』→『Creat Symbol Files for Current File』 然後編譯器會自動將當前工程完整得編譯一遍,然後生產圖形模塊,放在存放當前工程的文件夾里。
2、更大的工程
(1)建立工程文件
「File」→「New」→「Device Design Files」→「Block Diagram/Schematic File」→「OK」
(2)輸入元件
右鍵→『Insert』→『Symbol』→可以在庫文件中選,也可以通過「瀏覽」將已經建立圖新模塊的 工程載入進來。
(3)連線
3. PCM編譯器晶元Tp3057
1. 點到點PCM多路電話通信原理
脈沖編碼調制(PCM)技術與增量調制(ΔM)技術已經在數字通信系統中得到廣泛應用。當信道雜訊比較小時一般用PCM,否則一般用ΔM。目前速率在155MB以下的准同步數字系列(PDH)中,國際上存在A解和μ律兩種PCM編解碼標准系列,在155MB以上的同步數字系列(SDH)中,將這兩個系列統一起來,在同一個等級上兩個系列的碼速率相同。而ΔM在國際上無統一標准,但它在通信環境比較惡劣時顯示了巨大的優越性。
點到點PCM多路電話通信原理可用圖9-1表示。對於基帶通信系統,廣義信道包括傳輸媒質、收濾波器、發濾波器等。對於頻帶系統,廣義信道包括傳輸媒質、調制器、解調器、發濾波器、收濾波器等。
本實驗模塊可以傳輸兩路話音信號。採用TP3057編譯器,它包括了圖9-1中的收、發低通濾波器及PCM編解碼器。編碼器輸入信號可以是本實驗模塊內部產生的正弦信號,也可以是外部信號源的正弦信號或電話信號。本實驗模塊中不含電話機和混合電路,廣義信道是理想的,即將復接器輸出的PCM信號直接送給分接器。
2. PCM編解碼模塊原理
本模塊的原理方框圖圖9-2所示,電原理圖如圖9-3所示(見附錄),模塊內部使用+5V和-5V電壓,其中-5V電壓由-12V電源經7905變換得到。
圖9-2 PCM編解碼原理方框圖
該模塊上有以下測試點和輸入點:
• BS PCM基群時鍾信號(位同步信號)測試點
• SL0 PCM基群第0個時隙同步信號
• SLA 信號A的抽樣信號及時隙同步信號測試點
• SLB 信號B的抽樣信號及時隙同步信號測試點
• SRB 信號B解碼輸出信號測試點
• STA 輸入到編碼器A的信號測試點
• SRA 信號A解碼輸出信號測試點
• STB 輸入到編碼器B的信號測試點
• PCM PCM基群信號測試點
• PCM-A 信號A編碼結果測試點
• PCM-B 信號B編碼結果測試點
• STA-IN 外部音頻信號A輸入點
• STB-IN 外部音頻信號B輸入點
本模塊上有三個開關K5、K6和K8,K5、K6用來選擇兩個編碼器的輸入信號,開關手柄處於左邊(STA-IN、STB-IN)時選擇外部信號、處於右邊(STA-S、STB-S)時選擇模塊內部音頻正弦信號。K8用來選擇SLB信號為時隙同步信號SL1、SL2、SL5、SL7中的某一個。
圖9-2各單元與電路板上元器件之間的對應關系如下:
•晶振 U75:非門74LS04;CRY1:4096KHz晶體
•分頻器1 U78:A:U78:D:觸發器74LS74;U79:計數器74LS193
•分頻器2 U80:計數器74LS193;U78:B:U78:D:觸發器74LS74
•抽樣信號產生器 U81:單穩74LS123;U76:移位寄存器74LS164
•PCM編解碼器A U82:PCM編解碼集成電路TP3057(CD22357)
•PCM編解碼器B U83:PCM編解碼集成電路TP3057(CD22357)
•幀同步信號產生器 U77:8位數據產生器74HC151;U86:A:與門7408
•正弦信號源A U87:運放UA741
•正弦信號源B U88:運放UA741
•復接器 U85:或門74LS32
晶振、分頻器1、分頻器2及抽樣信號(時隙同步信號)產生器構成一個定時器,為兩個PCM編解碼器提供2.048MHz的時鍾信號和8KHz的時隙同步信號。在實際通信系統中,解碼器的時鍾信號(即位同步信號)及時隙同步信號(即幀同步信號)應從接收到的數據流中提取,方法如實驗五及實驗六所述。此處將同步器產生的時鍾信號及時隙同步信號直接送給解碼器。
由於時鍾頻率為2.048MHz,抽樣信號頻率為8KHz,故PCM-A及PCM-B的碼速率都是2.048MB,一幀中有32個時隙,其中1個時隙為PCM編碼數據,另外31個時隙都是空時隙。
PCM信號碼速率也是2.048MB,一幀中的32個時隙中有29個是空時隙,第0時隙為幀同步碼(×1110010)時隙,第2時隙為信號A的時隙,第1(或第5、或第7 —由開關K8控制)時隙為信號B的時隙。
本實驗產生的PCM信號類似於PCM基群信號,但第16個時隙沒有信令信號,第0時隙中的信號與PCM基群的第0時隙的信號也不完全相同。
由於兩個PCM編解碼器用同一個時鍾信號,因而可以對它們進行同步復接(即不需要進行碼速調整)。又由於兩個編碼器輸出數據處於不同時隙,故可對PCM-A和PCM-B進行線或。本模塊中用或門74LS32對PCM-A、PCM-B及幀同步信號進行復接。在解碼之前,不需要對PCM進行分接處理,解碼器的時隙同步信號實際上起到了對信號分路的作用。
3. TP3057簡介
本模塊的核心器件是A律PCM編解碼集成電路TP3057,它是CMOS工藝製造的專用大規模集成電路,片內帶有輸出輸入話路濾波器,其引腳及內部框圖如圖9-4、圖9-5所示。引腳功能如下:
圖9-4 TP3057引腳圖
(1) V一 接-5V電源。
(2) GND 接地。
(3) VFRO 接收部分濾波器模擬信號輸出端。
(4) V+ 接+5V電源。
(5) FSR 接收部分幀同信號輸入端,此信號為8KHz脈沖序列。
(6) DR 接收部分PCM碼流輸入端。
(7) BCLKR/CLKSEL 接收部分位時鍾(同步)信號輸入端,此信號將PCM碼流在FSR上升沿後逐位移入DR端。位時鍾可以為64KHz到2.048MHz的任意頻率,或者輸入邏輯「1」或「0」電平器以選擇1.536MHz、1.544MHz或2.048MHz用作同步模式的主時鍾,此時發時鍾信號BCLKX同時作為發時鍾和收時鍾。
(8) MCLKR/PDN 接收部分主時鍾信號輸入端,此信號頻率必須為1.536MHz、1.544MHz或2.048MHz。可以和MCLKX非同步,但是同步工作時可達到最佳狀態。當此端接低電平時,所有的內部定時信號都選擇MCLKX信號,當此端接高電平時,器件處於省電狀態。
(9) MCLKX 發送部分主時鍾信號輸入端,此信號頻率必須為1.536MHz、1.544MHz或2.048MHz。可以和MCLKR非同步,但是同步工作時可達到最佳狀態。
(10) BCLKX 發送部分位時鍾輸入端,此信號將PCM碼流在FSX信號上升沿後逐位移出DX端,頻率可以為64KHz到2.04MHz的任意頻率,但必須與MCLKX同步。
圖9-5 TP3057內部方框圖
(11) DX 發送部分PCM碼流三態門輸出端。
(12) FSX 發送部分幀同步信號輸入端,此信號為8KHz脈沖序列。
(13) TSX 漏極開路輸出端,在編碼時隙輸出低電平。
(14) GSX 發送部分增益調整信號輸入端。
(15) VFXi- 發送部分放大器反向輸入端。
(16) VFXi+ 發送部分放大器正向輸入端。
TP3057由發送和接收兩部分組成,其功能簡述如下。
發送部分:
包括可調增益放大器、抗混淆濾波器、低通濾波器、高通濾波器、壓縮A/D轉換器。抗混淆濾波器對采樣頻率提供30dB以上的衰減從而避免了任何片外濾波器的加入。低通濾波器是5階的、時鍾頻率為128MHz。高通濾波器是3階的、時鍾頻率為32KHz。高通濾波器的輸出信號送給階梯波產生器(采樣頻率為8KHz)。階梯波產生器、逐次逼近寄存器(S•A•R)、比較器以及符號比特提取單元等4個部分共同組成一個壓縮式A/D轉換器。S•A•R輸出的並行碼經並/串轉換後成PCM信號。參考信號源提供各種精確的基準電壓,允許編碼輸入電壓最大幅度為5VP-P。
發幀同步信號FSX為采樣信號。每個采樣脈沖都使編碼器進行兩項工作:在8比特位同步信號BCLKX的作用下,將采樣值進行8位編碼並存入逐次逼近寄存器;將前一采樣值的編碼結果通過輸出端DX輸出。在8比特位同步信號以後,DX端處於高阻狀態。
接收部分:
包括擴張D/A轉換器和低通濾波器。低通濾波器符合AT&T D3/D4標准和CCITT建議。D/A轉換器由串/並變換、D/A寄存器組成、D/A階梯波形成等部分構成。在收幀同步脈沖FSR上升沿及其之後的8個位同步脈沖BCLKR作用下,8比特PCM數據進入接收數據寄存器(即D/A寄存器),D/A階梯波單元對8比特PCM數據進行D/A變換並保持變換後的信號形成階梯波信號。此信號被送到時鍾頻率為128KHz的開關電容低通濾波器,此低通濾波器對階梯波進行平滑濾波並對孔徑失真(sinx)/x進行補嘗。
在通信工程中,主要用動態范圍和頻率特性來說明PCM編解碼器的性能。
動態范圍的定義是解碼器輸出信噪比大於25dB時允許編碼器輸入信號幅度的變化范圍。PCM編解碼器的動態范圍應大於圖9-6所示的CCITT建議框架(樣板值)。
當編碼器輸入信號幅度超過其動態范圍時,出現過載雜訊,故編碼輸入信號幅度過大時量化信噪比急劇下降。TP3057編解碼系統不過載輸入信號的最大幅度為5VP-P。
由於採用對數壓擴技術,PCM編解碼系統可以改善小信號的量化信噪比,TP3057採用A律13折線對信號進行壓擴。當信號處於某一段落時,量化雜訊不變(因在此段落內對信號進行均勻量化),因此在同一段落內量化信噪比隨信號幅度減小而下降。13折線壓擴特性曲線將正負信號各分為8段,第1段信號最小,第8段信號最大。當信號處於第一、二段時,量化雜訊不隨信號幅度變化,因此當信號太小時,量化信噪比會小於25dB,這就是動態范圍的下限。TP3057編解碼系統動態范圍內的輸入信號最小幅度約為0.025Vp-p。
常用1KHz的正弦信號作為輸入信號來測量PCM編解碼器的動態范圍。
圖9-6 PCM編解碼系統動態范圍樣板值
語音信號的抽樣信號頻率為8KHz,為了不發生頻譜混疊,常將語音信號經截止頻率為3.4KHz的低通濾波器處理後再進行A/D處理。語音信號的最低頻率一般為300Hz。TP3057編碼器的低通濾波器和高通濾波器決定了編解碼系統的頻率特性,當輸入信號頻率超過這兩個濾波器的頻率范圍時,解碼輸出信號幅度迅速下降。這就是PCM編解碼系統頻率特性的含義。
四、實驗步驟
1. 熟悉PCM編解碼單元工作原理,開關K9接通8KHz(置為1000狀態),開關K8置為SL1(或SL5、SL7),開關K5、K6分別置於STA-S、STB-S端,接通實驗箱電源。
2. 用示波器觀察STA、STB,調節電位器R19(對應STA)、R20(對應STB),使正弦信號STA、STB波形不失真(峰峰值小於5V)。
3. 用示波器觀察PCM編碼輸出信號。
示波器CH1接SL0,(調整示波器掃描周期以顯示至少兩個SL0脈沖,從而可以觀察完整的一幀信號)CH2分別接SLA、PCM-A、SLB、PCM-B以及PCM,觀察編碼後的數據所處時隙位置與時隙同步信號的關系以及PCM信號的幀結構(注意:本實驗的幀結構中有29個時隙是空時隙,SL0、SLA及SLB的脈沖寬度等於一個時隙寬度)。
開關K8分別接通SL1、SL2、SL5、SL7,觀察PCM基群幀結構的變化情況。
4. 用示波器觀察PCM解碼輸出信號
示波器的CH1接STA,CH2接SRA,觀察這兩個信號波形是否相同(有相位差)。
5. 用示波器定性觀察PCM編解碼器的動態范圍。
開關K5置於STA-IN端,將低失真低頻信號發生器輸出的1KHz正弦信號從STA-IN輸入到TP3057(U82)編碼器。示波器的CH1接STA(編碼輸入),CH2接SRA(解碼輸出)。將信號幅度分別調至大於5VP-P、等於5VP-P,觀察過載和滿載時的解碼輸出波形。再將信號幅度分別衰減10dB、20dB、30dB、40dB、45dB、50dB,觀察解碼輸出波形(當衰減45dB以上時,解碼輸出信號波形上疊加有較明顯的雜訊)。
也可以用本模塊上的正弦信號源來觀察PCM編解碼系統的過載雜訊(只要將STA-S或STB-S信號幅度調至5VP-P以上即可),但必須用專門的信號源才能較方便地觀察到動態范圍。
4. C++之IDE和編譯器的區別
C++的IDE與編譯器的區別:
IDE(Integrated Development Environment)指整合開發環境,也就是用於編輯程式碼、開發程式的應用程式,一般包含程式碼編輯器與編譯器等。C++的IDE有Visual C++6.0、GUIDE等;
編譯器(Compiler),則是用於將高階程式語言程式碼翻譯成目的碼(如機器語言)的程式。C++的編譯器是g++。
上面說了,IDE一般包含編譯器,也就是說編譯器一般屬於IDE的一部分。在IDE中可編輯、編譯程式碼,而編譯器只能編譯程式碼。
ide包括編譯器
你描述的IDE是自帶了編譯器的IDE。
仍有一些IDE只有開發環境,編譯器需要另外指定,比如codeblocks,這個IDE可以使用g或者vs編譯器或者別的。
還有個例子就是eclipse,本身並不帶編譯器,需要額外指定。
很明顯是Visual c++好,Visual c++功能比Turbo c 2.0強大的多. 兩個開發環境的針對性不同,Turbo c 2.0主要針對C進行開發,而Visual c++主要針對C++,但我覺得Visual c++開發C++和C都是很好的工具. Turbo c 2.0比較適合剛剛接觸C語言的人來使用,Visual c++可以說是從事商業開發的有效工具
C++的時編譯成機器程式碼,java的時位元組碼,就是虛擬指令,只能在java虛擬上執行。
c++的設計者說過,c++的設計目標是保留c語言的長處如:系統程式設計特性,執行快速快等,再新增上面向物件特性。
語言的特性決定編譯器的特點。核心的區別也就上面一句話,具體的差別那得幾本書來說明。c編譯器通常只編譯c檔案,c++編譯器可以同時編譯c和c++檔案。
包含關系。
IDE(Integrated Development Environment)指整合開發環境,可以用來編輯程式碼,包含有編譯器。一般現在最常用的就是VC++和Visual Studio了。
編譯器(Compiler),則是用於將高階程式語言程式碼翻譯成目的碼(如機器語言)的程式。C++一般是g++
1. IDE與硬體平台有關。不同IDE攜帶的編譯器不同。
2. 當然有關。不是半導體廠家提供的,而是編譯器開發廠商提供的,也有很多開源的編譯器。
3. 有關系。目前最常見的編譯器仍然只支援C/C++,宴殲C#的編譯器較少而且據說仍不完善。至於Java……哈哈,這種二道販子還需要勞煩編譯器?
4. 可以整合。具體的你需要查閱相應IDE的手冊,看看能夠整合晌逗沖/新增哪些編譯器。
5. 關心到架構就可以。廠商自己擴充套件的東西多半就是些對映,你看廠商的外設就行;而且很多廠商都提供了易於開發的庫(當然他們的庫也都是夠爛的,用熟了以後就可以扔掉)。
6. 是否用作業系統不影響編譯器,整體而言也不影響IDE;當然IDE中如果能夠新增針對作業系統元件的原生支援(重點是除錯方面),用起來就更方便。
優化方式理論上跟編譯器和硬體都有關聯。程式碼級別的優化,要看所使用的編譯器實現,Xcode用的是clang,VS用的是windows自己的編譯器。。。
匯編級別(指令級別)的優化,要根據硬體對應的指令集實現,指令集根據CPU型別的不同而不同。。。
g++編譯時實際上是呼叫g進行編譯;
g不能自動連結庫檔案,一般用g++來連結庫檔案,非要用g的話,一般使用g -lstdc++命令;
extern 「c」對於g和g++沒有區別;
實際使用時只需安裝g和g++中的一個就行了,如果使用g,編譯直接用g就行了,連結要加上-lstdc++引數;如果使用g++,編譯時實際還是呼叫g,連結直接使用g++即可;
關於包含庫檔案標頭檔案的說明:以gtd庫檔案為例,庫檔案一般是libgtd.so格式的檔案,如果是libgtd-***.so或者其他格式,可以通過軟連結命令轉化成libgtd.so格式,ln
-s libgtd-***.so
libgtd.so。一般庫檔案如果是放在/lib,/usr/lib,/usr/local/lib目錄下,則無需額外處理,編譯連結時-lgtd會自動找到對應檔案不會報錯,但是如果不在對應目錄,則需要加上-L
/所在目錄
-lgtd才能找到對應的庫檔案。標頭檔案一般是採用原始檔中用#include命令包含,而不是採用-include引數包含,標頭檔案如果放在/usr/include目錄下則會自動找到不會報錯,否則編譯連結時需要使用-I
/所在目錄才能正確找到。
編譯連結命令示例:
g++ test.cpp -o test.txt -L /mytest/lib -lgtd -I /mytest/include