版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、沈陽理工大學(xué)專業(yè)方向課程設(shè)計(jì)報(bào)告 成 績 評 定 表學(xué)生姓名要強(qiáng)班級學(xué)號1103040113專 業(yè)電子科學(xué)與技術(shù)課程設(shè)計(jì)題目曼徹斯特編解碼電路設(shè)計(jì)評語組長簽字:成績?nèi)掌?20 年 月 日課程設(shè)計(jì)任務(wù)書學(xué) 院信息科學(xué)與工程學(xué)院專 業(yè)電子科學(xué)與技術(shù)學(xué)生姓名要強(qiáng)班級學(xué)號 1103040113課程設(shè)計(jì)題目曼徹斯特編解碼電路設(shè)計(jì)實(shí)踐教學(xué)要求與任務(wù):工作計(jì)劃與進(jìn)度安排:第1-2天:講解題目,準(zhǔn)備參考資料,檢查、調(diào)試實(shí)驗(yàn)軟硬件,進(jìn)入設(shè)計(jì)環(huán)境,開始設(shè)計(jì)方案和驗(yàn)證方案的準(zhǔn)備;第3-5天:完成設(shè)計(jì),經(jīng)指導(dǎo)老師驗(yàn)收后進(jìn)入模塊電路設(shè)計(jì)(驗(yàn)收設(shè)計(jì)文檔);第6-9天:完成模塊電路代碼輸入,并完成代碼的仿真(驗(yàn)收代碼與仿真
2、結(jié)果);第 9-10天:約束設(shè)計(jì),綜合(驗(yàn)收約束與綜合結(jié)果);第11-12天:布局布線,完成版圖(驗(yàn)收版圖結(jié)果);第13-14天:物理驗(yàn)證、后仿真,修改設(shè)計(jì)(驗(yàn)收物理驗(yàn)證結(jié)果和時(shí)序仿真結(jié)果);第15天:整理設(shè)計(jì)資料,驗(yàn)收合格后進(jìn)行答辯。指導(dǎo)教師: 201 年 月 日專業(yè)負(fù)責(zé)人:201 年 月 日學(xué)院教學(xué)副院長:201 年 月 日摘 要 本設(shè)計(jì)實(shí)現(xiàn)串行NRZ碼輸入,manchester碼輸出;manchester碼輸入,NRZ輸出。其中包括NRZ碼字按照編碼規(guī)則編碼;解碼恢復(fù)NRZ碼;編碼時(shí)2x時(shí)鐘輸入,在內(nèi)部進(jìn)行分頻;解碼時(shí)鐘恢復(fù)選作;工作時(shí)鐘10kHz即可;自行設(shè)計(jì)設(shè)計(jì)下載后的驗(yàn)證方案;完成
3、全部流程:設(shè)計(jì)文檔、模塊設(shè)計(jì)、代碼輸入、功能仿真、約束與綜合、布局布線、下載驗(yàn)證等。本設(shè)計(jì)重點(diǎn)采用Verilog HDL描述、ModelSim進(jìn)行功能仿真、QuartusII進(jìn)行邏輯綜合和適配下載,最后在Altera公司的Cyclone的芯片EP20Q240C8上實(shí)現(xiàn)并完成測試。在此設(shè)計(jì)過程中,完整地建立了測試平臺,通過8段數(shù)碼管的顯示與輸出波形的驗(yàn)證,完成了功能和時(shí)序仿真,成功實(shí)現(xiàn)了串行NRZ碼輸入,曼徹斯特碼輸出;曼徹斯特碼輸入,NRZ輸出。在完成本次設(shè)計(jì)的同時(shí)考慮到其實(shí)用性方面,曼徹斯特碼是一種數(shù)據(jù)通訊線性碼,它的每一個(gè)數(shù)據(jù)比特都是由至少一次電壓轉(zhuǎn)換的形式所表示的。曼徹斯特編碼因此被認(rèn)為
4、是一種自定時(shí)碼。自定時(shí)意味著數(shù)據(jù)流的精確同步是可行的。每一個(gè)比特都準(zhǔn)確的在一個(gè)預(yù)先定義時(shí)間時(shí)期的時(shí)間中被傳送。曼徹斯特編碼已經(jīng)被許多高效率且被廣泛使用的電信標(biāo)準(zhǔn)所采用,例如以太網(wǎng)電訊標(biāo)準(zhǔn). 曼徹斯特編碼是一種超越傳統(tǒng)數(shù)字傳輸?shù)男诺谰幋a技術(shù),由于其具有隱含時(shí)鐘、去除了零頻率信號的特性使得它在數(shù)據(jù)傳輸?shù)阮I(lǐng)域中得到廣泛的應(yīng)用。關(guān)鍵詞 曼徹斯特編解碼;Verilog HDL;FPGA;仿真;綜合 沈陽理工大學(xué)專業(yè)方向課程設(shè)計(jì)報(bào)告目 錄摘 要III引 言11 總體電路結(jié)構(gòu)設(shè)計(jì)21.1 曼徹斯特編解碼電路原理21.2 主要算法31.3 功能電路設(shè)計(jì)41.4 頂層TOP的設(shè)計(jì)52 功能仿真72.1 仿真的功
5、能列表72.2 頂層仿真平臺與激勵(lì)72.3 電路功能仿真結(jié)果83 約束及邏輯綜合83.1 約束策略83.2 腳本83.3 綜合文件113.4 綜合環(huán)境113.5 綜合過程124 布局布線144.1 文件準(zhǔn)備144.2 布局布線過程144.3 物理驗(yàn)證165 后仿真186 總結(jié)19參考文獻(xiàn)20附錄A:頂層設(shè)計(jì)源代碼21附錄B:電路源代碼22附錄C:設(shè)計(jì)約束代碼32附錄D:IOPAD代碼33引 言曼徹斯特編碼是一種自同步的編碼方式,也就是說其時(shí)鐘同步信號就隱藏在數(shù)據(jù)波形中。在曼徹斯特編碼中,每一位的中間有一跳變,位中間的跳變既作為時(shí)鐘信號,又作為數(shù)據(jù)信號:從高電平到低電平的跳變表示“0”,從低電平
6、到高電平的跳變表示“1”。還有一種是差分曼徹斯特編碼,每位中間的跳變僅僅提供時(shí)鐘定時(shí),而用每位開始時(shí)有跳變?yōu)椤?”,無跳變?yōu)椤?”。由于曼徹斯特碼既能提供足夠的定時(shí)分量,又無直流漂移,編碼過程相對簡單,因而曼徹斯特碼被廣泛應(yīng)用于數(shù)據(jù)傳輸、局域網(wǎng)以及測井技術(shù)等領(lǐng)域。本設(shè)計(jì)主要研究的內(nèi)容是曼徹斯特編解碼器的設(shè)計(jì)和實(shí)現(xiàn)。為了能夠順利地完成編解碼任務(wù),它應(yīng)該包括這樣2個(gè)部分:編碼電路,解碼電路(即串行NRZ碼輸入,manchester碼輸出;manchester碼輸入,NRZ輸出。),為了驗(yàn)證電路系統(tǒng)能否順利完成曼徹斯特碼的編解碼功能,可以采用Altera公司的集成開發(fā)工具QuartusII11.0實(shí)
7、現(xiàn)設(shè)計(jì)?;玖鞒倘缦拢菏紫?,根據(jù)任務(wù)書要求,進(jìn)行方案的設(shè)計(jì),包括引腳確定、時(shí)序關(guān)系、功能框圖、模塊劃分、數(shù)據(jù)處理流程與方法等;然后依據(jù)模塊設(shè)計(jì)進(jìn)行模塊的HDL代碼的輸入與功能仿真,功能仿真采用HDL仿真工具M(jìn)odelsim測試平臺;完成功能仿真后,在QuartusII平臺下進(jìn)行電路的約束與綜合;綜合結(jié)果無誤后,進(jìn)行布局布線,生成配置文件;在下載前進(jìn)行時(shí)序分析,最后進(jìn)行下載,測試與調(diào)試,完成本設(shè)計(jì)方案。本實(shí)驗(yàn)輸入輸出設(shè)備簡單,可以在實(shí)驗(yàn)板上完成功能驗(yàn)證,采用開關(guān)和數(shù)碼管作為輸入輸出設(shè)備完成驗(yàn)證。1 總體電路結(jié)構(gòu)設(shè)計(jì)1.1 曼徹斯特編碼電路原理曼徹斯特編解碼電路包括兩個(gè)部分,即編碼電路部分,解碼電
8、路部分。其中,編碼部分用按照編碼規(guī)則編碼的NRZ字碼作為普通的信號輸入,將輸入的信號編碼為曼徹斯特碼,然后輸出;解碼部分負(fù)責(zé)將曼徹斯特碼解碼成普通的二進(jìn)制數(shù)據(jù)編碼。二個(gè)相對獨(dú)立的模塊相互協(xié)同工作,共同完成曼徹斯特編解碼的工作,同時(shí)相互獨(dú)立的模塊結(jié)構(gòu)更有利于查找電路中存在的問題,便于維護(hù)。以下曼徹斯特編碼電路設(shè)計(jì)。(一)曼徹斯特編碼電路設(shè)計(jì):曼徹斯特碼在一個(gè)碼元的開始時(shí)刻要對普通信號進(jìn)行一次采樣,并且有可能會發(fā)生一次跳變,在碼元的中間位置一定發(fā)生跳變,因此編碼信號的頻率是數(shù)據(jù)時(shí)鐘頻率的兩倍。曼徹斯特碼是用“01”和“10”來表示普通二進(jìn)制數(shù)據(jù)中的“1”和“0”的,因此現(xiàn)在只需要將二分頻的時(shí)鐘與輸
9、入的nrz碼同或,然后再將串行數(shù)據(jù)輸出,這樣,輸出的串行數(shù)據(jù)就是曼徹斯特碼。(二)曼徹斯特解碼電路設(shè)計(jì):曼徹斯特解碼電路設(shè)計(jì)的關(guān)鍵是準(zhǔn)確地從曼徹斯特碼的數(shù)據(jù)流中提取出“10”和“01”信號,并且把它們轉(zhuǎn)換成普通二進(jìn)制編碼中的“0”和“1”。為了更準(zhǔn)確得解碼曼徹斯特碼,我們需要一個(gè)頻率不小于奈奎斯特頻率的采樣時(shí)鐘,即采樣時(shí)鐘的頻率至少是曼徹斯特碼頻率的兩倍。在實(shí)際設(shè)計(jì)電路時(shí),我們可以采用一個(gè)緩存器,儲存上一個(gè)時(shí)鐘采集到的信號和當(dāng)前時(shí)鐘采集到的信號,用反相器達(dá)到效果,當(dāng)緩存器的內(nèi)容是“10”時(shí),輸出“1”;當(dāng)緩存器的內(nèi)容是“01”時(shí),輸出“0”。 圖1.1 數(shù)字信號與曼徹斯特編碼波形1.2 主要算
10、法數(shù)據(jù)產(chǎn)生曼徹斯特編碼曼徹斯特解碼源碼輸出曼徹斯特碼輸出時(shí)鐘1時(shí)鐘2時(shí)鐘3分頻器電路基準(zhǔn)時(shí)鐘本電路設(shè)計(jì)的主要難點(diǎn)在于時(shí)序,也就是在編解曼徹斯特的時(shí)間的分頻。編曼徹斯特碼時(shí),在一個(gè)碼元的開始時(shí)刻要對普通信號進(jìn)行一次采樣,并且有可能會發(fā)生一次跳變,在碼元的中間位置一定發(fā)生跳變,因此編碼信號的頻率是數(shù)據(jù)時(shí)鐘頻率的兩倍;解碼曼徹斯特碼時(shí),我們需要一個(gè)頻率不小于奈奎斯特頻率的采樣時(shí)鐘,即采樣時(shí)鐘的頻率至少是曼徹斯特碼頻率的兩倍,且曼徹斯特碼的頻率是普通二進(jìn)制編碼信號頻率的兩倍。以下曼徹斯特編解碼電路的系統(tǒng)框圖。 圖1.2曼徹斯特編解碼電路系統(tǒng)框圖1.3 功能電路設(shè)計(jì)功能電路電路的文件名為rili.v,根
11、據(jù)信號功能將接口分為5部分,分別是時(shí)鐘信號、復(fù)位信號、開關(guān)控制信號、輸入信號、輸出信號。具體接口如下表1.1所示。表1.2 接口信號表名稱IO屬性描述備注clkin輸入時(shí)鐘,1KHZ頻率上升沿有效puls1in秒或日的調(diào)時(shí)信號高電平有效puls2in分和月的調(diào)時(shí)信號高電平有效puls3in時(shí)和年的調(diào)時(shí)信號高電平有效rstnin系統(tǒng)異步復(fù)位信號低電平有效chosein開關(guān),高電平時(shí)輸出時(shí)分秒,低電平時(shí)輸出年月日顯示選擇doutout輸出信號數(shù)碼管顯示電路的功能框圖如下所示。圖1.1 電路功能框圖1.4 頂層TOP的設(shè)計(jì)因?yàn)楸驹O(shè)計(jì)是要一起綜合功能電路和PAD,所以需要頂層的文件,該文件為dcLab
12、Top.v,此部分內(nèi)部包含了功能電路和PAD。具體接口如下表1.2所示。表1.3 TOP的接口信號表名稱IO屬性 描述備注CLKin 外部輸入到TOP的時(shí)鐘,頻率100KHz上升沿有效RSTin 外部輸入到TOP的復(fù)位信號 低電平有效PULS1in外部輸入到TOP的要處理的信號PULS2in外部輸入到TOP的要處理的信號PULS3in外部輸入到TOP的要處理的信號CHOSEin外部輸入到TOP的要處理的信號DOUTout要輸出的已處理信號 電路的功能框圖如下所示。圖1.2 TOP的功能框圖根據(jù)選用的工藝庫,這里輸入clk、rstn、puls1、puls2、puls3、chose所選擇的PAD為
13、PDIDGZ,輸出dout選擇的PAD為PDO04CDG。2 功能仿真2.1 仿真的功能列表功能仿真要針對每一條設(shè)計(jì)需要實(shí)現(xiàn)的功能進(jìn)行。設(shè)計(jì)中要求實(shí)現(xiàn)的、需要仿真功能列表如下:1) 復(fù)位功能當(dāng)復(fù)位信號低有效時(shí),電路應(yīng)處于復(fù)位狀態(tài):運(yùn)行控制信號處于無效(低電平)、任何輸入沒有響應(yīng)、數(shù)碼管顯示0;當(dāng)復(fù)位信號變?yōu)楦唠娖綍r(shí),電路正常工作。2) 時(shí)鐘信號當(dāng)有時(shí)鐘時(shí)電路正常工作;沒有時(shí)鐘信號時(shí),除復(fù)位外所有的輸入沒有響應(yīng),所有的輸出沒有變化。3) 時(shí)間調(diào)整模塊,當(dāng)分別按下puls1,puls2,puls3三個(gè)開關(guān)對時(shí)分秒或年月日進(jìn)行遞增處理。4) 數(shù)碼顯示8只數(shù)碼管顯示的是數(shù)字09,個(gè)位計(jì)到9向十位進(jìn)1,
14、同時(shí)再從0開始計(jì)數(shù)。5) 顯示控制開關(guān)chose,當(dāng)chose未按下時(shí)顯示的是時(shí)分秒,當(dāng)chose按下時(shí)顯示的是年月日。2.2 頂層仿真平臺與激勵(lì)仿真激勵(lì)的構(gòu)造要盡可能多的構(gòu)造出所有可能,并能驗(yàn)證電路功能。這里構(gòu)造一個(gè)測試平臺,相應(yīng)文件為dcLabTop_tb.v,其中將位于文件dcLabTop_stim.v中的激勵(lì)信號引入,加載到例化的功能模塊中,測試平臺設(shè)定時(shí)間單位為1us,并引用電路模塊。構(gòu)建激勵(lì)文件,一是要構(gòu)造時(shí)鐘clk和異步復(fù)位信號rstn,復(fù)位信號只要開始為零,之后讓電路正常工作即可;二是輸入信號puls1,puls2,puls3,這里依次給出的信號各自在一段時(shí)間內(nèi)有效。三是輸入信
15、號chose,這里給出的是開始為0,10000000us后為1。根據(jù)日歷電路的原理,通過觀察仿真結(jié)果,當(dāng)仿真結(jié)果與計(jì)算結(jié)果一致時(shí),說明電路設(shè)計(jì)的功能沒有問題。2.3 電路功能仿真結(jié)果這里仿真結(jié)果,如下圖。3 約束及邏輯綜合3.1 約束策略對于一個(gè)由時(shí)鐘控制的數(shù)字邏輯電路來說,時(shí)序是最為重要的。dcLabTop.v是本設(shè)計(jì)所要約束的文件。本設(shè)計(jì)定的時(shí)鐘CLK的頻率為100KHz,即周期為10000ns。輸入為puls1、puls2、puls3、chose,輸出為dout,他們都是由CLK信號同步控制,所以這些信號延時(shí)約占時(shí)鐘信號的60%,即輸入輸出延時(shí)設(shè)置為6000ns。本設(shè)計(jì)沒有輸入輸出信號都
16、是clk信號同步控制,故并不存在純組合邏輯電路。3.2 腳本 首先是讀入源代碼,也就是HDL文本描述的設(shè)計(jì)文件,此處不用制定目錄,Design Compiler會在搜索目錄中搜索。tcl語句如下: read_verilog dcLabTop.v rili.v 讀入設(shè)計(jì)原文件后,一般設(shè)定當(dāng)前設(shè)計(jì),這樣約束條件才可能有針對性的施加。tcl語句如下: current_design dcLabTop 設(shè)定當(dāng)前設(shè)計(jì)后,要完成鏈接,也就是將設(shè)計(jì)與庫鏈接起來,用于映射過程中搜索相應(yīng)的單元,完成綜合。tcl語句如下: Link 檢查設(shè)計(jì),主要完成檢查轉(zhuǎn)換的設(shè)計(jì)。tcl語句如下: check_design然后對
17、設(shè)計(jì)設(shè)定時(shí)序約束,這是最重要的一項(xiàng)約束,用于設(shè)定設(shè)計(jì)的工作速度。針對不同的設(shè)計(jì)部分,有不同的約束方法。針對本次設(shè)計(jì),采用全同步,雙時(shí)鐘工作的實(shí)際情況。以下語句設(shè)定時(shí)鐘及屬性、輸入輸出信號時(shí)間余量。 設(shè)定名稱為CLK的時(shí)鐘,由于采用100KHz的時(shí)鐘,故設(shè)定時(shí)鐘周期為10000ns。tcl語句如下: create_clock -name "clk" -period 10000 get_ports CLK 設(shè)定時(shí)鐘的渡越時(shí)間為0.2ns。tcl語句如下: set_clock_transition -max 0.2 get_clocks clk 設(shè)定輸入信號最大時(shí)間延時(shí)。tcl語
18、句如下:set_input_delay -max 6000 -clock clk get_ports PULS1 set_input_delay -max 6000 -clock clk get_ports PULS 2set_input_delay -max 6000 -clock clk get_ports PULS 3 set_input_delay -max 6000 -clock clk get_ports CHOSE 設(shè)定輸出信號最大時(shí)間延時(shí)。tcl語句如下:set_output_delay -max 6000 -clock clk get_ports SEG_REGset_out
19、put_delay -max 6000 -clock clk get_ports LED_SEL 告訴綜合器不要對時(shí)鐘網(wǎng)絡(luò)進(jìn)行驅(qū)動,這個(gè)工作將在后續(xù)版圖布局布線中進(jìn)行。tcl語句如下: set_dont_touch_network get_clocks "clk"set_ideal_network get_ports "CLK"告訴綜合器不要對復(fù)位進(jìn)行驅(qū)動。tcl語句如下:set_dont_touch_network get_ports RSTNset_ideal_network get_ports RSTN檢查時(shí)序。tcl語句如下:check_timi
20、ng設(shè)定綜合的操作條件。tcl語句如下:set_operating_conditions -max slow -max_library slow -min fast -min_library fast設(shè)定線負(fù)載模型,本設(shè)計(jì)選擇tsmc18_wl50模型。tcl語句如下:set_wire_load_model -name tsmc18_wl50 -library slow設(shè)定輸出負(fù)載電容。tcl語句如下:set_load -pin_load 2 get_ports SEG_REGset_load -pin_load 2 get_ports LED_SEL設(shè)定扇出最大負(fù)載能力。tcl語句如下: s
21、et_max_fanout 6900 dcLabTop 驅(qū)動能力設(shè)定。tcl語句如下: set_drive 2.0 get_ports "CLK RST PULS1 PULS2 PULS3 CHOSE" 設(shè)定輸出網(wǎng)表的格式規(guī)則,以消除gate level nelist中的assign。tcl語句如下: set verilogout_no_tri trueset_fix_multiple_port_nets -all -buffer_constants 最大能力進(jìn)行綜合。tcl語句如下: compile -map high 輸出時(shí)序報(bào)告。tcl語句如下: rc > ./
22、output/tim.log 輸出網(wǎng)表。tcl語句如下:write -f verilog -hier -o ./netlst/ dcLabTop.sv輸出綜合數(shù)據(jù)文件。tcl語句如下:write -f ddc -hier -o ./output/ dcLabTop.ddc輸出延時(shí)文件。tcl語句如下:write_sdf -version 2.1 ./output/ dcLabTop.sdf輸出面積文件。tcl語句如下:report_area > ./output/ dcLabTop.area.log3.3 綜合文件首先在家目錄下建立dcLab作為本次實(shí)驗(yàn)dc的操作主目錄。在dcLab目錄
23、下,建立設(shè)計(jì)存放目錄如code、約束文件目錄如constrn、輸出網(wǎng)表文件目錄ntlst、報(bào)告輸出目錄rpt、log文件目錄log、dc啟動目錄work,等等。在綜合前需要準(zhǔn)備以下幾個(gè)文件,以便使軟件可以正常工作。.synopsys_dc.setup文件即啟動項(xiàng)文件:在這個(gè)文件中,需要將所用到的庫單元文件的路徑和電路設(shè)計(jì)文件所存放的路徑寫入,以便軟件在工作時(shí)能夠找到這些文件并正確識別,本設(shè)計(jì)將它存放在work目錄下。rili.v dcLabTop.v文件:因?yàn)楸敬握n程設(shè)計(jì)所使用電路描述語言為verilog HDL語言,所以至少需要將頂層TOP設(shè)計(jì)文件、功能電路的設(shè)計(jì)文件,即準(zhǔn)備好一個(gè)正確可用的
24、設(shè)計(jì),以便用于約束綜合,本設(shè)計(jì)將rili.v dcLabTop.v文件存放在code目錄下。Tcl語句文件:在本次課程設(shè)計(jì)中使用的是命令界面,使用Tcl語言進(jìn)行操作,所以需要準(zhǔn)備好相應(yīng)的Tcl命令,以便對設(shè)計(jì)進(jìn)行約束綜合等相應(yīng)操作,本設(shè)計(jì)將它存放在constrn目錄下。庫文件:本設(shè)計(jì)采用的是tsmc公司的0.18um標(biāo)準(zhǔn)單元庫的所有文件,存放在目錄:/opt/eda/designKit/下面。3.4 綜合環(huán)境/opt/eda/designKit/cic_tsmc18/synDC/sow.db/opt/eda/designKit/cic_tsmc18/synDC/fast.db/opt/eda/
25、designKit/cic_tsmc18/synDC/ tpz973gwc.db/opt/eda/designKit/cic_tsmc18/synDC/ tpz973gbc.db/opt/eda/synopsys/dc2007/libraries/syn/dw_foundation.sldb/opt/eda/designKit/cic_tsmc18/synDC/typical.db/opt/eda/synopsys/dc2007/libraries/syn/gtech.db/opt/eda/synopsys/dc2007/libraries/syn/ standard.sldb3.5 綜合過程
26、3.5.1 綜合流程按照所定義的電路的測量特征所要達(dá)到的目標(biāo),Design Compiler綜合一個(gè)電路并將其放入目標(biāo)庫中,這樣可以生成適用于你的計(jì)算機(jī)輔助設(shè)計(jì)工程(CAE)工具的原理圖或網(wǎng)表。綜合的過程如下: 讀入設(shè)計(jì)及其子設(shè)計(jì) 設(shè)置頂層的設(shè)計(jì)特性參數(shù) 設(shè)置實(shí)際時(shí)序和面積目標(biāo)參數(shù) 執(zhí)行check_design驗(yàn)證設(shè)計(jì),識別并且更正錯(cuò)誤 進(jìn)行Design Compiler優(yōu)化綜合流程如下:設(shè)置啟動項(xiàng)文件讀入源代碼鏈接,設(shè)計(jì)檢查時(shí)序路徑約束編譯綜合結(jié)束3.5.2 綜合操作過程首先打開Linux中命令終端。進(jìn)入以準(zhǔn)備好的.synopsys_dc.setup文件所在路徑。執(zhí)行命令,打開Design
27、Compiler。進(jìn)入Tcl命令界面,命令如下:cd dcLab /workdc_shell-t運(yùn)行后,讀入文件將在終端得到如下圖圖4.1界面,即已經(jīng)進(jìn)入DC的Tcl命令界面。圖3.1 Design Compiler的Tcl命令界面因?yàn)橐呀?jīng)將所要使用的Tcl語句準(zhǔn)備好并形成文件,所以可以使用source命令來講Tcl命令全部讀入并執(zhí)行。命令如下:source mycon.con這里我們逐一運(yùn)行命令,運(yùn)行后,將在終端得到如下界面,即已經(jīng)進(jìn)入約束綜合過程。4 布局布線4.1 文件準(zhǔn)備同所有的EDA工具一樣,Encounter在進(jìn)行設(shè)計(jì)之前也要準(zhǔn)備文件。一般必須要有時(shí)序文件lib、SI工具CeltI
28、C進(jìn)行信號完整性分析的cdb文件、用于RC提取的電容表文件capTbl、綜合工具輸出的門級綜合網(wǎng)表、定義工藝的版圖交換文件LEF(Library Exchange Format)、時(shí)序約束的sdc(Synthesis Design Constraints)文件、PAD位置約束的io文件。其中經(jīng)過Design Compiler對其進(jìn)行綜合后獲得了網(wǎng)表文件dcLabTop.sv以及約束文件dcLabTop.sdc,pad約束的io文件需要手工書寫。這里, I/O PAD已經(jīng)在綜合前添加進(jìn)入網(wǎng)表中,所以在布局布線前只需在網(wǎng)表中的頂層模塊下加入電源PAD和拐角連接PAD,就行了如下圖所示。 圖4.1
29、在網(wǎng)表中加入電源PAD和拐角連接PAD4.2 布局布線過程首先打開Linux中命令終端,進(jìn)入啟動Encounter的工作目錄,執(zhí)行命令,打開Encounter。SOC Encounter軟件正常啟動后按照以下流程操作:1) Design_import,讀入設(shè)計(jì)所需要的庫文件和設(shè)計(jì)文件;2) FloorPlan,對整個(gè)版圖進(jìn)行布局規(guī)劃;3) Global Net Connection,把標(biāo)準(zhǔn)單元,電源PAD等版圖中用到的cell 的pin 和電源的net 一一對應(yīng)起來;4) Add Power Rings,添加core的電源環(huán)和地環(huán),在數(shù)字標(biāo)準(zhǔn)單元區(qū)域的周圍放置power ring,用于提供數(shù)字
30、部分的電源和地;5) Add Stripes,用于在芯片中插入一些橫的豎的電源線,保證供電;6) Special Route (SRoute),把標(biāo)準(zhǔn)單元的電源以及給core 供電的電源pad 和core 電源環(huán)連接起來;7) Placement Blockage,在電源的Stripes 和 Routing 的blockage 的地方放置一些blockage,防止在這些地方;8) Placement,放置標(biāo)準(zhǔn)單元;9) Trail Routing,進(jìn)行初步的布線,布線完成進(jìn)行setup time的時(shí)序分析和優(yōu)化;10) Create Clock Tree,為大扇出的時(shí)鐘線布時(shí)鐘樹,完成建立時(shí)鐘
31、樹后進(jìn)行hold time時(shí)序分析和優(yōu)化;11) NanoRoute,細(xì)節(jié)優(yōu)化布線,是encounter的最強(qiáng)大工具,用于細(xì)節(jié)、優(yōu)化布線。12) SI,對信號有噪聲線進(jìn)行修補(bǔ)和優(yōu)化;完成以上操作后得到版圖如下。圖4.2 日歷電路的版圖4.3 物理驗(yàn)證這里物理驗(yàn)證主要是通過Encounter的Verify進(jìn)行幾何規(guī)則檢查(Verify Geometry)、連線的連接性(Verify Connectivity)和金屬密度檢查(Verify Metal Destiny)。幾何規(guī)則檢查的報(bào)告如下。 圖4.3 幾何規(guī)則檢查報(bào)告連線的連接性檢查報(bào)告如下。圖4.4 連線的連接性檢查報(bào)告因?yàn)閯偼瓿傻陌鎴D金屬密
32、度過低,所以要添加對電路沒有影響的金屬填充物,添加完Matel Filler后,金屬密度報(bào)告如下。圖4.5 金屬密度檢查報(bào)告5 后仿真本設(shè)計(jì)采用的后仿真工具同樣是Modelsim。從之前的布局布線中導(dǎo)出電路的網(wǎng)表(*.v)和延時(shí)文件(*.sdf),并構(gòu)建測試平臺和激勵(lì),在測試平臺中通過加入以下句子就會在仿真時(shí)引用延時(shí)文件:initial $sdf_annotate("dcLabTop.sdf", dcLabTop);后仿真結(jié)果如圖5.1。圖5.1 后仿真圖6 總結(jié)做這個(gè)課設(shè)我就想,按步驟一步一步走吧。從資料收集,到邏輯分析,再到編寫程序,時(shí)序仿真到最后的上板子實(shí)現(xiàn)。一步一步
33、自己慢慢摸索,有時(shí)候看到別人做的比我快,就比較煩躁(當(dāng)時(shí)還有考試),想問一下別人吧,同寢室的還忙這自己的,而且他們業(yè)沒詳細(xì)的看過我的程序,半桶水業(yè)不好給我建議。到最后還是我自己解決,于是我明白了有些事靠別人不靠譜。這次實(shí)驗(yàn)我做的很慢,不過還是做出來了,成就感還是有的,畢竟這是大學(xué)第一次最正式的挑戰(zhàn)??偟膩碚f,這次課設(shè)是比較難,也比較有收獲的一次。它讓我明白了做事必須持之以恒。34參考文獻(xiàn)1 Jan M.Rabaey,Anantha Chandrakasan,Borivoje Nikolic.數(shù)字集成電路.電子工業(yè)出版社,2012.122 李剛強(qiáng),田斌,易克初. FPGA設(shè)計(jì)中關(guān)鍵問題的研究J電
34、子技術(shù)應(yīng)用,2003(6)3 杜慧敏 基于Verilog的FPGA設(shè)計(jì)基礎(chǔ) 西安電子科技大學(xué)出版社, 2006,24 鄒其洪 EDA技術(shù)實(shí)驗(yàn)教程 中國電力出版社,2009,25 江國強(qiáng) 基于EDA 技術(shù)與應(yīng)用 電子工業(yè)出版社2004,2附錄A:頂層設(shè)計(jì)源代碼module dcLabTop( PULS1, PULS2, PULS3, CHOSE, CLK, SEG_REG, LED_SEL, RSTN);/input PULS1; input PULS2; input PULS3; input CHOSE; output7:0 SEG_REG;input CLK;output2:0 LED_SE
35、L;input RSTN;/wire PULS1; wire PULS2; wire PULS3; wire CHOSE; wire7:0 SEG_REG;wire CLK;wire2:0 LED_SEL;wire RSTN;/wire puls1c; wire puls2c; wire puls3c; wire chosec; wire7:0 seg_regc;wire clkc;wire2:0 led_selc; wire rstnc;/PDIDGZ puls1(.PAD(PULS1), .C (puls1c);PDIDGZ puls2(.PAD(PULS2), .C (puls2c);P
36、DIDGZ puls3(.PAD(PULS3), .C (puls3c);PDIDGZ chose(.PAD(CHOSE), .C (chosec);PDIDGZ clk(.PAD(CLK), .C (clkc);/PDO04CDG segreg_0 (.I(seg_regc0), .PAD(SEG_REG0);PDO04CDG segreg_1 (.I(seg_regc1), .PAD(SEG_REG1);PDO04CDG segreg_2 (.I(seg_regc2), .PAD(SEG_REG2);PDO04CDG segreg_3 (.I(seg_regc3), .PAD(SEG_RE
37、G3);PDO04CDG segreg_4 (.I(seg_regc4), .PAD(SEG_REG4);PDO04CDG segreg_5 (.I(seg_regc5), .PAD(SEG_REG5);PDO04CDG segreg_6 (.I(seg_regc6), .PAD(SEG_REG6);PDO04CDG segreg_7 (.I(seg_regc7), .PAD(SEG_REG7);/PDO04CDG ledsel_0 (.I(led_selc0), .PAD(LED_SEL0);PDO04CDG ledsel_1 (.I(led_selc1), .PAD(LED_SEL1);P
38、DO04CDG ledsel_2 (.I(led_selc2), .PAD(LED_SEL2);/PDIDGZ rstn(.PAD(RSTN), .C (rstnc);/dcLabCore dcLabCore ( .puls1 ( puls1c ), / I .puls2 ( puls2c ), / I .puls3 ( puls3c ), / I .chose ( chosec ), / I .seg_reg ( seg_regc ), / O .clk ( clkc ), / I .led_sel ( led_selc ), / I .rstn ( rstnc ) ); / I /endm
39、odule附錄B:電路源代碼module rili(clk,rstn,seg_reg,puls1,puls2,puls3,chose,led_sel);input clk,rstn,chose;input puls1,puls2,puls3;output2:0 led_sel;output7:0seg_reg;wire puls1,puls2,puls3;wire clk,rstn;reg7:0seg_reg;reg2:0led_sel;reg3:0disp_dat;wire chose;reg s1,s2,s3;reg3:0 qml,qfl,qsl;reg3:0 qmh,qfh,qsh;re
40、g3:0 qrl,qyl;reg3:0 qrh,qyh;reg3:0 qn1,qn2,qn3,qn4;wire15:0 qn;reg3:0 datel,dateh;wire7:0 qy;assign qn=qn4,qn3,qn2,qn1;assign qy=qyh,qyl;reg d1,d2,d3,d4,d5,d6,d7,d8,d9;/clock divisionreg a,b,c,d,e,f,h,i,g,k,l,m,n;wire reset1;assign reset1=(d3&d2)&rstn;reg dp;always(posedge puls1 or negedge r
41、eset1) if(!reset1) dp<=0; else dp<=1;always(posedge clk or negedge rstn)if(!rstn) s1,d3,d2,d1<=0;else s1,d3,d2,d1<=d3&d2,d2,d1,dp; wire reset2=(d6&d5)&rstn;reg dd;always(posedge puls2 or negedge reset2) if(!reset2) dd<=0; else dd<=1;always(posedge clk or negedge rstn)if
42、(!rstn) s2,d6,d5,d4<=0;else s2,d6,d5,d4<=d6&d5,d5,d4,dd; wire reset3=(d9&d8)&rstn;reg dh;always(posedge puls3 or negedge reset3) if(!reset3) dh<=0; else dh<=1;always(posedge clk or negedge rstn)if(!rstn) s3,d9,d8,d7<=0;else s3,d9,d8,d7<=d9&d8,d8,d7,dh; reg9:0 cnt100
43、0;always(posedge clk or negedge rstn)if(!rstn) cnt1000<=0;else if(cnt1000=999) cnt1000<=0; else cnt1000<=cnt1000+1'b1;/second counteralways (posedge clk or negedge rstn)if(!rstn) begin qml<=0; a<=0; end else if (cnt1000=999|(s1=1&chose=0) if(qml=9)begina<=1;qml<=0;end el
44、se qml<=qml+1'b1;else a<=0; always (posedge clk or negedge rstn)if(!rstn) begin qmh<=0; b<=0; endelse if(a=1) if(qmh=5) begin qmh<=0; b<=1; end else qmh<=qmh+1'b1; else b<=0; /minute counter always (posedge clk or negedge rstn) if(!rstn) begin qfl<=0; c<=0; end
45、else if (b=1|(s2=1&chose=0) if(qfl=9) begin qfl<=0; c<=1; end else qfl<=qfl+1'b1; else c<=0;/always (posedge clk or negedge rstn)if(!rstn) beginqfh<=0;d<=0;endelse if(c=1) if(qfh=5) begin qfh<=0;d<=1;end else qfh<=qfh+1'b1;else d<=0; /hour counter always (po
46、sedge clk or negedge rstn) if(!rstn) begin qsl<=0;e<=0;end else if(d=1|(s3=1&chose=0) if(qsl=3&qsh=2)|qsl=9) begin qsl<=0; e<=1; end else qsl<=qsl+1'b1;else e<=0; / always (posedge clk or negedge rstn) if(!rstn) begin qsh<=0; f<=0; end else if(e=1) if(qsh=2) begin
47、 qsh<=0; f<=1; end else qsh<=qsh+1'b1;else f<=0; /day counter always (posedge clk or negedge rstn) if(!rstn) beginqrl<=1;g<=0;endelse if (f=1|(s1=1&chose=1) if(qrl=datel&qrh=dateh)|qrl=9) begin qrl<=1; g<=1; end else qrl<=qrl+1'b1;else g<=0; / always (po
48、sedge clk or negedge rstn) if(!rstn) begin qrh<=0;h<=0;end else if(g=1) if (qrh=dateh)/(qrh=dateh&qrl=datel) begin qrh<=0; h<=1; end else qrh<=qrh+1'b1;else h<=0; /month timer counter always (posedge clk or negedge rstn)if(!rstn) begin qyl<=1; i<=0; endelse if(h=1|(s2
49、=1&chose=1) if(qyl=2&qyh=1)|qyl=9) begin qyl<= 1 ;i<=1;end else qyl<=qyl+1'b1;else i<=0;/always (posedge clk or negedge rstn)if(!rstn) begin qyh<=0; n<=0; endelse if(i=1) if(qyh=1) begin qyh<=0; n<=1; end else qyh<=qyh+1'b1;else n<=0; always(posedge clk)
50、 /if(cnt1000=999) / begin case(qy) 'h01: begin datel<=1;dateh<=3;end 'h02: begin if(qn%4=0)&( qn%100!=0)|( qn%400=0) begin datel<=9;dateh<=2;end /OK! else begin datel<=8;dateh<=2;end end 'h03: begin datel<=1;dateh<=3;end 'h04: begin datel<=0;dateh<=3
51、;end 'h05: begin datel<=1;dateh<=3;end 'h06: begin datel<=0;dateh<=3;end 'h07: begin datel<=1;dateh<=3;end 'h08: begin datel<=1;dateh<=3;end 'h09: begin datel<=0;dateh<=3;end 'h10: begin datel<=1;dateh<=3;end 'h11: begin datel<=0;dateh<=3;end 'h12: begin datel<=1;dateh<=3;end default: begin datel<=0;dateh<=3;end
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度環(huán)保設(shè)備轉(zhuǎn)讓與運(yùn)行管理服務(wù)合同協(xié)議3篇
- 2025年新世紀(jì)版四年級英語下冊階段測試試卷含答案
- 2025年度嵌入式系統(tǒng)設(shè)計(jì)工程師入職服務(wù)合同3篇
- 2024電子商務(wù)合作的框架協(xié)議模板
- 2025年滬科版選修3物理下冊階段測試試卷
- 2024石油化工產(chǎn)品倉儲運(yùn)輸合同范本3篇
- 2025年人教版PEP九年級地理下冊月考試卷
- 2025年西師新版必修3地理下冊階段測試試卷含答案
- 2025年上教版七年級生物上冊月考試卷含答案
- 2025年華師大版五年級英語下冊階段測試試卷含答案
- 2023浙江省杭州市中考語文真題試卷和答案
- 銀行防詐騙知識宣傳
- 【實(shí)戰(zhàn)篇】華為IPD流程的應(yīng)用案例
- spa浴按摩是怎么樣的
- 統(tǒng)編版六年級語文上冊專項(xiàng) 專題04標(biāo)點(diǎn)符號及作用-原卷版+解析
- Book-1-Unit-3-going-positive教學(xué)設(shè)計(jì)文檔
- 績效管理外文翻譯外文文獻(xiàn)中英翻譯-績效管理外文文獻(xiàn)
- 建立信息共享和預(yù)警機(jī)制
- 2023年湖北省鄂州市鄂城區(qū)數(shù)學(xué)七年級第一學(xué)期期末綜合測試試題含解析
- 并行計(jì)算任務(wù)分配
- JGT129-2017 建筑門窗五金件 滑輪
評論
0/150
提交評論