都是一些細節性問題,放在一起記憶,一問一答的形式,有任何問題歡迎文章上方微博討論,多思多想。
1、What makes the difference between Run time and CPU time?
Run time is the time it takes for the task to run from start to finish, equal to wall-clock time.
CPU time is the time that the CPU is actually working on the task. There are whole minutes that there's memory swapping taking place, in which the CPU isn't used. Or in the case of the GPU, where the CPU is only used to translate and transfer data, not to actually do any calculations as these happen on the GPU.
2、時序設計實質
滿足每一個觸發器的建立時間和保持時間的要求
3、鎖存器、觸發器、緩沖器、寄存器區別
數據有效遲后於時鍾信號的到來,問題在於在時鍾信號有效期內一直處於觸發狀態,就較容易產生毛刺,鎖存器在ASIC設計中應該說比ff要簡單,但
是在FPGA的資源中,大部分器件沒有鎖存器這個東西,所以需要用一個邏輯門和ff來組成鎖存器, 這樣就浪費了資源。

面積小。鎖存器比FF快,所以用在地址鎖存是很合適的,不過一定要保證所有的latch信號源
的質量,鎖存器在CPU設計中很常見,正是由於它的應用使得CPU的速度比外部IO部件邏輯快許
多。latch完成同一個功能所需要的門較觸發器要少,所以在asic中用的較多。
時鍾有效遲后於數據有效。這意味着數據信號先建立,時鍾信號后建立。在CP上升沿時
刻打入到寄存器。
其實寄存器就是一種常用的時序邏輯電路,但這種
時序邏輯電路只包含存儲電路。寄存器的存儲電路是由鎖存器或觸發器構成的,因為一個鎖存器或
觸發器能存儲1位二進制數,所以由N個鎖存器或觸發器可以構成N位寄存器。 工程中的寄存器一般
按計算機中字節的位數設計,所以一般有8位寄存器、16位寄存器等。
對寄存器中的觸發器只要求它們具有置1、置0的功能即可,因而無論是用同步RS結構觸發器,還是
用主從結構或邊沿觸發結構的觸發器,都可以組成寄存器。一般由D觸發器組成,有公共輸入/輸出
使能控制端和時鍾,一般把使能控制端作為寄存器電路的選擇信號,把時鍾控制端作為數據輸入控
制信號。
緩沖寄存器:又稱緩沖器緩沖器(buffer):多用在總線上,提高驅動能力、隔離前后級,緩沖器多半
有三態輸出功能。當負載不具有非選通輸出為高阻特性時,將起到隔離作用;當總線的驅動能力不
夠驅動負載時,將起到驅動作用。由於緩沖器接在數據總線上,故必須具有三態輸出功能。它分輸入緩沖器和輸出緩沖器兩種。前者的作用是將外設送來的數據暫時存放,以便處理器將它取
走;后者的作用是用來暫時存放處理器送往外設的數據。有了數控緩沖器,就可以使高速工作的CPU與慢速工作的外設起協調和緩沖作用,實現數據傳送的同步。
4、時序約束的概念和基本策略
包括周期約束,偏移約束、靜態時序路徑約束。通過附加時序約束可以使綜合布線工具調整映射和布局布線,使設計達到時序要求。
一般策略是先附加全局約束,然后對快速和慢速例外路徑附加專門約束。附加全局約束時。首先是定義設計的所有時鍾,對各時鍾域內的同步元件進行分組,對分組附加周期約束,然后對FPGA輸入輸出附加偏移約束,對全組合邏輯的PAD to PAD路徑附加約束。附加專門約束時,首先約束分組之間的路徑,然后約束快速慢速例外路徑和多周期路徑,以及其他特殊路徑。
5、附加約束的作用
- 提高設計的工作頻率(減少了邏輯和布線延時)
- 獲得正確的時序分析報告(靜態時序分析工具以約束判斷時序是否滿足設計要求的標准)
- 指定FPGA的電氣標准和引腳位置
6、FPGA芯片內的存儲器資源
一種是block RAM,有一定數量固定大小的存儲塊構成,使用block RAM 不占用額外的邏輯資源,並且速度快。消耗的也一定是塊大小的整數倍。另一種是由LUT配制成的內部存儲器。
7、What is the difference between DCM and PLL in e.g. Xilinx FPGA?
- DCM是用數字延時模塊調理時鍾,是純數字的東西,優勢在於可以做到很高精度,可以排除溫度、電壓變化帶來的影響,使得skew 可以作得很小,可以調整時鍾占空比。把相位差變成延遲信號,然后通過延遲線調整輸出時鍾。DLL即Delay Lock Loop, 主要是用於產生一個精准的時間延遲, 且這個delay不隨外界條件如溫度,電壓的變化而改變。Xilinx的IP核生成器叫Core Generator
- PLL 優勢在於抑制時鍾抖動clock jitter 以及輸入時鍾的frequency漂移。PLL,把相位差變成壓差,然后控制VCO(voltage Controler oscillation),調整輸出時鍾,利用的是模擬電路。
8、時鍾抖動與時鍾偏斜區別
時鍾抖動是指時鍾周期之間存在差值,產生於時鍾發生器內部,和晶振或PLL內部電路有關,與布局布線關系不大,還有一種由於周期內信號的占空比發生變化而引起的抖動,稱之為半周期抖動。
時鍾偏斜是同樣的的時鍾產生的多個自時鍾 信號的延時差異,包含了時鍾驅動器的多個輸出之間的偏移,也包含了由於PCB走線誤差造成的接收端和驅動端時鍾信號之間的偏移。
Clock skew 和Clock jitter 是影響時鍾信號穩定性的主要因素。
skew通常是時鍾相位上的不確定,而jitter是指時鍾頻率上的不確定(uncertainty)。造成skew和jitter的原因很多。由於時鍾源到達不同寄存器所經歷路徑的驅動和負載的不同,時鍾邊沿的位置有所差異,因此就帶來了skew。而由於晶振本身穩定性,電源以及溫度變化等原因造成了時鍾頻率的變化,就是jitter。

9、SERDES的高速串行接口
SERDES是英文SERializer(串行器)/DESerializer(解串器)的簡稱。它是一種時分多路復用(TDM)、點對點的通信技術,即在發送端多路低速並行信號被轉換成高速串行信號,經過傳輸媒體(光纜或銅線),最后在接收端高速串行信號重新轉換成低速並行信號。這種點對點的串行通信技術充分利用傳輸媒體的信道容量,減少所需的傳輸信道和器件引腳數目,從而大大降低通信成本。
傳統並行總線技術——PCI卻跟不上處理器和存儲器的進步而成為提高數據傳輸速率的瓶頸。新一代PCI標准PCI Express正是為解決計算機IO瓶頸而提出的(見表1)。PCI Express是一種基於SERDES的串行雙向通信技術,數據傳輸速率為2.5G/通道,可多達32通道,支持芯片與芯片和背板與背板之間的通信。
基於SERDES的高速串行接口采用以下措施突破了傳統並行I/O接口的數據傳輸瓶頸:一是采用差分信號傳輸代替單端信號傳輸,從而增強了抗噪聲、抗干擾能力;二是采用時鍾和數據恢復技術代替同時傳輸數據和時鍾,從而解決了限制數據傳輸速率的信號時鍾偏移問題。
