標題: FPGA工程師面試試題100 [打印本頁]
作者: 51黑科技 時間: 2016-2-1 00:30
標題: FPGA工程師面試試題100
1、同步電路和異步電路的區(qū)別是什么?(仕蘭微電子)
2、什么是同步邏輯和異步邏輯?(漢王筆試)
同步邏輯是時鐘之間有固定的因果關系.異步邏輯是各時鐘之間沒有固定的因果關系.
3、什么是"線與"邏輯,要實現(xiàn)它,在硬件特性上有什么具體要求?(漢王筆試)
線與邏輯是兩個輸出信號相連可以實現(xiàn)與的功能.在硬件上,要用oc門來實現(xiàn),由于不用 oc門可能使灌電流過大,而燒壞邏輯門. 同時在輸出端口應加一個上拉電阻.
4、什么是Setup 和Holdup時間?(漢王筆試)
5、setup和holdup時間,區(qū)別.(南山之橋)
6、解釋setup time和hold time的定義和在時鐘信號延遲時的變化.(未知)
7、解釋setup和hold time violation,畫圖說明,并說明解決辦法.(威盛VIA
2003.11.06 上海筆試試題)
Setup/hold time 是測試芯片對輸入信號和時鐘信號之間的時間要求.建立時間是指觸發(fā) 器的時鐘信號上升沿到來以前,數(shù)據(jù)穩(wěn)定不變的時間.輸入信號應提前時鐘上升沿(如上升沿有效)T時間到達芯片,這個T就是建立時間-Setup time.如不滿足setup time,這個數(shù)據(jù)就不能被這一時鐘打入觸發(fā)器,只有在下一個時鐘上升沿,數(shù)據(jù)才能被打入觸發(fā)器. 保持時間是指觸發(fā)器的時鐘信號上升沿到來以后,數(shù)據(jù)穩(wěn)定不變的時間.如果hold time 不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器.
建立時間(Setup Time)和保持時間(Hold time).建立時間是指在時鐘邊沿前,數(shù)據(jù)信 號需要保持不變的時間.保持時間是指時鐘跳變邊沿后數(shù)據(jù)信號需要保持不變的時間.如果不滿足建立和保持時間的話,那么DFF將不能正確地采樣到數(shù)據(jù),將會出現(xiàn) metastability的情況.如果數(shù)據(jù)信號在時鐘沿觸發(fā)前后持續(xù)的時間均超過建立和保持時 間,那么超過量就分別被稱為建立時間裕量和保持時間裕量.
8、說說對數(shù)字邏輯中的競爭和冒險的理解,并舉例說明競爭和冒險怎樣消除.(仕蘭微 電子)
9、什么是競爭與冒險現(xiàn)象?怎樣判斷?如何消除?(漢王筆試)
在組合邏輯中,由于門的輸入信號通路中經(jīng)過了不同的延時,導致到達該門的時間不一致叫競爭.產生毛刺叫冒險.如果布爾式中有相反的信號則可能產生競爭和冒險現(xiàn)象.解決方法:一是添加布爾式的消去項,二是在芯片外部加電容.
10、你知道那些常用邏輯電平?TTL與COMS電平可以直接互連嗎?(漢王筆試)
常用邏輯電平:12V,5V,3.3V;TTL和CMOS不可以直接互連,由于TTL是在0.3-3.6V之間,而CMOS則是有在12V的有在5V的.CMOS輸出接到TTL是可以直接互連.TTL接到CMOS需要在輸出端口加一上拉電阻接到5V或者12V.
11、如何解決亞穩(wěn)態(tài).(飛利浦-大唐筆試)
亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定時間段內達到一個可確認的狀態(tài).當一個觸發(fā)器進入亞
穩(wěn)態(tài)時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩(wěn)定在某個正確的電平
上.在這個穩(wěn)定期間,觸發(fā)器輸出一些中間級電平,或者可能處于振蕩狀態(tài),并且這種無
用的輸出電平可以沿信號通道上的各個觸發(fā)器級聯(lián)式傳播下去.
12、IC設計中同步復位與 異步復位的區(qū)別.(南山之橋)
13、MOORE 與 MEELEY狀態(tài)機的特征.(南山之橋)
14、多時域設計中,如何處理信號跨時域.(南山之橋)
15、給了reg的setup,hold時間,求中間組合邏輯的delay范圍.(飛利浦-大唐筆試)
Delay < period - setup – hold
16、時鐘周期為T,觸發(fā)器D1的建立時間最大為T1max,最小為T1min.組合邏輯電路最大延
遲為T2max,最小為T2min.問,觸發(fā)器D2的建立時間T3和保持時間應滿足什么條件.(華
為)
17、給出某個一般時序電路的圖,有Tsetup,Tdelay,Tck->q,還有 clock的delay,寫出決
定最大時鐘的因素,同時給出表達式.(威盛VIA 2003.11.06 上海筆試試題)
18、說說靜態(tài)、動態(tài)時序模擬的優(yōu)缺點.(威盛VIA 2003.11.06 上海筆試試題)
19、一個四級的Mux,其中第二級信號為關鍵信號 如何改善timing.(威盛VIA
2003.11.06 上海筆試試題)
20、給出一個門級的圖,又給了各個門的傳輸延時,問關鍵路徑是什么,還問給出輸入,
使得輸出依賴于關鍵路徑.(未知)
21、邏輯方面數(shù)字電路的卡諾圖化簡,時序(同步異步差異),觸發(fā)器有幾種(區(qū)別,優(yōu)
點),全加器等等.(未知)
22、卡諾圖寫出邏輯表達使.(威盛VIA 2003.11.06 上海筆試試題)
23、化簡F(A,B,C,D)=m(1,3,4,5,10,11,12,13,14,15)的和.(威盛)
24、please showthe CMOS inverter schmatic,layout and its cross sectionwith P-
well process.Plot its transfer curve (Vout-Vin) And also explainthe
operation region of PMOS and NMOS for each segment of the transfer curve? (威
盛筆試題circuitdesign-beijing-03.11.09)
25、To design aCMOS invertor with balance rise and fall time,please define
the ration of channel width of PMOS and NMOS and explain?
26、為什么一個標準的倒相器中P管的寬長比要比N管的寬長比大?(仕蘭微電子)
27、用mos管搭出一個二輸入與非門.(揚智電子筆試)
28、please drawthe transistor level schematic of a cmos 2 input AND gate and
explain which input has faster response for output rising edge.(lessdelay
time).(威盛筆試題circuitdesign-beijing-03.11.09)
29、畫出NOT,NAND,NOR的符號,真值表,還有transistor level的電路.(Infineon筆
試)
30、畫出CMOS的圖,畫出tow-to-one mux gate.(威盛VIA 2003.11.06 上海筆試試題)
31、用一個二選一mux和一個inv實現(xiàn)異或.(飛利浦-大唐筆試)
32、畫出Y=A*B+C的cmos電路圖.(科廣試題)
33、用邏輯們和cmos電路實現(xiàn)ab+cd.(飛利浦-大唐筆試)
34、畫出CMOS電路的晶體管級電路圖,實現(xiàn)Y=A*B+C(D+E).(仕蘭微電子)
35、利用4選1實現(xiàn)F(x,y,z)=xz+yz’.(未知)
36、給一個表達式f=xxxx+xxxx+xxxxx+xxxx用最少數(shù)量的與非門實現(xiàn)(實際上就是化
簡).
37、給出一個簡單的由多個NOT,NAND,NOR組成的原理圖,根據(jù)輸入波形畫出各點波形.
(Infineon筆試)
38、為了實現(xiàn)邏輯(A XOR B)OR(C AND D),請選用以下邏輯中的一種,并說明為什
么?1)INV 2)AND 3)OR 4)NAND 5)NOR 6)XOR 答案:NAND(未知)
39、用與非門等設計全加法器.(華為)
40、給出兩個門電路讓你分析異同.(華為)
41、用簡單電路實現(xiàn),當A為輸入時,輸出B波形為…(仕蘭微電子)
42、A,B,C,D,E進行投票,多數(shù)服從少數(shù),輸出是F(也就是如果A,B,C,D,E中1的個數(shù)比0
多,那么F輸出為1,否則F為0),用與非門實現(xiàn),輸入數(shù)目沒有限制.(未知)
43、用波形表示D觸發(fā)器的功能.(揚智電子筆試)
44、用傳輸門和倒向器搭一個邊沿觸發(fā)器.(揚智電子筆試)
45、用邏輯們畫出D觸發(fā)器.(威盛VIA 2003.11.06 上海筆試試題)
46、畫出DFF的結構圖,用verilog實現(xiàn)之.(威盛)
47、畫出一種CMOS的D鎖存器的電路圖和版圖.(未知)
48、D觸發(fā)器和D鎖存器的區(qū)別.(新太硬件面試)
49、簡述latch和filp-flop的異同.(未知)
50、LATCH和DFF的概念和區(qū)別.(未知)
51、latch與register的區(qū)別,為什么現(xiàn)在多用register.行為級描述中latch如何產生的.
(南山之橋)
52、用D觸發(fā)器做個二分顰的電路.又問什么是狀態(tài)圖.(華為)
53、請畫出用D觸發(fā)器實現(xiàn)2倍分頻的邏輯電路?(漢王筆試)
54、怎樣用D觸發(fā)器、與或非門組成二分頻電路?(東信筆試)
55、How manyflip-flop circuits are needed to divide by 16? (Intel) 16分頻?
56、用filp-flop和logic-gate設計一個1位加法器,輸入carryin和current-stage,輸出
carryout和next-stage. (未知)
57、用D觸發(fā)器做個4進制的計數(shù).(華為)
58、實現(xiàn)N位Johnson Counter,N=5.(南山之橋)
59、用你熟悉的設計方式設計一個可預置初值的7進制循環(huán)計數(shù)器,15進制的呢?(仕蘭
微電子)
60、數(shù)字電路設計當然必問Verilog/VHDL,如設計計數(shù)器.(未知)
61、BLOCKINGNONBLOCKING 賦值的區(qū)別.(南山之橋)
62、寫異步D觸發(fā)器的verilog module.(揚智電子筆試)
module dff8(clk , reset, d, q);
input clk;
input reset;
input [7:0] d;
output [7:0] q;
reg [7:0] q;
always @ (posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
endmodule
63、用D觸發(fā)器實現(xiàn)2倍分頻的Verilog描述? (漢王筆試)
module divide2( clk , clk_o, reset);
input clk , reset;
output clk_o;
wire in;
reg out ;
always @ ( posedge clk or posedge reset)
if ( reset)
out <= 0;
else
out <= in;
assign in = ~out;
assign clk_o = out;
endmodule
64、可編程邏輯器件在現(xiàn)代電子設計中越來越重要,請問:a) 你所知道的可編程邏輯器
件有哪些? b) 試用VHDL或VERILOG、ABLE描述8位D觸發(fā)器邏輯.(漢王筆試)
PAL,PLD,CPLD,FPGA.
module dff8(clk , reset, d, q);
input clk;
input reset;
input d;
output q;
reg q;
always @ (posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
endmodule
65、請用HDL描述四位的全加法器、5分頻電路.(仕蘭微電子)
66、用VERILOG或VHDL寫一段代碼,實現(xiàn)10進制計數(shù)器.(未知)
67、用VERILOG或VHDL寫一段代碼,實現(xiàn)消除一個glitch.(未知)
68、一個狀態(tài)機的題目用verilog實現(xiàn)(不過這個狀態(tài)機畫的實在比較差,很容易誤解
的).(威盛VIA 2003.11.06 上海筆試試題)
69、描述一個交通信號燈的設計.(仕蘭微電子)
70、畫狀態(tài)機,接受1,2,5分錢的賣報機,每份報紙5分錢.(揚智電子筆試)
71、設計一個自動售貨機系統(tǒng),賣soda水的,只能投進三種硬幣,要正確的找回錢
數(shù). (1)畫出fsm(有限狀態(tài)機);(2)用verilog編程,語法要符合fpga設計
的要求.(未知)
72、設計一個自動飲料售賣機,飲料10分錢,硬幣有5分和10分兩種,并考慮找零:(1)
畫出fsm(有限狀態(tài)機);(2)用verilog編程,語法要符合fpga設計的要求;(3)設計
工程中可使用的工具及設計大致過程.(未知)
73、畫出可以檢測10010串的狀態(tài)圖,并verilog實現(xiàn)之.(威盛)
74、用FSM實現(xiàn)101101的序列檢測模塊.(南山之橋)
a為輸入端,b為輸出端,如果a連續(xù)輸入為1101則b輸出為1,否則為0.
例如a:0001100110110100100110
b: 0000000000100100000000
請畫出state machine;請用RTL描述其state machine.(未知)
75、用verilog/vddl檢測stream中的特定字符串(分狀態(tài)用狀態(tài)機寫).(飛利浦-大唐
筆試)
76、用verilog/vhdl寫一個fifo控制器(包括空,滿,半滿信號).(飛利浦-大唐筆試)
77、現(xiàn)有一用戶需要一種集成電路產品,要求該產品能夠實現(xiàn)如下功能:y=lnx,其中,x
為4位二進制整數(shù)輸入信號.y為二進制小數(shù)輸出,要求保留兩位小數(shù).電源電壓為3~5v假
設公司接到該項目后,交由你來負責該產品的設計,試討論該產品的設計全程.(仕蘭微
電子)
78、sram,falshmemory,及dram的區(qū)別?(新太硬件面試)
79、給出單管DRAM的原理圖(西電版《數(shù)字電子技術基礎》作者楊頌華、馮毛官205頁圖9
-14b),問你有什么辦法提高refresh time,總共有5個問題,記不起來了.(降低溫
度,增大電容存儲容量)(Infineon筆試)
80、Please drawschematic of a common SRAM cell with 6 transistors,point out
which nodes can store data and which node is word line control? (威盛筆試題
circuit design-beijing-03.11.09)
81、名詞:sram,ssram,sdram
名詞IRQ,BIOS,USB,VHDL,SDR
IRQ: Interrupt ReQuest
BIOS: Basic Input Output System
USB: Universal Serial Bus
VHDL: VHIC Hardware Description Language
SDR: Single Data Rate
壓控振蕩器的英文縮寫(VCO).
動態(tài)隨機存儲器的英文縮寫(DRAM).
名詞解釋,無聊的外文縮寫罷了,比如PCI、ECC、DDR、interrupt、pipeline、
IRQ,BIOS,USB,VHDL,VLSI VCO(壓控振蕩器) RAM (動態(tài)隨機存儲器),FIR IIR DFT(離散
傅立葉變換)或者是中文的,比如:a.量化誤差 b.直方圖 c.白平衡
FPGA工程師面試試題01
1 什么是Setup 和Holdup時間?
2 什么是競爭與冒險現(xiàn)象?怎樣判斷?如何消除?
3 用D觸發(fā)器實現(xiàn)2倍分頻的邏輯電路?.......
4 什么是"線與"邏輯,要實現(xiàn)它,在硬件特性上有什么具體要求?
5 什么是同步邏輯和異步邏輯?
6 請畫出微機接口電路中,典型的輸入設備與微機接口邏輯示意圖(數(shù)據(jù)接口、控制接口、所存器/緩沖器)。
7 你知道那些常用邏輯電平?TTL與COMS電平可以直接互連嗎?
8 可編程邏輯器件在現(xiàn)代電子設計中越來越重要,請問:你所知道的可編程邏輯器件有哪些?
9 試用VHDL或VERILOG、ABLE描述8位D觸發(fā)器邏輯。
10 設想你將設計完成一個電子電路方案。請簡述用EDA軟件(如PROTEL)進行設計(包
括原理圖和PCB圖)到調試出樣機的整個過程。在各環(huán)節(jié)應注意哪些問題?
11 用邏輯門和cmos電路實現(xiàn)ab+cd
12 用一個二選一mux和一個inv實現(xiàn)異或
13 給了reg的setup,hold時間,求中間組合邏輯的delay范圍。
14 如何解決亞穩(wěn)態(tài)
15 用verilog/vhdl寫一個fifo控制器
16 用verilog/vddl檢測stream中的特定字符串
17 用mos管搭出一個二輸入與非門。
18 集成電路前段設計流程,寫出相關的工具。
19 名詞IRQ,BIOS,USB,VHDL,SDR
20 unix 命令cp -r, rm,uname
21 用波形表示D觸發(fā)器的功能
22 寫異步D觸發(fā)器的verilog module
23 What is PC Chipset?
24 用傳輸門和反向器搭一個邊沿觸發(fā)器
25 畫狀態(tài)機,接受1,2,5分錢的賣報機,每份報紙5分錢
=================================================
答案
1 什么是Setup 和Holdup時間?
建立時間(Setup Time)和保持時間(Hold time)。建立時間是指在時鐘邊沿前,數(shù)據(jù)信號需要保持不變的時間。保持時間是指時鐘跳變邊沿后數(shù)據(jù)信號需要保持不變的時間。見圖1。
如果不滿足建立和保持時間的話,那么DFF將不能正確地采樣到數(shù)據(jù),將會出現(xiàn)metastability的情況。
如果數(shù)據(jù)信號在時鐘沿觸發(fā)前后持續(xù)的時間均超過建立和保持時間,那么超過量就分別被稱為建立時間裕量和保持時間裕量。
圖1 建立時間和保持時間示意圖
2什么是競爭與冒險現(xiàn)象?怎樣判斷?如何消除?
在組合邏輯中,由于門的輸入信號通路中經(jīng)過了不同的延時,導致到達該門的時間不一致叫競爭。
產生毛刺叫冒險。
如果布爾式中有相反的信號則可能產生競爭和冒險現(xiàn)象。
解決方法:一是添加布爾式的消去項,二是在芯片外部加電容。
3 用D觸發(fā)器實現(xiàn)2倍分頻的邏輯電路?
Verilog描述:
module divide2( clk , clk_o, reset);
input clk , reset;
output clk_o;
wire in;
reg out ;
always @ ( posedge clk or posedge reset)
if ( reset)
out <= 0;
else
out <= in;
assign in = ~out;
assign clk_o = out;
endmodule
圖形描述:
4 什么是"線與"邏輯,要實現(xiàn)它,在硬件特性上有什么具體要求?
線與邏輯是兩個輸出信號相連可以實現(xiàn)與的功能。在硬件上,要用oc門來實現(xiàn),由于不用oc門可能使灌電流過大,而燒壞邏輯門。
同時在輸出端口應加一個上拉電阻。
5 什么是同步邏輯和異步邏輯?
同步邏輯是時鐘之間有固定的因果關系。
異步邏輯是各時鐘之間沒有固定的因果關系。
6 請畫出微機接口電路中,典型的輸入設備與微機接口邏輯示意圖(數(shù)據(jù)接口、控制接口、所存器/緩沖器)。
7 你知道那些常用邏輯電平?TTL與COMS電平可以直接互連嗎?
12,5,3.3
TTL和CMOS不可以直接互連,由于TTL是在0.3-3.6V之間,而CMOS則是有在12V的有在5V的。CMOS輸出接到TTL是可以直接互連。TTL接到CMOS需要在輸出端口加一上拉電阻接到5V或者12V。
8 可編程邏輯器件在現(xiàn)代電子設計中越來越重要,請問:你所知道的可編程邏輯器件有哪些?
PAL,PLD,CPLD,FPGA。
9 試用VHDL或VERILOG、ABLE描述8位D觸發(fā)器邏輯。
module dff8(clk , reset, d, q);
input clk;
input reset;
input [7:0] d;
output [7:0] q;
reg [7:0] q;
always @ (posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
endmodule
10 設想你將設計完成一個電子電路方案。請簡述用EDA軟件(如PROTEL)進行設計(包
括原理圖和PCB圖)到調試出樣機的整個過程。在各環(huán)節(jié)應注意哪些問題?
電源的穩(wěn)定上,電容的選取上,以及布局的大小。
11 用邏輯門和cmos電路實現(xiàn)ab+cd
12 用一個二選一mux和一個inv實現(xiàn)異或
13 給了reg的setup,hold時間,求中間組合邏輯的delay范圍。
Delay < period - setup - hold
14 如何解決亞穩(wěn)態(tài)
亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定時間段內達到一個可確認的狀態(tài)。當一個觸發(fā)器進入亞穩(wěn)態(tài)時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩(wěn)定在某個正確的電平上。在這個穩(wěn)定期間,觸發(fā)器輸出一些中間級電平,或者可能處于振蕩狀態(tài),并且這種無用的輸出電平可以沿信號通道上的各個觸發(fā)器級聯(lián)式傳播下去。
15 用verilog/vhdl寫一個fifo控制器
包括空,滿,半滿信號。
16 用verilog/vddl檢測stream中的特定字符串
分狀態(tài)用狀態(tài)機寫。
17 用mos管搭出一個二輸入與非門。
18 集成電路前段設計流程,寫出相關的工具。
19 名詞IRQ,BIOS,USB,VHDL,SDR
IRQ: Interrupt ReQuest
BIOS: Basic Input Output System
USB: Universal Serial Bus
VHDL: VHIC Hardware Description Language
SDR: Single Data Rate
20 unix 命令cp -r,rm,uname
21 用波形表示D觸發(fā)器的功能
22 寫異步D觸發(fā)器的verilog module
module dff8(clk , reset, d, q);
input clk;
input reset;
input d;
output q;
reg q;
always @ (posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
endmodule
23 What is PC Chipset?
芯片組(Chipset)是主板的核心組成部分,按照在主板上的排列位置的不同,通常分為北橋芯片和南橋芯片。北橋芯片提供對CPU的類型和主頻、內存的類型和最大容量、ISA/PCI/AGP插槽、ECC糾錯等支持。南橋芯片則提供對KBC(鍵盤控制器)、RTC(實時時鐘控制器)、USB(通用串行總線)、Ultra DMA/33(66)EIDE數(shù)據(jù)傳輸方式和ACPI(高級能源管理)等的支持。其中北橋芯片起著主導性的作用,也稱為主橋(Host Bridge)。
除了最通用的南北橋結構外,目前芯片組正向更高級的加速集線架構發(fā)展,Intel的8xx系列芯片組就是這類芯片組的代表,它將一些子系統(tǒng)如IDE接口、音效、MODEM和USB直接接入主芯片,能夠提供比PCI總線寬一倍的帶寬,達到了266MB/s。
24 用傳輸門和反向器搭一個邊沿觸發(fā)器
25 畫狀態(tài)機,接受1,2,5分錢的賣報機,每份報紙5分錢
2
這段時間去面試了幾家公司,發(fā)現(xiàn)比較大的公司相對于重視基礎問題。這里邊又有幾個問題特別的突出。他們是:同步時鐘設計、亞穩(wěn)態(tài)、異步FIFO?梢哉f,這些個問題要是弄清楚了,就至少滿足了技術方面1/3的要求,另外的2/3是什么,我就說不清楚了。又有人發(fā)了競爭冒險毛刺的問題,不過,對于采用同步設計方法的系統(tǒng),這些問題一般不會遇到。下面就談談我對這些問題的看法,要是你覺得看這些東西覺得類似一堆狗屎,那么恭喜你,你面試成功的機會增加了1/3;要是你你覺得阿,什么樣的牛人拉了一堆牛屎,那么不好意思,還是再去補補課把。這里推薦一本《數(shù)字設計——原理和實踐》(John F.Wakerly)的書,仔細看一遍吧。
同步時鐘設計 簡單說就是一個系統(tǒng)中(或系統(tǒng)中的一部分)都采用同一個時鐘觸發(fā)。系統(tǒng)中的(D)觸發(fā)器全部都連接到一個時鐘,而且只控制觸發(fā)器的同步端(輸入,同步置位,同步復位)。這樣的系統(tǒng)是相對于異步系統(tǒng)而言的,異步系統(tǒng)并不是不同的觸發(fā)器時鐘端連接到不同的時鐘信號的系統(tǒng)(一般的這樣叫做跨時鐘系統(tǒng),是相對幾個較小的同步系統(tǒng)的組合),而是更本沒有了時鐘的概念,依靠和觸發(fā)器構造一樣的反饋電路組成。相對于異步系統(tǒng),同步系統(tǒng)更好設計(異步設計則象一個魔術,類似于匯編和高級語言的關系),更容易進行時序分析(為什么要用D觸發(fā)器而不用D鎖存器)——在這里組合邏輯的競爭冒險毛刺問題都不存在了。應該說,同步系統(tǒng)最大的問題在于時鐘的偏斜(skew)。同步時鐘系統(tǒng)也存在一些涉及的技巧,這些技巧一般圍繞著降低關鍵路徑的延時和時間和空間的平衡。這些都是平衡的藝術(了解了基本的部件之后,剩下的工作就是一個字"平衡"),這里邊的方法就太具體,而且本人也知道得不多,不敢亂說了。不過,只要你用過一種方法,就可以體會到其中的精神了。
亞穩(wěn)態(tài) 這是跨時鐘設計中最基礎的一個問題(宏觀的問題是FIFO),按照我的觀察,上論壇問問題多的一般不明白這個,請一定要注意了。 什么是亞穩(wěn)態(tài)?數(shù)字電路中的簡單雙穩(wěn)態(tài)電路就是兩個反相器首尾相連組成(加一些控制邏輯變成了鎖存器,觸發(fā)器),然而并不像名字顯示的,這種電路其實還有第三種半穩(wěn)定態(tài)——就是當兩個反相器都處于中間值得情況——這稱之為亞穩(wěn)態(tài)。我們知道反相器在非邏輯值范圍的反饋系數(shù)是相當大的,一旦因為干擾或者噪音離開了這個中心點,就會很快地進入邏輯值范圍(穩(wěn)態(tài))。數(shù)學分析,從亞穩(wěn)態(tài)進入穩(wěn)態(tài),正如放射元素的衰變,是一個指數(shù)的規(guī)律(為什么是指數(shù)的規(guī)律?你要是想不明白,說明你還沒有搞明白亞穩(wěn)態(tài))。那么,亞穩(wěn)態(tài)的危害到底是什么呢?消耗功率;),其實不是(雖然亞穩(wěn)態(tài)消耗很大的功率),亞穩(wěn)態(tài)的問題在于其電平并不處于有效邏輯電平范圍內,而且在變化。這就導致與其相連其他數(shù)字部件將其作出不同的判斷(注意,不同),有的作為'1',有的作為'0',有的也進入了亞穩(wěn)態(tài),數(shù)字部件就會邏輯混亂。那么究竟如何避免(或者減小)亞穩(wěn)態(tài)的危險呢?注意到亞穩(wěn)態(tài)的觸發(fā)器繼續(xù)停留在亞穩(wěn)態(tài)的幾率按照指數(shù)減少,那么辦法就是等——等足夠長的時間,直到這個幾率變得小的實際上不會發(fā)生。到底需要有多長呢?有的廠商有一個數(shù)據(jù),有的沒有,按照普通的做法,至少等一個時鐘周期——這也就是所謂的異步數(shù)據(jù)要用兩個觸發(fā)器打一下。這一段有點糊涂,不容易說明白,你看了要是覺得云里霧里,不知所云,那們你只有找一本書學習了;要是覺得作者表達不清,那么恭喜你,面試通過了的幾率增加了。關于這個問題有很多糊涂的認識,要是你的主考官和你爭論,你就順著他的意思,畢竟沒有人想找一個管教不了的手下。
異步FIFO 異步FIFO是跨時鐘域設計方法的集中體現(xiàn),體現(xiàn)了很多的方法。不過,其中最重要的有兩點,一個就是亞穩(wěn)態(tài),一個就是和亞穩(wěn)態(tài)類似但不相同的——多個控制/狀態(tài)信號的跨時鐘傳遞。具體地說,就是當你把一組信號傳遞到另外一個時鐘域的話,這一組信號可能因為延遲不同,這樣到達新時鐘域之后,得到的數(shù)據(jù)相差一個老時鐘域的時鐘周期。興好,對于FIFO,需要傳遞的是一個計數(shù)器,這個計數(shù)器可以編碼成格雷碼(graycode),這樣的編碼每次只變化一個位,正好解決了上面的問題(要是沒有畫過圖,最好畫一個圖看一下)。真不清楚這是怎么發(fā)明的!注意,這里其實還對格雷碼的相對延遲和相關的時鐘周期有一個要求。這就是異步FIFO中最關鍵的一點,至于指針如何控制,稍微考慮一下都很容易清楚。需要注意的事,這些東西不是用嘴能說清楚的,最好畫一個示意圖,不要因為沒有說清楚,讓主考官覺得你沒有清楚。
當然,除此之外還有很多很多的東西。比如組合邏輯的設計技巧,俺就沒有研究。比如高速布線信號完整性問題,俺也不敢多說。至于整個系統(tǒng)的設計思想,更不敢妄語。不過如果只要你有一個問題了解到了相當?shù)纳疃龋嘈拍愫苋菀赘闱宄渌麊栴}
FPGA與CPLD內部結構區(qū)別? CPLD
以altraMAX7000這種PLD為例,可分為三塊結構:宏單元(Marocell),可編程連線(PIA)和I/O控制塊。宏單元是PLD的基本結構,由它來實現(xiàn)基本的邏輯功能?删幊踢B線負責信號傳遞,連接所有的宏單元。I/O控制塊負責輸入輸出的電氣特性控制,比如可以設定集電極開路輸出,擺率控制,三態(tài)輸出等。
這種基于乘積項(實際就是與或陣列)的PLD基本都是由EEPROM和Flash工藝制造的,一上電就可以工作,無需其他芯片配合。布線方式是全局的,所以延時可預測。CPLD適合做邏輯設計。
FPGA
FPGA基于LUT,LUT本質上就是一個RAM,每一個LUT可以看成一個有4位地址線的16x1的RAM。這也是為什么FPGA需要外接一個rom來上電配置。
以xilinx的Spartan-II為例,主要包括CLBs,I/O塊,RAM塊和可編程連線。在spartan-II中,一個CLB包括2個Slices,每個slices包括兩個LUT,兩個觸發(fā)器和相關邏輯。 Slices可以看成是SpartanII實現(xiàn)邏輯的最基本結構。
FPGA的制造工藝確定了FPGA芯片中包含的LUT和觸發(fā)器的數(shù)量非常多,往往都是幾千上萬,PLD一般只能做到512個邏輯單元,而且如果用芯片價格除以邏輯單元數(shù)量,F(xiàn)PGA的平均邏輯單元成本大大低于PLD。 所以如果設計中使用到大量觸發(fā)器,例如設計一個復雜的時序邏輯,那么使用FPGA就是一個很好選擇。
2.Latch和Register區(qū)別?行為描述中Latch如何產生?
本質的區(qū)別在于:latch是電平觸發(fā),reg是邊沿觸發(fā)。時序設計中盡量使用reg觸發(fā)。
行為描述中,如果對應所有可能輸入條件,有的輸入沒有對應明確的輸出,系統(tǒng)會綜合出latch。
比如:always@( a orb) //缺少else語句
begin
if(a==1)
q <=b;
end
3.對競爭冒險的理解,以及如何消除?
在組合邏輯中,由于門的輸入信號通路中經(jīng)過了不同的延時,導致到達該門的時間不一致叫競爭。產生毛刺叫冒險。如果布爾式中有相反的信號則可能產生競爭和冒險現(xiàn)象。解決方法:一是添加布爾式的消去項,二是在芯片外部加電容。
4.用Verilog設計一個5分頻器。
5分頻,奇數(shù)分頻都可以類似這么做,只需要改div1和div2的參數(shù)。div1為奇數(shù)分頻除2的余數(shù)。采用上升延和下降延分別觸發(fā)不同波形,最后疊加的方式產生奇數(shù)分頻。
module divfreq(clk, clk1x, rst, clk1xpose, clk1xnege, coutpose, coutnege);
input clk;
input rst;
output clk1x;
output clk1xpose;
output clk1xnege;
output[2:0] coutpose;
output[2:0] coutnege;
reg clk1xpose;
reg clk1xnege;
reg[2:0] coutpose;
reg[2:0] coutnege;
parameter div1 = 2 , div2 = 4; // div1 = 5 / 2, div2 = 5 - 1
assign clk1x = clk1xpose | clk1xnege;
always@(posedge clk or negedge rst)
begin
if(!rst)
clk1xpose = 0;
else if(coutpose == div1)
clk1xpose = ~clk1xpose;
else if(coutpose == div2)
clk1xpose = ~clk1xpose;
else
clk1xpose = clk1xpose;
end
always@(negedge clk or negedge rst)
begin
if(!rst)
clk1xnege = 0;
else if(coutnege == div1)
clk1xnege = ~clk1xnege;
else if(coutnege == div2)
clk1xnege = ~clk1xnege;
else
clk1xnege = clk1xnege;
end
always@(posedge clk or negedge rst)
begin
if(!rst)
coutpose = 0;
else if(coutpose == div2)
coutpose = 0;
else
coutpose = coutpose + 1;
end
always@(negedge clk or negedge rst)
begin
if(!rst)
coutnege = 0;
else if(coutnege == div2)
coutnege = 0;
else
coutnege = coutnege + 1;
end
endmodule
1:什么是同步邏輯和異步邏輯?(漢王)
同步邏輯是時鐘之間有固定的因果關系。異步邏輯是各時鐘之間沒有固定的因果關系。 答案應該與上面問題一致
〔補充〕:同步時序邏輯電路的特點:各觸發(fā)器的時鐘端全部連接在一起,并接在系統(tǒng)時鐘端,只有當時鐘脈沖到來時,電路的狀態(tài)才能改變。改變后的狀態(tài)將一直保持到下一個時鐘脈沖的到來,此時無論外部輸入 x 有無變化,狀態(tài)表中的每個狀態(tài)都是穩(wěn)定的。
異步時序邏輯電路的特點:電路中除可以使用帶時鐘的觸發(fā)器外,還可以使用不帶時鐘的觸發(fā)器和延遲元件作為存儲元件,電路中沒有統(tǒng)一的時鐘,電路狀態(tài)的改變由外部輸入的變化直接引起。
2:同步電路和異步電路的區(qū)別:
同步電路:存儲電路中所有觸發(fā)器的時鐘輸入端都接同一個時鐘脈沖源,因而所有觸發(fā)器的狀態(tài)的變化都與所加的時鐘脈沖信號同步。
異步電路:電路沒有統(tǒng)一的時鐘,有些觸發(fā)器的時鐘輸入端與時鐘脈沖源相連,這有這些觸發(fā)器的狀態(tài)變化與時鐘脈沖同步,而其他的觸發(fā)器的狀態(tài)變化不與時鐘脈沖同步。
3:時序設計的實質:
電路設計的難點在時序設計,時序設計的實質就是滿足每一個觸發(fā)器的建立/保持時間的而要求。
4:建立時間與保持時間的概念?
建立時間:觸發(fā)器在時鐘上升沿到來之前,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的時間。
保持時間:觸發(fā)器在時鐘上升沿到來之后,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的時間。
不考慮時鐘的skew,D2的建立時間不能大于(時鐘周期T - D1數(shù)據(jù)最遲到達時間T1max+T2max);保持時間不能大于(D1數(shù)據(jù)最快到達時間T1min+T2min);否則D2的數(shù)據(jù)將進入亞穩(wěn)態(tài)并向后級電路傳播
(修改)
5:為什么觸發(fā)器要滿足建立時間和保持時間?
因為觸發(fā)器內部數(shù)據(jù)的形成是需要一定的時間的,如果不滿足建立和保持時間,觸發(fā)器將進入亞穩(wěn)態(tài),進入亞穩(wěn)態(tài)后觸發(fā)器的輸出將不穩(wěn)定,在0和1之間變化,這時需要經(jīng)過一個恢復時間,其輸出才能穩(wěn)定,但穩(wěn)定后的值并不一定是你的輸入值。這就是為什么要用兩級觸發(fā)器來同步異步輸入信號。這樣做可以防止由于異步輸入信號對于本級時鐘可能不滿足建立保持時間而使本級觸發(fā)器產生的亞穩(wěn)態(tài)傳播到后面邏輯中,導致亞穩(wěn)態(tài)的傳播。
(比較容易理解的方式)換個方式理解:需要建立時間是因為觸發(fā)器的D段像一個鎖存器在接受數(shù)據(jù),為了穩(wěn)定的設置前級門的狀態(tài)需要一段穩(wěn)定時間;需要保持時間是因為在時鐘沿到來之后,觸發(fā)器要通過反饋來所存狀態(tài),從后級門傳到前級門需要時間。
6:什么是亞穩(wěn)態(tài)?為什么兩級觸發(fā)器可以防止亞穩(wěn)態(tài)傳播?
這也是一個異步電路同步化的問題,具體的可以參考《EDACN技術月刊20050401》。
亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定的時間段內到達一個可以確認的狀態(tài)。使用兩級觸發(fā)器來使異步電路同步化的電路其實叫做“一步同位器”,他只能用來對一位異步信號進行同步。兩級觸發(fā)器可防止亞穩(wěn)態(tài)傳播的原理:假設第一級觸發(fā)器的輸入不滿足其建立保持時間,它在第一個脈沖沿到來后輸出的數(shù)據(jù)就為亞穩(wěn)態(tài),那么在下一個脈沖沿到來之前,其輸出的亞穩(wěn)態(tài)數(shù)據(jù)在一段恢復時間后必須穩(wěn)定下來,而且穩(wěn)定的數(shù)據(jù)必須滿足第二級觸發(fā)器的建立時間,如果都滿足了,在下一個脈沖沿到來時,第二級觸發(fā)器將不會出現(xiàn)亞穩(wěn)態(tài),因為其輸入端的數(shù)據(jù)滿足其建立保持時間。同步器有效的條件:第一級觸發(fā)器進入亞穩(wěn)態(tài)后的恢復時間+第二級觸發(fā)器的建立時間<=時鐘周期。
更確切地說,輸入脈沖寬度必須大于同步時鐘周期與第一級觸發(fā)器所需的保持時間之和。最保險的脈沖寬度是兩倍同步時鐘周期。 所以,這樣的同步電路對于從較慢的時鐘域來的異步信號進入較快的時鐘域比較有效,對于進入一個較慢的時鐘域,則沒有作用 。
7:系統(tǒng)最高速度計算(最快時鐘頻率)和流水線設計思想:
同步電路的速度是指同步系統(tǒng)時鐘的速度,同步時鐘愈快,電路處理數(shù)據(jù)的時間間隔越短,電路在單位時間內處理的數(shù)據(jù)量就愈大。假設Tco是觸發(fā)器的輸入數(shù)據(jù)被時鐘打入到觸發(fā)器到數(shù)據(jù)到達觸發(fā)器輸出端的延時時間;Tdelay是組合邏輯的延時;Tsetup是D觸發(fā)器的建立時間。假設數(shù)據(jù)已被時鐘打入D觸發(fā)器,那么數(shù)據(jù)到達第一個觸發(fā)器的Q輸出端需要的延時時間是Tco,經(jīng)過組合邏輯的延時時間為Tdelay,然后到達第二個觸發(fā)器的D端,要希望時鐘能在第二個觸發(fā)器再次被穩(wěn)定地打入觸發(fā)器,則時鐘的延遲必須大于Tco+Tdelay+Tsetup,也就是說最小的時鐘周期Tmin =Tco+Tdelay+Tsetup,即最快的時鐘頻率Fmax =1/Tmin。FPGA開發(fā)軟件也是通過這種方法來計算系統(tǒng)最高運行速度Fmax。因為Tco和Tsetup是由具體的器件工藝決定的,故設計電路時只能改變組合邏輯的延遲時間Tdelay,所以說縮短觸發(fā)器間組合邏輯的延時時間是提高同步電路速度的關鍵所在。由于一般同步電路都大于一級鎖存,而要使電路穩(wěn)定工作,時鐘周期必須滿足最大延時要求。故只有縮短最長延時路徑,才能提高電路的工作頻率。可以將較大的組合邏輯分解為較小的N塊,通過適當?shù)姆椒ㄆ骄峙浣M合邏輯,然后在中間插入觸發(fā)器,并和原觸發(fā)器使用相同的時鐘,就可以避免在兩個觸發(fā)器之間出現(xiàn)過大的延時,消除速度瓶頸,這樣可以提高電路的工作頻率。這就是所謂"流水線"技術的基本設計思想,即原設計速度受限部分用一個時鐘周期實現(xiàn),采用流水線技術插入觸發(fā)器后,可用N個時鐘周期實現(xiàn),因此系統(tǒng)的工作速度可以加快,吞吐量加大。注意,流水線設計會在原數(shù)據(jù)通路上加入延時,另外硬件面積也會稍有增加。
8:時序約束的概念和基本策略?
時序約束主要包括周期約束,偏移約束,靜態(tài)時序路徑約束三種。通過附加時序約束可以綜合布線工具調整映射和布局布線,是設計達到時序要求。
附加時序約束的一般策略是先附加全局約束,然后對快速和慢速例外路徑附加專門約束。附加全局約束時,首先定義設計的所有時鐘,對各時鐘域內的同步元件進行分組,對分組附加周期約束,然后對FPGA/CPLD輸入輸出PAD附加偏移約束、對全組合邏輯的PAD TO PAD路徑附加約束。附加專門約束時,首先約束分組之間的路徑,然后約束快、慢速例外路徑和多周期路徑,以及其他特殊路徑。
9:附加約束的作用?
作用:1:提高設計的工作頻率(減少了邏輯和布線延時);2:獲得正確的時序分析報告;(靜態(tài)時序分析工具以約束作為判斷時序是否滿足設計要求的標準,因此要求設計者正確輸入約束,以便靜態(tài)時序分析工具可以正確的輸出時序報告)3:指定FPGA/CPLD的電氣標準和引腳位置。
10:FPGA設計工程師努力的方向:
SOPC,高速串行I/O,低功耗,可靠性,可測試性和設計驗證流程的優(yōu)化等方面。隨著芯片工藝的提高,芯片容量、集成度都在增加,FPGA設計也朝著高速、高度集成、低功耗、高可靠性、高可測、可驗證性發(fā)展。芯片可測、可驗證,正在成為復雜設計所必備的條件,盡量在上板之前查出bug,將發(fā)現(xiàn)bug的時間提前,這也是一些公司花大力氣設計仿真平臺的原因。另外隨著單板功能的提高、成本的壓力,低功耗也逐漸進入FPGA設計者的考慮范圍,完成相同的功能下,考慮如何能夠使芯片的功耗最低,據(jù)說altera、xilinx都在根據(jù)自己的芯片特點整理如何降低功耗的文檔。高速串行IO的應用,也豐富了FPGA的應用范圍,象xilinx的v2pro中的高速鏈路也逐漸被應用。 總之,學無止境,當掌握一定概念、方法之后,就要開始考慮FPGA其它方面的問題了。
11:對于多位的異步信號如何進行同步?
對以一位的異步信號可以使用“一位同步器進行同步”,而對于多位的異步信號,可以采用如下方法:1:可以采用保持寄存器加握手信號的方法(多數(shù)據(jù),控制,地址);2:特殊的具體應用電路結構,根據(jù)應用的不同而不同 ;3:異步FIFO。(最常用的緩存單元是DPRAM)
12:FPGA和CPLD的區(qū)別?
FPGA是可編程ASIC。
ASIC:專用集成電路,它是面向專門用途的電路,專門為一個用戶設計和制造的。根據(jù)一個用戶的特定要求,能以低研制成本,短、交貨周期供貨的全定制,半定制集成電路。與門陣列等其它ASIC(Application Specific IC)相比,它們又具有設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進、標準產品無需測試、質量穩(wěn)定以及可實時在線檢驗等優(yōu)點。
| CPLD | FPGA |
內部結構 | Product-term | Look-up Table |
程序存儲 | 內部EEPROM | SRAM,外掛EEPROM |
資源類型 | 組合電路資源豐富 | 觸發(fā)器資源豐富 |
集成度 | 低 | 高 |
使用場合 | 完成控制邏輯 | 能完成比較復雜的算法 |
速度 | 慢 | 快 |
其他資源 | - | PLL、RAM和乘法器等 |
保密性 | 可加密 | 一般不能保密 |
13:鎖存器(latch)和觸發(fā)器(flip-flop)區(qū)別?
電平敏感的存儲期間稱為鎖存器?煞譃楦唠娖芥i存器和低電平鎖存器,用于不同時鐘之間的信號同步。
有交叉耦合的門構成的雙穩(wěn)態(tài)的存儲原件稱為觸發(fā)器。分為上升沿觸發(fā)和下降沿觸發(fā)?梢哉J為是兩個不同電平敏感的鎖存器串連而成。前一個鎖存器決定了觸發(fā)器的建立時間,后一個鎖存器則決定了保持時間。
14:FPGA芯片內有哪兩種存儲器資源?
FPGA芯片內有兩種存儲器資源:一種叫block ram,另一種是由LUT配置成的內部存儲器(也就是分布式ram)。Block ram由一定數(shù)量固定大小的存儲塊構成的,使用BLOCKRAM資源不占用額外的邏輯資源,并且速度快。但是使用的時候消耗的BLOCKRAM資源是其塊大小的整數(shù)倍。
15:什么是時鐘抖動?
時鐘抖動是指芯片的某一個給定點上時鐘周期發(fā)生暫時性變化,也就是說時鐘周期在不同的周期上可能加長或縮短。它是一個平均值為0的平均變量。
16:FPGA設計中對時鐘的使用?(例如分頻等)
FPGA芯片有固定的時鐘路由,這些路由能有減少時鐘抖動和偏差。需要對時鐘進行相位移動或變頻的時候,一般不允許對時鐘進行邏輯操作,這樣不僅會增加時鐘的偏差和抖動,還會使時鐘帶上毛刺。一般的處理方法是采用FPGA芯片自帶的時鐘管理器如PLL,DLL或DCM,或者把邏輯轉換到觸發(fā)器的D輸入(這些也是對時鐘邏輯操作的替代方案)。
17:FPGA設計中如何實現(xiàn)同步時序電路的延時?
首先說說異步電路的延時實現(xiàn):異步電路一半是通過加buffer、兩級與非門等(我還沒用過所以也不是很清楚),但這是不適合同步電路實現(xiàn)延時的。在同步電路中,對于比較大的和特殊要求的延時,一半通過高速時鐘產生計數(shù)器,通過計數(shù)器來控制延時;對于比較小的延時,可以通過觸發(fā)器打一拍,不過這樣只能延遲一個時鐘周期。
18:FPGA中可以綜合實現(xiàn)為RAM/ROM/CAM的三種資源及其注意事項?
三種資源:block ram;觸發(fā)器(FF),查找表(LUT);
注意事項:1:在生成RAM等存儲單元時,應該首選block ram 資源;其原因有二:第一:使用block ram等資源,可以節(jié)約更多的FF和4-LUT等底層可編程單元。使用block ram可以說是“不用白不用”,是最大程度發(fā)揮器件效能,節(jié)約成本的一種體現(xiàn);第二:blockram是一種可以配置的硬件結構,其可靠性和速度與用LUT和register構建的存儲器更有優(yōu)勢。2:弄清FPGA的硬件結構,合理使用block ram資源;3:分析block ram容量,高效使用block ram資源;4:分布式ram資源(distribute ram)
19:Xilinx中與全局時鐘資源和DLL相關的硬件原語:
常用的與全局時鐘資源相關的Xilinx器件原語包括:IBUFG,IBUFGDS,BUFG,BUFGP,BUFGCE,BUFGMUX,BUFGDLL,DCM等。關于各個器件原語的解釋可以參考《FPGA設計指導準則》p50部分。
20:HDL語言的層次概念?
HDL語言是分層次的、類型的,最常用的層次概念有系統(tǒng)與標準級、功能模塊級,行為級,寄存器傳輸級和門級。
21:查找表的原理與結構?
查找表(look-up-table)簡稱為LUT,LUT本質上就是一個RAM。目前FPGA中多使用4輸入的LUT,所以每一個LUT可以看成一個有4位地址線的16x1的RAM。 當用戶通過原理圖或HDL語言描述了一個邏輯電路以后,PLD/FPGA開發(fā)軟件會自動計算邏輯電路的所有可能的結果,并把結果事先寫入RAM,這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應的內容,然后輸出即可
22:ic設計前端到后端的流程和eda工具?
設計前端也稱邏輯設計,后端設計也稱物理設計,兩者并沒有嚴格的界限,一般涉及到與工藝有關的設計就是后端設計。
1:規(guī)格制定:客戶向芯片設計公司提出設計要求。
2:詳細設計:芯片設計公司(Fabless)根據(jù)客戶提出的規(guī)格要求,拿出設計解決方案和具體實現(xiàn)架構,劃分模塊功能。目前架構的驗證一般基于systemC語言,對價后模型的仿真可以使用systemC的仿真工具。例如:CoCentric和Visual Elite等。
3:HDL編碼:設計輸入工具:ultra ,visual VHDL等
4:仿真驗證:modelsim
5:邏輯綜合:synplify
6:靜態(tài)時序分析:synopsys的Prime Time
7:形式驗證:Synopsys的Formality.
23:寄生效應在ic設計中怎樣加以克服和利用(這是我的理解,原題好像是說,ic設計過
程中將寄生效應的怎樣反饋影響設計師的設計方案)?
24:用filp-flop和logic-gate設計一個1位加法器,輸入carryin和current-stage,輸出
carryout和next-stage?
process(sig_intel)
begin
case sig_intel is
when "000" => carryout <= '0';
next_state <= '0';
when "001" => carryout <= '1';
next_state <= '0';
when "010" => carryout <= '1';
next_state <= '0';
when "011" => carryout <= '0';
next_state <= '1';
when "100" => carryout <= '1';
next_state <= '0';
when "101" => carryout <= '0';
next_state <= '1';
when "110" => carryout <= '0';
next_state <= '1';
when "111" => carryout <= '1';
next_state <= '1';
when thers => carryout <= 'X';
next_state <= 'X';
end case;
endprocess;
25:設計一個自動飲料售賣機,飲料10分錢,硬幣有5分和10分兩種,并考慮找零,
1.畫出fsm(有限狀態(tài)機)
2.用verilog編程,語法要符合fpga設計的要求
3.設計工程中可使用的工具及設計大致過程?
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitydrink_auto_sale is
port(clk: in std_logic;
reset:in std_logic;
sw101:in std_logic;
sw102:in std_logic;
buy : out std_logic;
back: out std_logic);
enddrink_auto_sale;
architectureBehavioral of drink_auto_sale is
typestate_type is(st0,st1);
signalcs ,ns : state_type;
begin
process(clk,reset)
begin
if(reset = '1') then
cs <= st0;
elsif(clk'event and clk = '1') then
cs <= ns;
end if;
endprocess;
process(reset,cs)
begin
case cs is
when st0 => if( sw101 = '1') then
ns <= st1;
buy<= '0';
back<= '0';
elsif(sw102 = '1') then
ns <= st0;
buy<= '1';
back <= '0';
else
ns <= st0 ;
buy <= '0';
back <= '0';
end if;
when st1 => if(sw101 = '1') then
ns <= st0;
buy <= '1';
back <= '0';
elsif(sw102 = '1') then
ns <= st0;
buy <= '1';
back <= '1';
end if;
when thers => ns <= st0;
buy<= '0';
back <= '0';
end case;
endprocess;
endBehavioral;
設計過程:設定三個狀態(tài):0分,5分;當狀態(tài)為0分時,接收到5分信號脈沖后轉為5分;接收到10分信號脈沖時,轉到0分狀態(tài),同時彈出飲料,不找零;狀態(tài)為5分時,接受到5分信號,彈出飲料,不找零,返回0分狀態(tài);當接受到10分狀態(tài)時,彈出飲料,找零,并返回零分狀態(tài)。
所用設計工具:ISE7.1,modelsim,synplify
(不知道為什么上面的狀態(tài)機設計在synplify的RTL view中沒能看到狀態(tài)機流程圖,所以狀態(tài)轉移圖就沒畫)。
26:什么是"線與"邏輯,要實現(xiàn)它,在硬件特性上有什么具體要求?
線與邏輯是兩個輸出信號相連可以實現(xiàn)與的功能。在硬件上,要用oc門來實現(xiàn),由于不用 oc門可能使灌電流過大,而燒壞邏輯門. 同時在輸出端口應加一個上拉電阻。Oc門就是集電極開路門。
27:什么是競爭與冒險現(xiàn)象?怎樣判斷?如何消除?
在組合電路中,某一輸入變量經(jīng)過不同途徑傳輸后,到達電路中某一匯合點的時間有先有后,這種現(xiàn)象稱競爭;由于競爭而使電路輸出發(fā)生瞬時錯誤的現(xiàn)象叫做冒險。(也就是由于競爭產生的毛刺叫做冒險)。判斷方法:代數(shù)法(如果布爾式中有相反的信號則可能產生競爭和冒險現(xiàn)象);卡諾圖:有兩個相切的卡諾圈并且相切處沒有被其他卡諾圈包圍,就有可能出現(xiàn)競爭冒險;實驗法:示波器觀測;
解決方法:1:加濾波電路,消除毛刺的影響;2:加選通信號,避開毛刺;3:增加冗余項消除邏輯冒險。
28:你知道那些常用邏輯電平?TTL與COMS電平可以直接互連嗎?
常用邏輯電平:TTL、CMOS、LVTTL、LVCMOS、ECL(Emitter Coupled Logic)、PECL(Pseudo/Positive EmitterCoupled Logic)、LVDS(Low Voltage Differential Signaling)、GTL(Gunning Transceiver Logic)、BTL(Backplane Transceiver Logic)、ETL(enhanced transceiver logic)、GTLP(Gunning Transceiver LogicPlus);RS232、RS422、RS485(12V,5V,3.3V);也有一種答案是:常用邏輯電平:12V,5V,3.3V。TTL和CMOS不可以直接互連,由于TTL是在0.3-3.6V之間,而CMOS則是有在12V的有在5V的。CMOS輸出接到TTL是可以直接互連。TTL接到CMOS需要在輸出端口加一上拉電阻接到5V或者12V。
cmos的高低電平分別為:Vih>=0.7VDD,Vil<=0.3VDD;Voh>=0.9VDD,Vol<=0.1VDD.
ttl的為:Vih>=2.0v,Vil<=0.8v;Voh>=2.4v,Vol<=0.4v.
用cmos可直接驅動ttl;加上拉電阻后,ttl可驅動cmos.
1、當TTL電路驅動COMS電路時,如果TTL電路輸出的高電平低于COMS電路的最低高電平(一般為3.5V),這時就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。
2、OC門電路必須加上拉電阻,以提高輸出的搞電平值。
3、為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。
4、在COMS芯片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產生降低輸入阻抗,提供泄荷通路。
5、芯片的管腳加上拉電阻來提高輸出電平,從而提高芯片輸入信號的噪聲容限增強抗干擾能力。
6、提高總線的抗電磁干擾能力。管腳懸空就比較容易接受外界的電磁干擾。
7、長線傳輸中電阻不匹配容易引起反射波干擾,加上下拉電阻是電阻匹配,有效的抑制反射波干擾。
上拉電阻阻值的選擇原則包括:
1、從節(jié)約功耗及芯片的灌電流能力考慮應當足夠大;電阻大,電流小。
2、從確保足夠的驅動電流考慮應當足夠小;電阻小,電流大。
3、對于高速電路,過大的上拉電阻可能邊沿變平緩。綜合考慮以上三點,通常在1k到10k之間選取。對下拉電阻也有類似道理。
OC門電路必須加上拉電阻,以提高輸出的搞電平值。
OC門電路要輸出“1”時才需要加上拉電阻不加根本就沒有高電平
在有時我們用OC門作驅動(例如控制一個 LED)灌電流工作時就可以不加上拉電阻
OC門可以實現(xiàn)“線與”運算
OC門就是 集電極 開路 輸出
總之加上拉電阻能夠提高驅動能力。
29:IC設計中同步復位與異步復位的區(qū)別?
同步復位在時鐘沿采復位信號,完成復位動作。異步復位不管時鐘,只要復位信號滿足條件,就完成復位動作。異步復位對復位信號要求比較高,不能有毛刺,如果其與時鐘關系不確定,也可能出現(xiàn)亞穩(wěn)態(tài)。
30:MOORE與MEELEY狀態(tài)機的特征?
Moore 狀態(tài)機的輸出僅與當前狀態(tài)值有關, 且只在時鐘邊沿到來時才會有狀態(tài)變化。
Mealy 狀態(tài)機的輸出不僅與當前狀態(tài)值有關, 而且與當前輸入值有關。
31:多時域設計中,如何處理信號跨時域?
不同的時鐘域之間信號通信時需要進行同步處理,這樣可以防止新時鐘域中第一級觸發(fā)器的亞穩(wěn)態(tài)信號對下級邏輯造成影響。信號跨時鐘域同步:當單個信號跨時鐘域時,可以采用兩級觸發(fā)器來同步;數(shù)據(jù)或地址總線跨時鐘域時可以采用異步fifo來實現(xiàn)時鐘同步;第三種方法就是采用握手信號。
32:說說靜態(tài)、動態(tài)時序模擬的優(yōu)缺點?
靜態(tài)時序分析是采用窮盡分析方法來提取出整個電路存在的所有時序路徑,計算信號在這些路徑上的傳播延時,檢查信號的建立和保持時間是否滿足時序要求,通過對最大路徑延時和最小路徑延時的分析,找出違背時序約束的錯誤。它不需要輸入向量就能窮盡所有的路徑,且運行速度很快、占用內存較少,不僅可以對芯片設計進行全面的時序功能檢查,而且還可利用時序分析的結果來優(yōu)化設計,因此靜態(tài)時序分析已經(jīng)越來越多地被用到數(shù)字集成電路設計的驗證中。
動態(tài)時序模擬就是通常的仿真,因為不可能產生完備的測試向量,覆蓋門級網(wǎng)表中的每一條路徑。因此在動態(tài)時序分析中,無法暴露一些路徑上可能存在的時序問題;
33:一個四級的Mux,其中第二級信號為關鍵信號如何改善timing.?
關鍵:將第二級信號放到最后輸出一級輸出,同時注意修改片選信號,保證其優(yōu)先級未被修改。(為什么?)
34:給出一個門級的圖,又給了各個門的傳輸延時,問關鍵路徑是什么,還問給出輸入,使得輸出依賴于關鍵路徑?
35:為什么一個標準的倒相器中P管的寬長比要比N管的寬長比大?
和載流子有關,P管是空穴導電,N管是電子導電,電子的遷移率大于空穴,同樣的電場下,N管的電流大于P管,因此要增大P管的寬長比,使之對稱,這樣才能使得兩者上升時間下降時間相等、高低電平的噪聲容限一樣、充電放電的時間相等。
36:用mos管搭出一個二輸入與非門?
<數(shù)字電子技術基礎>49頁
37:畫出NOT,NAND,NOR的符號,真值表,還有transistor level的電路?
省略
38:畫出CMOS的圖,畫出tow-to-one mux gate.(威盛VIA 2003.11.06上海筆試試題)?
39:用一個二選一mux和一個inv實現(xiàn)異或?
其中:B連接的是地址輸入端A和A非連接的是數(shù)據(jù)選擇端,F對應的的是輸出端,使能端固定接地置零(沒有畫出來).
40:畫出CMOS電路的晶體管級電路圖,實現(xiàn)Y=A*B+C(D+E).(仕蘭微電子)?
41:用與非門等設計全加法器?(華為)
《數(shù)字電子技術基礎》57頁。 ; .
42:A,B,C,D,E進行投票,多數(shù)服從少數(shù),輸出是F(也就是如果A,B,C,D,E中1的個數(shù)比0多,那么F輸出為1,否則F為0),用與非門實現(xiàn),輸入數(shù)目沒有限制?
F= ABC + ABD + ABE +ACD + ACE+ ADE + BCD + BCE + CDE + BDE
43:畫出一種CMOS的D鎖存器的電路圖和版圖?
44:LATCH和DFF的概念和區(qū)別?
45:latch與register的區(qū)別,為什么現(xiàn)在多用register.行為級描述中latch如何產生的?
latch是電平觸發(fā),register是邊沿觸發(fā),register在同一時鐘邊沿觸發(fā)下動作,符合同步電路的設計思想,而latch則屬于異步電路設計,往往會導致時序分析困難,不適當?shù)膽?/font>latch則會大量浪費芯片資源。
46:用D觸發(fā)器做個二分頻的電路?畫出邏輯電路?
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitytwo_de_fre is
port(clk: in std_logic;
reset:in std_logic;
clk_out: out std_logic) ;
endtwo_de_fre;
architectureBehavioral of two_de_fre is
signalsig_clk: std_logic;
begin
process(clk)
begin
if(reset = '1') then
sig_clk <= '0';
elsif(clk'event and clk = '1') then
sig_clk <= not sig_clk;
end if;
endprocess;
clk_out<= sig_clk;
endBehavioral;
顯示工程設計中一般不采用這樣的方式來設計,二分頻一般通過DCM來實現(xiàn)。通過DCM得到的分頻信號沒有相位差。
47:什么是狀態(tài)圖?
狀態(tài)圖是以幾何圖形的方式來描述時序邏輯電路的狀態(tài)轉移規(guī)律以及輸出與輸入的關系。
48:用你熟悉的設計方式設計一個可預置初值的7進制循環(huán)計數(shù)器,15進制的呢?
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entityseven_counter is
port(reset:in std_logic;
clk: in std_logic;
counter_out std_logic_vector(2 downto 0));
endseven_counter;
architectureBehavioral of seven_counter is
signalsig_counter : std_logic_vector(2 downto 0);
begin
process(reset,clk)
begin
if(reset = '1') then
sig_count <= "101" ; --初值為5
elsif(clk'event and clk = '1') then
sig_count <= sig_count + 1;
end if;
endprocess;
counter_out<=sig_counter;
endBehavioral;
15進制計數(shù)器設計只需將counter_out和sig_counter改為4位就行;
49:你所知道的可編程邏輯器件有哪些?
PAL,PLD,CPLD,FPGA
50:用VERILOG或VHDL寫一段代碼,實現(xiàn)消除一個glitch?
將傳輸過來的信號經(jīng)過兩級觸發(fā)器就可以消除毛刺。(這是我自己采用的方式:這種方式消除毛刺是需要滿足一定條件的,并不能保證一定可以消除)
51:sram,falsh memory,及dram的區(qū)別?
sram:靜態(tài)隨機存儲器,存取速度快,但容量小,掉電后數(shù)據(jù)會丟失,不像DRAM 需要不停的REFRESH,制造成本較高,通常用來作為快取(CACHE) 記憶體使用
flash:閃存,存取速度慢,容量大,掉電后數(shù)據(jù)不會丟失
dram:動態(tài)隨機存儲器,必須不斷的重新的加強(REFRESHED) 電位差量,否則電位差將降低至無法有足夠的能量表現(xiàn)每一個記憶單位處于何種狀態(tài)。價格比sram便宜,但訪問速度較慢,耗電量較大,常用作計算機的內存使用。
52:有四種復用方式,頻分多路復用,寫出另外三種?
四種復用方式:頻分多路復用(FDMA),時分多路復用(TDMA),碼分多路復用(CDMA),波分多路復用(WDM)
53:ASIC設計流程中什么時候修正Setuptime violation和Holdtime violation?如何修正?
見前面的建立時間和保持時間
54:給出一個組合邏輯電路,要求分析邏輯功能。
所謂組合邏輯電路的分析,就是找出給定邏輯電路輸出和輸入之間的關系,并指出電路的邏輯功能。
分析過程一般按下列步驟進行:
1:根據(jù)給定的邏輯電路,從輸入端開始,逐級推導出輸出端的邏輯函數(shù)表達式。
2:根據(jù)輸出函數(shù)表達式列出真值表;
3:用文字概括處電路的邏輯功能;
55:如何防止亞穩(wěn)態(tài)?
1 降低系統(tǒng)時鐘頻率
2 用反應更快的FF
3 引入同步機制,防止亞穩(wěn)態(tài)傳播(可以采用前面說的加兩級觸發(fā)器)。
4 改善時鐘質量,用邊沿變化快速的時鐘信號
56:基爾霍夫定理的內容
基爾霍夫定律包括電流定律和電壓定律:
電流定律:在集總電路中,任何時刻,對任一節(jié)點,所有流出節(jié)點的支路電流的代數(shù)和恒等于零。
電壓定律:在集總電路中,任何時刻,沿任一回路,所有支路電壓的代數(shù)和恒等于零。
57:描述反饋電路的概念,列舉他們的應用。
反饋,就是在電路系統(tǒng)中,把輸出回路中的電量輸入到輸入回路中去。
反饋的類型有:電壓串聯(lián)負反饋、電流串聯(lián)負反饋、電壓并聯(lián)負反饋、電流并聯(lián)負反饋。
負反饋的優(yōu)點:降低放大器的增益靈敏度,改變輸入電阻和輸出電阻,改善放大器的線性和非線性失真,有效地擴展放大器的通頻帶,自動調節(jié)作用。
電壓負反饋的特點:電路的輸出電壓趨向于維持恒定。
電流負反饋的特點:電路的輸出電流趨向于維持恒定。
58:有源濾波器和無源濾波器的區(qū)別
無源濾波器:這種電路主要有無源元件R、L和C組成
有源濾波器:集成運放和R、C組成,具有不用電感、體積小、重量輕等優(yōu)點。
集成運放的開環(huán)電壓增益和輸入阻抗均很高,輸出電阻小,構成有源濾波電路后還具有一定的電壓放大和緩沖作用。但集成運放帶寬有限,所以目前的有源濾波電路的工作頻率難以做得很高。
59:什么叫做OTP片、掩膜片,兩者的區(qū)別何在?
OTPmeans one time program,一次性編程
MTPmeans multi time program,多次性編程
OTP(One Time Program)是MCU的一種存儲器類型
MCU按其存儲器類型可分為MASK(掩模)ROM、OTP(一次性可編程)ROM、FLASHROM等類型。
MASKROM的MCU價格便宜,但程序在出廠時已經(jīng)固化,適合程序固定不變的應用場合;
FALSHROM的MCU程序可以反復擦寫,靈活性很強,但價格較高,適合對價格不敏感的應用場合或做開發(fā)用途;
OTPROM的MCU價格介于前兩者之間,同時又擁有一次性可編程能力,適合既要求一定靈活性,又要求低成本的應用場合,尤其是功能不斷翻新、需要迅速量產的電子產品。
60、單片機上電后沒有運轉,首先要檢查什么?
首先應該確認電源電壓是否正常。用電壓表測量接地引腳跟電源引腳之間的電壓,看是否是電源電壓,例如常用的5V。
接下來就是檢查復位引腳電壓是否正常。分別測量按下復位按鈕和放開復位按鈕的電壓值,看是否正確。
然后再檢查晶振是否起振了,一般用示波器來看晶振引腳的波形,注意應該使用示波器探頭的“X10”檔。另一個辦法是測量復位狀態(tài)下的IO口電平,按住復位鍵不放,然后測量IO口(沒接外部上拉的P0口除外)的電壓,看是否是高電平,如果不是高電平,則多半是因為晶振沒有起振。
另外還要注意的地方是,如果使用片內ROM的話(大部分情況下如此,現(xiàn)在已經(jīng)很少有用外部擴ROM的了),一定要將EA引腳拉高,否則會出現(xiàn)程序亂跑的情況。有時用仿真器可以,而燒入片子不行,往往是因為EA引腳沒拉高的緣故(當然,晶振沒起振也是原因只一)。經(jīng)過上面幾點的檢查,一般即可排除故障了。如果系統(tǒng)不穩(wěn)定的話,有時是因為電源濾波不好導致的。在單片機的電源引腳跟地引腳之間接上一個0.1uF的電容會有所改善。如果電源沒有濾波電容的話,則需要再接一個更大濾波電容,例如220uF的。遇到系統(tǒng)不穩(wěn)定時,就可以并上電容試試(越靠近芯片越好)。
61:給了reg的setup,hold時間,求中間組合邏輯的delay范圍
Delay < period - setup – hold
62:時鐘周期為T,觸發(fā)器D1的寄存器到輸出時間最大為T1max,最小為T1min。組合邏輯電路最大延遲為T2max,最小為T2min。問,觸發(fā)器D2的建立時間T3和保持時間應滿足什么條件
T3setup>T+T2max,T3hold>T1min+T2min
63:用傳輸門和倒向器搭一個邊沿觸發(fā)器。(揚智電子筆試)
64:用邏輯們畫出D觸發(fā)器。(威盛VIA 2003.11.06上海筆試試題)
65:16分頻電路中需要多少觸發(fā)器?
66:阻塞式賦值和非組塞式賦值的區(qū)別?
非阻塞賦值:塊內的賦值語句同時賦值,一般用在時序電路描述中。
阻塞賦值:完成該賦值語句后才能做下一句的操作,一般用在組合邏輯描述中。
67:74、用FSM實現(xiàn)101101的序列檢測模塊。(南山之橋)
a為輸入端,b為輸出端,如果a連續(xù)輸入為1101則b輸出為1,否則為0。
例如a: 0001100110110100100110
b: 0000000000100100000000
請畫出state machine;請用RTL描述其state machine。(未知)
68:用verilog/vhdl寫一個fifo控制器(包括空,滿,半滿信號)。(飛利浦-大唐筆試)
reg[N-1:0]memory[0:M-1]; 定義FIFO為N位字長容量M
八個always模塊實現(xiàn),兩個用于讀寫FIFO,兩個用于產生頭地址head和尾地址tail,一個產生counter計數(shù),剩下三個根據(jù)counter的值產生空,滿,半滿信號產生空,滿,半滿信號。
69:現(xiàn)有一用戶需要一種集成電路產品,要求該產品能夠實現(xiàn)如下功能:y=lnx,其中,x為4位二進制整數(shù)輸入信號。y為二進制小數(shù)輸出,要求保留兩位小數(shù)。電源電壓為3~5v假設公司接到該項目后,交由我們來負責該產品的設計,試討論該產品的設計全程。(仕蘭微電子)
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |