第一篇:2010年北郵光研院《光纖通信》專業(yè)筆試題
2010年北京郵電大學(xué)信息光子學(xué)與光通信研究院
《光纖通信》專業(yè)筆試題
一、填空題(共26分,每空2分)
1、光纖傳輸特性:___,___,___。
2、單模光纖三種色散:___, ___, ___;其中___色散導(dǎo)致單模光纖出現(xiàn)傳輸極限。(原話實在忘了,課本也沒在手里,意思表達不清楚,湊合看吧,看過書的人應(yīng)該明白的,嘿嘿)
3、光纖通信系統(tǒng)的三大性能指標(biāo):___,___,___。
4、給出L、Pi、Po=0,計算α損耗系數(shù)___.5、(還有一個題想不起來了,總之填空應(yīng)該拿滿分的)
二、選擇題(共24分,每題4分)
1、影響DWDM傳輸容量的因素有:(五個選項,不定項選擇,具體選項忘了~)
2、EDFA能放大那些波長的光:(選項略)
3、光檢測器,給出截止波長hv>Eg,問能檢測出那些波長的光。
4、單模光纖當(dāng)波長大于lanmdaC(你懂的,這個希臘字母實在是找不到在哪)時截止,問那些波長的光能通過?
5、適合DwDm傳輸?shù)臉?biāo)準(zhǔn)?(答案應(yīng)該是G.655)
6、光接收機的性能指標(biāo)。
三、大題(計算+簡述,共50分)
計算題:
1、(5分)回波損耗,知Po,反射Pi,求α?
2、(10分)畫出WDM系統(tǒng)并闡述工作原理(感覺這不是計算題,下題同)
3、(10分)EDfA的三種泵浦結(jié)構(gòu)并作簡單說明。
簡述題:
1、(10分)光纖傳輸特性對于光脈沖的影響。
2、(10分)光與物質(zhì)的三種反應(yīng)過程并寫出與之相對應(yīng)的半導(dǎo)體器件。(寫到這忍不住抱怨句:這也忒簡單了吧,考填空正好~)
3、(5分)WDM中監(jiān)控信道的作用及對波長的選擇。
09題型有填空,選擇,計算,問答。填空有四五道,選擇有四道題,諸如單模光纖中的三種色散類型,光纖通信系統(tǒng)的性能指標(biāo),損耗系數(shù)的計算,光發(fā)送機的性能指標(biāo)等等。
計算加問答共6道題,如下:
1.DWDM系統(tǒng)中要求總功率不得高于17dBm,該系統(tǒng)共32個子信道,每個子信道功率相同,則每個子信道的功率不得高于多少?(記得lg2=0.3010的話,該題答案應(yīng)該是1.95dBm)
2.EDFA的3種泵浦結(jié)構(gòu)寫出一種
3.FTTH的實現(xiàn)方案
4.偏振膜色散的形成原因及其對通信系統(tǒng)性能的影響
5.抖動性能的定義及其對系統(tǒng)的影響
6.WDM系統(tǒng)中監(jiān)控信道的作用及其對波長選擇的要求。
第二篇:北郵光纖通信復(fù)習(xí)提綱
第一章
1、請解釋將光纖分為單模和多模的判斷依據(jù)
2、請解釋光纖數(shù)值孔徑的概念,并給出相對折射率表示的數(shù)值孔徑的數(shù)學(xué)表達式。為什么通信用的光纖數(shù)值孔徑都比較小
3、為什么要設(shè)計漸變折射率光纖,請簡述其工作原理
4、色散的機理是什么,有哪些類型,列出描述色散大小的三個等效參數(shù):最大時延差,群速色散系數(shù),色散系數(shù)之間的相互關(guān)系(兩兩關(guān)系,三個表達式)
5、什么是正常色散區(qū),反常色散區(qū),如何判別區(qū)分
6、列出光纖中損耗的類型,并說明最終決定光纖損耗(的因素),決定理論極限的包含其中哪幾項
7、列出光纖非線性效應(yīng)的類型,給出每一項的概念
8、簡述光纖的發(fā)展過程
9、標(biāo)量近似法求解光纖中的模式時的結(jié)果LPmn中m、n的物理含義,并會識別和畫出示意圖
第二章
1、光纖通信系統(tǒng)對光源的要求
2、光與物質(zhì)的相互作用的三個物理過程,指出半導(dǎo)體激光器,發(fā)光二極管和光電檢測器的工作原理各建立在什么作用的基礎(chǔ)上
3、激光產(chǎn)生所需要的三個物質(zhì)條件和發(fā)生激射的兩大理論基礎(chǔ),LD諧振腔的作用
4、推導(dǎo)F-P腔,Bragg波紋光柵諧振腔的諧振模式間隔與腔長之間的關(guān)系
5、激光器的P-I特性曲線以及溫度的影響
6、直接調(diào)制與間接調(diào)制之間的區(qū)別,列舉幾種間接調(diào)制的類型
7、畫出光發(fā)射機的原理框圖,列出兩種控制電路的名稱,并簡述各自的作用
8、為什么經(jīng)常采用雙異質(zhì)結(jié)的半導(dǎo)體制作LD9、激光器縱模和橫模的含義,各有哪些類型
10、LD與LED的區(qū)別,LED工作時有沒有受激輻射,為什么說LED發(fā)射的光譜主要是自發(fā)輻射譜
11、定性描述LD瞬態(tài)特性的兩個重要現(xiàn)象是?定量描述的工具是?列出表達式 并用它求解閾值時的電子密度和電光延遲時間
12、光調(diào)制方式
第三章
1、光纖通信系統(tǒng)對光電檢測器的要求
2、光接收機的原理框圖,指出其主要性能指標(biāo)
3、實現(xiàn)光電檢測的兩種常用器件,簡述其結(jié)構(gòu),原理
4、為什么光電二極管波長響應(yīng)同時存在上截止波長和下截止波長兩個限制
5、光接收機中的噪聲有哪兩大類,又各自包含哪些
6、影響光接收機靈敏度的主要因素
7、相干接收的原理和關(guān)鍵技術(shù)
第四章
1、什么是HFC系統(tǒng)?什么是副載波復(fù)用技術(shù)?
2、光纖通信系統(tǒng)的設(shè)計考慮,特別是無中繼再生段的設(shè)計考慮
3、數(shù)字系統(tǒng)中傳輸性能的兩個主要指標(biāo),以及抖動和漂移的概念
4、光放大器有哪兩類,簡述EDFA和RFA的工作原理
5、說出EDFA的三種內(nèi)部泵浦結(jié)構(gòu)的三種基本應(yīng)用形式
第五章
1、常用的光連接器有哪些型號
2、說明恒量無源光器件性能的常用指標(biāo)參數(shù)
3、解釋光環(huán)形器的工作原理(對照圖說明)
4、列舉出三種以上的波分復(fù)用/解波分復(fù)用器件的構(gòu)成方式
5、列舉出幾種基于不同結(jié)構(gòu)設(shè)計的機械光開關(guān)
6、解釋DWDM和CWDM系統(tǒng)的區(qū)別
7、'推導(dǎo)利用介質(zhì)膜或干涉膜進行濾波的原理
第六章
1、光傳送網(wǎng)中的兩種典型設(shè)備是?各說出兩種典型的實現(xiàn)方式
2、說出三種光交換的方式和交換粒度
3、說出自動交換光網(wǎng)絡(luò)ASON的三大平面,五大類接口,三種連接的名稱
4、OCS、OBS、OPS的原理及特點,OPS沖突解決方案
5、有源光網(wǎng)絡(luò)和無源光網(wǎng)絡(luò)的區(qū)別是?
6、說出xPON、FTTx中的x可以代表哪些字母,并給出中文解釋
7、PTN的概念及技術(shù)分類
8、MSTP概念和技術(shù)分類
第七章
1、解釋以上群速度色散補償技術(shù)原理
2、OTDM的原理和系統(tǒng)結(jié)構(gòu)
第三篇:2010北郵考研網(wǎng)研院 機試題
2010北郵考研網(wǎng)研院 機試題
(2010-04-19 16:38:15)
轉(zhuǎn)載 標(biāo)簽:
北郵 網(wǎng)研 機試 雜談
第一題:查找 輸入數(shù)組長度 n 輸入數(shù)組 a[1...n] 輸入查找個數(shù)m 輸入查找數(shù)字b[1...m]
輸出 YES or NO 查找有則YES 否則NO
如(括號內(nèi)容為注釋)輸入: 5(數(shù)組長度)1 5 2 4 3(數(shù)組)3(查找個數(shù))2 5 6(查找具體數(shù)字)輸出: YES YES NO 第二題:查找第K小數(shù)
查找一個數(shù)組的第K小的數(shù),注意同樣大小算一樣大 如 2 1 3 4 5 2 第三小數(shù)為3
如(括號內(nèi)容為注釋)輸入: 6(數(shù)組長度n)2 1 3 5 2 2(數(shù)組)3(K 即為第三小數(shù))輸出: 3
第三題:打牌
牌只有1到9,手里拿著已經(jīng)排好序的牌a,對方出牌b,用程序判斷手中牌是否能夠壓過對方出牌 規(guī)則:出牌牌型有5種 [1]一張 如4 則5...9可壓過
[2]兩張 如44 則55,66,77,...,99可壓過 [3]三張 如444 規(guī)則如[2] [4]四張 如4444 規(guī)則如[2] [5]五張 牌型只有12345 23456 34567 45678 56789五個,后面的比前面的均大
壓過輸出YES 否則NO
如(括號內(nèi)容為注釋)輸入:
12233445566677(手中牌)33(出牌)輸出: YES
第四題:樹 查找
簡單說就是一棵樹,輸出某一深度的所有節(jié)點,有則輸出這些節(jié)點,無則輸出EMPTY,具體描述得借助圖形比較好,懶得寫了,基本就是這個樣子的。
第四篇:光纖通信筆試題
2010年北京郵電大學(xué)信息光子學(xué)與光通信研究院
《光纖通信》專業(yè)筆試題
一、填空題(共26分,每空2分)
1、光纖傳輸特性:___,___,___。
2、單模光纖三種色散:___, ___, ___;其中___色散導(dǎo)致單模光纖出現(xiàn)傳輸極限。(原話實在忘了,課本也沒在手里,意思表達不清楚,湊合看吧,看過書的人應(yīng)該明白的,嘿嘿)
3、光纖通信系統(tǒng)的三大性能指標(biāo):___,___,___。
4、給出L、Pi、Po=0,計算α損耗系數(shù)___.5、(還有一個題想不起來了,總之填空應(yīng)該拿滿分的)
二、選擇題(共24分,每題4分)
1、影響DWDM傳輸容量的因素有:(五個選項,不定項選擇,具體選項忘了~)
2、EDFA能放大那些波長的光:(選項略)
3、光檢測器,給出截止波長hv>Eg,問能檢測出那些波長的光。
4、單模光纖當(dāng)波長大于lanmdaC(你懂的,這個希臘字母實在是找不到在哪)時截止,問那些波長的光能通過?
5、適合DwDm傳輸?shù)臉?biāo)準(zhǔn)?(答案應(yīng)該是G.655)
6、光接收機的性能指標(biāo)。
三、大題(計算+簡述,共50分)
計算題:
1、(5分)回波損耗,知Po,反射Pi,求α?
2、(10分)畫出WDM系統(tǒng)并闡述工作原理(感覺這不是計算題,下題同)
3、(10分)EDfA的三種泵浦結(jié)構(gòu)并作簡單說明。
簡述題:
1、(10分)光纖傳輸特性對于光脈沖的影響。
2、(10分)光與物質(zhì)的三種反應(yīng)過程并寫出與之相對應(yīng)的半導(dǎo)體器件。(寫到這忍不住抱怨句:這也忒簡單了吧,考填空正好~)
3、(5分)WDM中監(jiān)控信道的作用及對波長的選擇。
第五篇:北郵電子院專業(yè)實驗報告
電子工程學(xué)院
ASIC專業(yè)實驗報告
班級: 姓名:
學(xué)號: 班內(nèi)序號:
第一部分 語言級仿真
LAB 1:簡單的組合邏輯設(shè)計一、二、實驗?zāi)康?實驗原理 掌握基本組合邏輯電路的實現(xiàn)方法。
本實驗中描述的是一個可綜合的二選一開關(guān),它的功能是當(dāng)sel = 0時,給出out = a,否則給出結(jié)果out = b。在Verilog HDL中,描述組合邏輯時常使用assign結(jié)構(gòu)。equal=(a==b)?1:0是一種在組合邏輯實現(xiàn)分支判斷時常用的格式。parameter定義的size參數(shù)決定位寬。測試模塊用于檢測模塊設(shè)計的是否正確,它給出模塊的輸入信號,觀察模塊的內(nèi)部信號和輸出信號。
三、源代碼
mux.v module scale_mux(out,sel,b,a);parameter size=1;output[size-1:0] out;input[size-1:0]b,a;input sel;assign out =(!sel)?a:
(sel)?b:
{size{1'bx}};endmodule
mux_test.v `define width 8 `timescale 1 ns/1 ns module mux_test;
reg[`width:1]a,b;
wire[`width:1]out;
reg sel;
scale_mux#(`width)m1(.out(out),.sel(sel),.b(b),.a(a));
initial
begin
$monitor($stime,“sel=%b a=%b b=%b out=%b”,sel,a,b,out);
$dumpvars(2,mux_test);
sel=0;b={`width{1'b0}};a={`width{1'b1}};
#5sel=0;b={`width{1'b1}};a={`width{1'b0}};
#5sel=1;b={`width{1'b0}};a={`width{1'b1}};
#5sel=1;b={`width{1'b1}};a={`width{1'b0}};
#5 $finish;
end endmodule
四、仿真結(jié)果與波形
LAB 2:簡單時序邏輯電路的設(shè)計一、二、實驗?zāi)康?實驗原理 掌握基本時序邏輯電路的實現(xiàn)。
在Verilog HDL中,相對于組合邏輯電路,時序邏輯電路也有規(guī)定的表述方式。在可綜合的Verilog HDL模型中,我們常使用always塊和@(posedge clk)或@(negedge clk)的結(jié)構(gòu)來表述時序邏輯。
在always塊中,被賦值的信號都必須定義為reg型,這是由時序邏輯電路的特點所決定的對于reg型數(shù)據(jù),如果未對它進行賦值,仿真工具會認為它是不定態(tài)。為了正確地觀察到仿真結(jié)果,在可綜合的模塊中我們通常定義一個復(fù)位信號rst-,當(dāng)它為低電平時對電路中的寄存器進行復(fù)位。
三、源代碼
counter.v `timescale 1 ns/100 ps module counter(cnt,clk,data,rst_,load);output[4:0]cnt;input [4:0]data;input
clk;input
rst_;input
load;reg
[4:0]cnt;
always@(posedge clk or negedge rst_)
if(!rst_)
#1.2 cnt<=0;
else
if(load)
cnt<=#3 data;
else
cnt<=#4 cnt + 1;
endmodule
counter_test.v `timescale 1 ns/1 ns module counter_test;
wire[4:0]cnt;
reg [4:0]data;
reg
rst_;
reg
load;
reg
clk;
counter c1
(.cnt(cnt),.clk(clk),.data(data),.rst_(rst_),.load(load));
initial begin
clk=0;
forever begin
#10 clk=1'b1;
#10 clk=1'b0;
end
end
initial begin
$timeformat(-9,1,“ns”,9);
$monitor(“time=%t,data=%h,clk=%b,rst_=%b,load=%b,cnt=%b”,$stime,data,clk,rst_,load,cnt);
$dumpvars(2,counter_test);
end task expect;input [4:0]expects;
if(cnt!==expects)begin
$display(“At time %t cnt is %b and should be %b”,$time,cnt,expects);
$display(“TEST FAILED”);
$finish;
end endtask initial begin
@(negedge clk)
{rst_,load,data}=7'b0_X_XXXXX;@(negedge clk)expect(5'h00);
{rst_,load,data}=7'b1_1_11101;@(negedge clk)expect(5'h1D);
{rst_,load,data}=7'b1_0_11101;
repeat(5)@(negedge clk);
expect(5'h02);
{rst_,load,data}=7'b1_1_11111;@(negedge clk)expect(5'h1F);
{rst_,load,data}=7'b0_X_XXXXX;@(negedge clk)expect(5'h00);
$display(“TEST PASSED”);
$finish;
end endmodule
四、仿真結(jié)果與波形
五、思考題
該電路中,rst-是同步還是異步清零端?
在counter.v的always塊中reset沒有等時鐘,而是直接清零。所以是異步清零端。
LAB 3:簡單時序邏輯電路的設(shè)計一、二、實驗?zāi)康?實驗原理 使用預(yù)定義的庫元件來設(shè)計八位寄存器。
八位寄存器中,每一位寄存器由一個二選一MUX和一個觸發(fā)器dffr組成,當(dāng)load=1,裝載數(shù)據(jù);當(dāng)load=0,寄存器保持。對于處理重復(fù)的電路,可用數(shù)組條用的方式,使電路描述清晰、簡潔。
三、源代碼
clock.v `timescale 1 ns /1 ns module clock(clk);reg clk;output clk;initial begin clk=0;forever begin #10 clk=1'b1;#10 clk=1'b0;end end endmodule
mux及dffr模塊調(diào)用代碼
mux mux7(.out(n1[7]),.sel(load),.b(data[7]),.a(out[7]));dffr dffr7(.q(out[7]),.d(n1[7]),.clk(clk),.rst_(rst_));mux mux6(.out(n1[6]),.sel(load),.b(data[6]),.a(out[6]));dffr dffr6(.q(out[6]),.d(n1[6]),.clk(clk),.rst_(rst_));mux mux5(.out(n1[5]),.sel(load),.b(data[5]),.a(out[5]));dffr dffr5(.q(out[5]),.d(n1[5]),.clk(clk),.rst_(rst_));mux mux4(.out(n1[4]),.sel(load),.b(data[4]),.a(out[4]));dffr dffr4(.q(out[4]),.d(n1[4]),.clk(clk),.rst_(rst_));
mux mux3(.out(n1[3]),.sel(load),.b(data[3]),.a(out[3]));dffr dffr3(.q(out[3]),.d(n1[3]),.clk(clk),.rst_(rst_));mux mux2(.out(n1[2]),.sel(load),.b(data[2]),.a(out[2]));dffr dffr2(.q(out[2]),.d(n1[2]),.clk(clk),.rst_(rst_));mux mux1(.out(n1[1]),.sel(load),.b(data[1]),.a(out[1]));dffr dffr1(.q(out[1]),.d(n1[1]),.clk(clk),.rst_(rst_));mux mux0(.out(n1[0]),.sel(load),.b(data[0]),.a(out[0]));dffr dffr0(.q(out[0]),.d(n1[0]),.clk(clk),.rst_(rst_));
例化寄存器
register r1(.data(data),.out(out),.load(load),.clk(clk),.rst_(rst_));例化時鐘
clock c1(.clk(clk));
添加檢測信號 initial begin $timeformat(-9,1,“ns”,9);$monitor(“time=%t,clk=%b,data=%h,load=%b,out=%h”, $stime,clk,data,load,out);$dumpvars(2,register_test);end
四、仿真結(jié)果與波形
LAB 4:用always塊實現(xiàn)較復(fù)雜的組合邏輯電路
一、實驗?zāi)康?/p>
掌握用always實現(xiàn)組合邏輯電路的方法;
了解assign與always兩種組合邏輯電路實現(xiàn)方法之間的區(qū)別。
二、實驗原理
僅使用assign結(jié)構(gòu)來實現(xiàn)組合邏輯電路,在設(shè)計中會發(fā)現(xiàn)很多地方顯得冗長且效率低下。適當(dāng)?shù)厥褂胊lways來設(shè)計組合邏輯,會更具實效。
本實驗描述的是一個簡單的ALU指令譯碼電路的設(shè)計示例。它通過對指令的判斷,對輸入數(shù)據(jù)執(zhí)行相應(yīng)的操作,包括加、減、或和傳數(shù)據(jù),并且無論是指令作用的數(shù)據(jù)還是指令本身發(fā)生變化,結(jié)果都要做出及時的反應(yīng)。
示例中使用了電平敏感的always塊,電平敏感的觸發(fā)條件是指在@后括號內(nèi)電平列表的任何一個電平發(fā)生變化就能觸發(fā)always塊的動作,并且運用了case結(jié)構(gòu)來進行分支判斷。
在always中適當(dāng)運用default(在case結(jié)構(gòu)中)和else(子if…else結(jié)構(gòu)中),通??梢跃C合為純組合邏輯,盡管被賦值的變量一定要定義為reg型。如果不使用default或else對缺省項進行說明,易產(chǎn)生意想不到的鎖存器。
三、源代碼
電路描述
always@(opcode or data or accum)begin if(accum==8'b00000000)#1.2 zero=1;else #1.2 zero=0;
case(opcode)PASS0: #3.5 out =accum;PASS1: #3.5 out =accum;ADD: #3.5 out = data + accum;AND: #3.5 out =data&accum;XOR: #3.5 out =data^accum;PASSD: #3.5 out=data;PASS6:#3.5 out=accum;PASS7:#3.5 out=accum;default:#3.5 out=8'bx;endcase end
四、仿真結(jié)果與波形
LAB 5:存儲器電路的設(shè)計一、二、實驗?zāi)康?實驗原理 設(shè)計和測試存儲器電路。
本實驗中,設(shè)計一個模塊名為mem的存儲器仿真模型,該存儲器具有雙線數(shù)據(jù)總線及異步處理功能。由于數(shù)據(jù)是雙向的,所以要注意,對memory的讀寫在時序上要錯開。
三、源代碼
自行添加的代碼
assign data=(read)?memory[addr]:8'hZ;
always @(posedge write)begin memory[addr]<=data[7:0];end
四、仿真結(jié)果與波形
LAB 6:設(shè)計時序邏輯時采用阻塞賦值與非阻塞賦值的區(qū)別
一、實驗?zāi)康?/p>
明確掌握阻塞賦值與非阻塞賦值的概念和區(qū)別; 了解阻塞賦值的使用情況。
二、實驗原理
在always塊中,阻塞賦值可以理解為賦值語句是順序執(zhí)行的,而非阻塞賦值可以理解為并發(fā)執(zhí)行的。實際時序邏輯設(shè)計中,一般情況下非阻塞賦值語句被更多的使用,有時為了在同一周期實現(xiàn)相互關(guān)聯(lián)的操作,也使用阻塞賦值語句。
三、源代碼
blocking.v `timescale 1 ns/ 100 ps
module blocking(clk,a,b,c);
output[3:0]b,c;
input [3:0]a;
input
clk;
reg
[3:0]b,c;
always@(posedge clk)
begin
b =a;
c =b;
$display(“Blocking: a=%d,b=%d,c=%d.”,a,b,c);
end endmodule
non_blocking.v `timescale 1 ns/ 100 ps module non_blocking(clk,a,b,c);
output[3:0] b,c;input[3:0] a;input clk;reg [3:0]b,c;always @(posedge clk)begin b<=a;c<=b;$display(“Non_blocking:a=%d,b=%d,c=%d”,a,b,c);end endmodule compareTop.v `timescale 1 ns/ 100 ps module compareTop;wire [3:0] b1,c1,b2,c2;reg[3:0]a;reg clk;initial begin clk=0;forever #50 clk=~clk;end initial $dumpvars(2,compareTop);initial begin a=4'h3;$display(“_______________________________”);# 100 a =4'h7;$display(“_______________________________”);# 100 a =4'hf;$display(“_______________________________”);# 100 a =4'ha;$display(“_______________________________”);# 100 a =4'h2;$display(“_______________________________”);# 100 $display(“_______________________________”);$finish;end non_blocking nonblocking(clk,a,b2,c2);blocking blocking(clk,a,b1,c1);endmodule
四、仿真結(jié)果與波形
LAB 7:利用有限狀態(tài)機進行復(fù)雜時序邏輯的設(shè)計一、二、實驗?zāi)康?實驗原理 掌握利用有限狀態(tài)機(FSM)實現(xiàn)復(fù)雜時序邏輯的方法。
控制器是CPU的控制核心,用于產(chǎn)生一系列的控制信號,啟動或停止某些部件。CPU何時進行讀指令,何時進行RAM和I/O端口的讀寫操作等,都由控制器來控制。
三、源代碼
補充代碼
nexstate<=state+1'h01;case(state)1:begin sel=1;rd=0;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 2:begin sel=1;rd=1;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 3:begin sel=1;rd=1;ld_ir=1;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 4:begin sel=1;rd=1;ld_ir=1;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 5:begin sel=0;rd=0;ld_ir=0;inc_pc=1;ld_pc=0;data_e=0;ld_ac=0;wr=0;if(opcode==`HLT)halt=1;end 6:begin sel=0;rd=alu_op;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 7:begin sel=0;rd=alu_op;ld_ir=0;halt=0;data_e=!alu_op;ld_ac=0;wr=0;if(opcode==`SKZ)inc_pc<=zero;if(opcode==`JMP)ld_pc=1;end 0:begin sel=0;rd=alu_op;ld_ir=0;halt=0;data_e=!alu_op;ld_ac=alu_op;inc_pc=(opcode==`SKZ)&zero||(opcode==`JMP);if(opcode==`JMP)ld_pc=1;if(opcode==`STO)wr=1;end //default:begin sel=1'bZ;rd=1'bZ;ld_ir=1'bZ;inc_pc=1'bZ;halt=1'bZ;ld_pc=1'bZ;data_e=1'bZ;ld_ac=1'bZ;wr=1'bZ;end endcase end
control_test.v /***************************** * TEST BENCH FOR CONTROLLER * *****************************/
`timescale 1 ns / 1 ns
module control_test;
reg [8:0] response [0:127];
reg [3:0] stimulus [0:15];
reg [2:0] opcode;
reg
clk;
reg
rst_;
reg
zero;
integer
i,j;
reg[(3*8):1] mnemonic;
// Instantiate controller
control c1(rd , wr , ld_ir , ld_ac , ld_pc , inc_pc , halt , data_e , sel , opcode , zero , clk , rst_);
// Define clock
initial begin
clk = 1;
forever begin
#10 clk = 0;
#10 clk = 1;
end
end
// Generate mnemonic for debugging purposes
always @(opcode)
begin
case(opcode)
3'h0
: mnemonic = “HLT”;
3'h1
: mnemonic = “SKZ”;
3'h2
: mnemonic = “ADD”;
3'h3
: mnemonic = “AND”;
3'h4
: mnemonic = “XOR”;
3'h5
: mnemonic = “LDA”;
3'h6
: mnemonic = “STO”;
3'h7
: mnemonic = “JMP”;
default : mnemonic = “???”;
endcase
end
// Monitor signals
initial
begin
$timeformat(-9, 1, “ ns”, 9);
$display(“ time
rd wr ld_ir ld_ac ld_pc inc_pc halt data_e sel opcode zero state”);
$display(“--------------------------------------------------------------”);//
$shm_open(“waves.shm”);//
$shm_probe(“A”);//
$shm_probe(c1.state);
end
// Apply stimulus
initial
begin
$readmemb(“stimulus.pat”, stimulus);
rst_=1;
@(negedge clk)rst_ = 0;
@(negedge clk)rst_ = 1;
for(i=0;i<=15;i=i+1)
@(posedge ld_ir)
@(negedge clk)
{ opcode, zero } = stimulus[i];
end
// Check response
initial
begin
$readmemb(“response.pat”, response);
@(posedge rst_)
for(j=0;j<=127;j=j+1)
@(negedge clk)
begin
$display(“%t %b %b %b
%b
%b
%b
%b
%b %b
%b
%b”,$time,rd,wr,ld_ir,ld_ac,ld_pc,inc_pc,halt,data_e,sel,opcode,zero,c1.state);
if({rd,wr,ld_ir,ld_ac,ld_pc,inc_pc,halt,data_e,sel}!==
response[j])
begin : blk
reg [8:0] r;
r = response[j];
$display("ERRORTEST1 PASSED!
111_00000
// 18
JMP BEGIN //run test again
@1A 00000000
// 1A
DATA_1:
//constant 00(hex)
11111111
// 1B
DATA_2:
//constant FF(hex)
10101010
// 1C
TEMP:
//variableTEST2 PASSED!
111_00000
// 11
JMP BEGIN
//run test again
@1A 00000001
// 1A
DATA_1:
//constant 1(hex)
10101010
// 1B
DATA_2:
//constant AA(hex)
11111111
// 1C
DATA_3:
//constant FF(hex)
00000000
// 1D
TEMP:
CPUtest3.dat //opcode_operand // addr
assembly code //--------------//-------------------------
111_00011
// 00
JMP LOOP
//jump to the address of LOOP @03 101_11011
// 03
LOOP:
LDA FN2
//load value in FN2 into accum
110_11100
// 04
STO TEMP
//store accumulator in TEMP
010_11010
// 05
ADD FN1
//add value in FN1 to accumulator
110_11011
// 06
STO FN2
//store result in FN2
101_11100
// 07
LDA TEMP
//load TEMP into the accumulator
110_11010
// 08
STO FN1
//store accumulator in FN1
100_11101
// 09
XOR LIMIT //compare accumulator to LIMIT
001_00000
// 0A
SKZ
//if accum = 0, skip to DONE
111_00011
// 0B
JMP LOOP
//jump to address of LOOP
000_00000
// 0C
DONE:
HLT
//end of program
101_11111
// 0D
AGAIN: LDA ONE
110_11010
// 0E
STO FN1
101_11110
// 0F
LDA ZERO
110_11011
// 10
STO FN2
111_00011
// 11
JMP LOOP
//jump to address of LOOP
@1A 00000001
// 1A
FN1:
//variablestores 2nd Fib.No.00000000
// 1C
TEMP:
//temporary variable
10010000
// 1D
LIMIT:
//constant 144stores 1st Fib.No.00000101
// 1B
data2:
//5
variablemax value
00000110
// 1E
LIMIT:
// 6
constant 1
11111111
// 1F
AND1:
//FF and
四、仿真結(jié)果與波形
第二部分 電路綜合一、二、三、四、實驗?zāi)康?實驗內(nèi)容 源代碼
門級電路仿真結(jié)果與波形 掌握邏輯綜合的概念和流程,熟悉采用Design Compiler進行邏輯綜合的基本方法。采用SYNOPSYS公司的綜合工具Design Compiler對實驗7的control.v做綜合。與實驗指導(dǎo)書中相同。
五、思考題
1.control_pad.v文件是verilog語言及的描述還是結(jié)構(gòu)化的描述?
是結(jié)構(gòu)化的描述。
2.control_pad.sdf文件中,對觸發(fā)器的延遲包括哪些信息?
包括對邏輯單元和管腳的上升/下降時延的最大值、最小值和典型值。
第三部分 版圖設(shè)計一、二、三、四、實驗?zāi)康?實驗內(nèi)容 源代碼
仿真結(jié)果與波形 掌握版圖設(shè)計的基本概念和流程,熟悉采用Sysnopsys ICC工具進行版圖設(shè)計的方法。對電路綜合輸出的門級網(wǎng)表control_pad.v進行布局布線。與實驗指導(dǎo)書中相同。布局規(guī)劃后結(jié)果
未產(chǎn)生core ring和mesh前
產(chǎn)生core ring和mesh后
電源線和電影PAD連接后
filler PAD填充后
布局后結(jié)果
時鐘樹綜合后結(jié)果
布線后結(jié)果
寄生參數(shù)的導(dǎo)出和后仿
五、思考題
1.簡述ICC在design setup階段的主要工作。
創(chuàng)建設(shè)計庫,讀取網(wǎng)表文件并創(chuàng)建設(shè)計單元,提供并檢查時間約束,檢查時鐘。在對之前的數(shù)據(jù)與信息進行讀取與檢查后保存設(shè)計單元。2.為什么要填充filler pad?
filler pad把分散的pad單元連接起來,把pad I/O區(qū)域供電連成一個整體。使它們得到持續(xù)供電并提高ESD保護能力。3.derive_pg_connection的作用是什么?
描述有關(guān)電源連接的信息。4.簡述floorplan的主要任務(wù)。
對芯片大小、輸入輸出單元、宏模塊進行規(guī)劃,對電源網(wǎng)絡(luò)進行設(shè)計。5.簡述place階段的主要任務(wù)。
對電路中的延時進行估計與分析,模擬時鐘樹的影響,按照時序要求,對標(biāo)準(zhǔn)化單元進行布局。
6.簡述CTS的主要步驟。
設(shè)置時鐘樹公共選項;綜合時鐘樹;重新連接掃描鏈;使能傳播時鐘;Post-CTS布局優(yōu)化;優(yōu)化時鐘偏移;優(yōu)化時序。
實驗總結(jié)
經(jīng)過數(shù)周的ASIC專業(yè)實驗,我對芯片設(shè)計流程、Verilog HDL語言、Linux基本指令和Vi文本編輯器有了基本的了解。雖然之前對芯片設(shè)計、VHDL一無所知,但通過實驗初步熟悉了ASIC的體系結(jié)構(gòu)和VHDL的基本語法,對電路中時鐘、寄生參數(shù)、元件布局帶來的影響也有了了解。我在實驗中也遇到了許多問題,但我在老師、助教、同學(xué)的幫助下解決了這些問題,也有了更多收獲。通過這次ASIC專業(yè)實驗,我加深了對本專業(yè)的認識。我會繼續(xù)努力成為合格的電子人。