【文章內(nèi)容簡(jiǎn)介】
善 的時(shí)鐘和頻率合成功能, 使得 系統(tǒng)性能 最大化 。 Cyclone PLL 亦 有多種 其他 功能,如頻率合成、可編程延遲和外部時(shí)鐘輸出。這些功能允許設(shè)計(jì)者管理內(nèi)部和外部系統(tǒng)時(shí)序。 9 接口和協(xié)議 支持例如 PCI(局 部總線的標(biāo)準(zhǔn))等串行、總線和網(wǎng)絡(luò)接口,可以訪問(wèn)外部存儲(chǔ)器件和多種通信協(xié)議 表 32 Cyclone 系列 FPGA 各型號(hào)的特性 特性 EP1C3 EP1C4 EP1C6 EP1C12 EP1C20 邏輯單元 LE 2910 4000 5980 12060 20210 M4K RAM 13 17 20 52 64 鎖相環(huán) 1 2 2 2 2 最大用戶 I/O 104 301 185 249 301 Cyclone 系列器件 IOE 支持單端口差分 I/O 標(biāo)準(zhǔn) 。與 PCI 總線兼容 。支持 JTAG。支持 可控驅(qū)動(dòng)電流 強(qiáng)度、可控漏極開(kāi)路輸出的功能 。含有 三態(tài)緩沖器和總線保持電路 。當(dāng)需要 對(duì)其上拉電阻以及輸入 /輸出時(shí)延進(jìn)行編程 ,可切換成用戶模式 。 FPGA 芯片配置 FPGA 器件是基于 SRAM 結(jié)構(gòu)的,由于 SRAM 具有易失性,每次加電時(shí),配置數(shù)據(jù)都必須重新構(gòu)造。 Altera 的 FPGA 器件主要由兩類配置方式:主動(dòng)配置方式和被動(dòng)配置方式。根據(jù)配置數(shù)據(jù)線的寬度,將配置分為串行配置和并行配置。 Altera 的 FPGA 配置方式其實(shí)有很多,如表 33 所示,這些配置模式通過(guò)FPGA 器件上的兩個(gè)模式選擇引腳 MSEL1 和 MSEL0 上設(shè)定不 同 的電平組合來(lái)決定。 表 33 Altera 的 FPGA 器件配置方式 方式 說(shuō)明 PS( Passive Serial)模式 被動(dòng)串行,通過(guò)增強(qiáng)型配置器件(如EPC1 EPC EPC4)或普通配置芯片( EPC144 EPC1 、 EPC2)配置 AS( Active Serial) 主動(dòng)串行,使用串行配置器件(如EPCS EPCS EPCS16)進(jìn)行配置 FPP( Fast Passive Parallel) 快速被動(dòng)并行,使用增強(qiáng)型配置器件或并行同步微處理器接口進(jìn)行配置 10 AP( Active Parallel) 主動(dòng)并行,一個(gè)新的配置方式, CycloneⅢ器件采用 PPS( Passive Parallel Synchronous) 被動(dòng)并行同步,使用并行同步微處理器接口進(jìn)行配置 PPA( Passive Parallel Asynchronous) 被動(dòng)并行同步,使用并行異步微處理器接口進(jìn)行配置 JTAG 模式 使用下載電纜通過(guò) JTAG 接口進(jìn)行配置 Cyclone 系列 FPGAEP1C3T144C8 芯片主要由三類配置下載方式:主動(dòng)配置方式( AS)和被動(dòng)配置方式( PS)以及最常用的 JTAG 配置方式 。 AS 方式由FPGA 器件引導(dǎo)配置過(guò)程,它控制著外部存儲(chǔ)器和初始化過(guò)程; PS 方式由外部計(jì)算機(jī)或控制器控制配置過(guò)程 。JTAG 是一種測(cè)試接口。 Cyclone 配置方式如表 34所示 [6]。 表 34 cyclone 器件的配置方式 配置方式 特點(diǎn) 模式選擇引腳設(shè)定 JTAG 模式 使用下載電纜;或使用微處理器;可使用 signalTapⅡ嵌入式邏輯分析儀 MSEL1=0、 MSEL0=1 PS 模式 使用增強(qiáng)型 EPC 配置器件( EPC4,EPC8,EPC16);使用 EPC 配置器件( EPC1,EPC2) MSEL1=0、 MSEL0=1 AS 模式 使 用 串 行 配 置 器 件( EPCS1,EPCS4,EPCS16,EPCS64) MSEL1=0、 MSEL0=0 AS 配置模式 將 cyclone 系列的 FPGA 的 MSEL0 和 MSEL1 引腳接地時(shí),即選擇了 AS 配置模式。在 AS 模式中,必須使用一個(gè)串行 Flash 來(lái)存儲(chǔ) FPGA 配置數(shù)據(jù),以作為串行配置器件。帶有編程接口的 Cyclone 器件的 AS 模式配置電路如圖 31 所示,通過(guò)一個(gè) 10 針接頭對(duì) EPCS 器件進(jìn)行編程 [7]。 11 具體的工作過(guò)程如下:每當(dāng)系統(tǒng)上電時(shí), FPGA 和串行配置器件都進(jìn) 入上電復(fù)位周期,此時(shí) FPGA 就將 nSTATUS 信號(hào)和 CONF_DONE 信號(hào)驅(qū)動(dòng)為低電平,表示此時(shí) FPGA 沒(méi)有完成配置。上電復(fù)位周期大約為 100ms,然后 FPGA 釋放nSTATUS 信號(hào)并進(jìn)入配置模式,這時(shí) FPGA 將 nCSO 信號(hào)驅(qū)動(dòng)為低電平以使能串行配置器件 [8]。 FPGA 內(nèi)置的振蕩器產(chǎn)生串行時(shí)鐘 DCLK, ASDO 引腳發(fā)送控制信號(hào), DATA0 引腳串行傳輸配置數(shù)據(jù)。串行配置器件在 DCLK 的上升沿鎖存輸入的信號(hào),在 DCLK 下降沿驅(qū)動(dòng)配置數(shù)據(jù); FPGA 在 DCLK 的上升沿鎖存配置數(shù)據(jù),在 DCLK 下降沿驅(qū)動(dòng)控制信號(hào)。當(dāng)配 置完成后, FPGA 釋放 CONF_DONE信號(hào),外部電路將其拉為高電平, FPGA 開(kāi)始初始化。 C O N F _ D O N E n S T A T U S n C O N F I G n C E A D S O n C S O D C L K D A T A 0n C E OM S E L 1M S E L 0D A T AD C L Kn C SA S D IC y c l o n e 器件E P C S 串行配置器件1 0 k Ω1 0 k Ω1 0 k ΩV C CV C CV C CN . CV C C1 0 k Ωb y t e b l a s t e r Ⅱ針插頭 圖 31 AS 配置模式電路圖 PS 配置模式 將 cyclone 系列的 FPGA 的 MSEL0 接電源, MSEL1 引腳接地時(shí),即選擇了PS 模式。 PS 模式是由 EPC 配置器件或者外部計(jì)算機(jī)控制配置過(guò)程。在 PS 配置期間,配置數(shù)據(jù)從外部?jī)?chǔ)存(串行配置)器件,通過(guò) DATA0引腳串行輸入到 cyclone器件中,配置數(shù)據(jù)在 DCLK 時(shí)鐘信號(hào)的每個(gè)上升沿鎖存, 1 個(gè)時(shí)鐘周期傳送 1 位數(shù)據(jù) 。 12 JTAG 配置模式 JTAG 接口是一個(gè)業(yè)界標(biāo)準(zhǔn),主要用于芯片測(cè)試等功能,使用 聯(lián)合邊界掃描接口引腳,支持 JAM STAPL 標(biāo)準(zhǔn),可以使用 Altera 下載電纜或主控器來(lái)完成 [9]。 JTAG 配置模式具有其他配置模式更高的優(yōu)先級(jí),在 EP1C3T144C8 芯片的非 JTAG 配置過(guò)程中,一旦發(fā) 出 JTAG 配置命令,則非 JTAG 配置被終止,進(jìn)入JTAG 配置模式。 Cyclone 器件有四個(gè)專用的 JTAG 引腳: TDI、 TDO、 TMS 和 TCK。 TDI 引腳用于配置數(shù)據(jù)串行輸入,數(shù)據(jù)在 TCK 上升沿移入 FPGA; TDO 用于配置數(shù)據(jù)串行 輸出,數(shù)據(jù)在 TCK 的下降沿移出 FPGA; TMS 提供控制信號(hào),用于測(cè)試訪問(wèn) TAP 端口控制器的狀態(tài)機(jī)轉(zhuǎn)移; TCK 提供時(shí)鐘信號(hào)。 FPGA 配置完成后, Quartus Ⅱ 軟件將對(duì)其進(jìn)行驗(yàn)證,其方式是檢測(cè)CONF_DONE 信號(hào),如果 CONF_DONE 是高電平,則表示配置成功,否則配置失敗。 n C E D C L K D A T A 0 M S E L 1 M S E L 0 n C O N F I G C O N F _ D O N E n S T A T U ST C KT D OT D IT M S1 0 K Ω1 0 K ΩV C CV C CV C CN C 1N C 3G N D 1G N D 2 T C K T D O T M S N C 2 T D I3 . 3 V135794682101 0 k Ω 1 0 k Ω1 0 k Ω3 . 3 VJ T A GF P G A 圖 32 JTAG 配置模式電路圖 EP1C3T144C8 在正常工作時(shí),其配置數(shù)據(jù)是存在 SRAM 中的,加電時(shí)需要重新下載。本設(shè)計(jì)邏輯分析儀用到了兩種配置方式: JTAG 和 AS 配置方式。 JTAG方式 用于系統(tǒng)調(diào)試 ,系統(tǒng)調(diào)試好后 通過(guò) AS 方式 將邏輯分析儀功能程序下載到外部配置芯片 EPCS1 內(nèi)部,每次上電以后 FPGA 芯片將會(huì)自動(dòng)讀取配置芯片內(nèi)的程序運(yùn)行。 13 虛擬邏輯分析儀硬件總體方案設(shè)計(jì) 虛擬邏輯分析儀整體硬件設(shè)計(jì)的結(jié)構(gòu)圖如 33 所示。 邏輯分析儀由核心部件 FPGA(EPIC3T144C8)、配置電路、電源電路、復(fù)位電路、時(shí)鐘電路、 JTAG 接口電路、 AS 接口電路、信號(hào)輸入、 USB 芯片接口電路組成 [7],邏輯分析儀的原理圖見(jiàn)附錄一所示,電路主要芯片是 FPGA 芯片EPIC3T144CS 和 USB 芯片 CY7C68013(此內(nèi)容在后面章節(jié)中會(huì) 詳細(xì)闡述 ),外圍均是圍繞 EPIC3T144CS 設(shè)計(jì)的外圍電路和 CY7C68013 接口電路。 邏輯分析儀的硬件電路總圖(見(jiàn)附錄 1)。 F P G AE P 1 C 3 T 1 4 4 C 8電 源 電 路時(shí) 鐘 電 路復(fù) 位 電 路U S B 芯 片 接 口 電 路外 接E P R O M ( 2 4 L C 6 4 )多 路 數(shù) 字 信 號(hào) 輸 入J T A G 接 口配 置 電 路 ( E P C S 1)A S 接 口 圖 33 邏輯分析儀硬件設(shè)計(jì)總框圖 邏輯分析儀外圍電路設(shè)計(jì) FPGA 的芯片 EP1C3T144C8 提供的 I/O 口采用的是 電源,內(nèi)核采用的是 的電源,該模塊的設(shè)計(jì)是將通用 5V 電壓通過(guò) 電源轉(zhuǎn)換芯片轉(zhuǎn)換成 ,然后再通過(guò) 電源轉(zhuǎn)換芯片將 電壓再轉(zhuǎn)換成 電壓,電源轉(zhuǎn)換電路如圖 34 所示。 14 V i n V o u tGNDU1 L M 1 1 1 7 3 . 3 VV i n V o u tGNDU2 L M 1 1 1 7 1 . 5 V21J1P O W E RC1100nFC3100nFC2100uFD1L E DR1330C4100uF3 . 3 VC5100nF5V1 . 5 V3 . 3 V 圖 34 電源電路設(shè)計(jì)圖 時(shí)鐘電路設(shè)計(jì) 本論文設(shè)計(jì)的 邏輯分析儀 牽涉 到兩個(gè)時(shí)鐘電路的設(shè)計(jì)。 FPGA 的系統(tǒng)時(shí)鐘源采用外部有源晶振提供,利用 FPGA 內(nèi)部 PLL 進(jìn)行倍頻 ( PLL 模塊具體工作在后面會(huì)提到) ,可以獲得我們想要的時(shí)鐘頻率 。 USB 芯片 (CY7C68013)時(shí)鐘 采用的 是 外接 24MHz,時(shí)鐘電路如圖 35 所示 NCG N DV C CO U TX25 O MC 2 61 0 u FC 2 70 . 1 u FC L K1234Y22 4 M H ZC 2 42 2 p FC 2 52 2 p F 圖 35 時(shí)鐘電路設(shè)計(jì)圖 復(fù)位電路設(shè)計(jì) 硬件設(shè)計(jì)時(shí)有兩個(gè)復(fù)位按鍵,一個(gè)叫做硬件 復(fù)位,按下此鍵,所有 FPGA 的代碼重新從 EPCSI 里面讀到 FPGA,程序重新開(kāi)始運(yùn)行,該引腳接到 FPGA 的nCONFIG 引腳,該引腳為低電平時(shí),代碼重新開(kāi)始配置。另外一個(gè)復(fù)位按鍵叫做軟件復(fù)位,連接到 FPGA 的另外一個(gè)全局時(shí)鐘腳上,用來(lái)表示在設(shè)計(jì)的過(guò)程中的 SRESET 引腳。復(fù)位電路如圖 36 所示。 15 R8R7n C O N F I GS R E S E TS W 4n C O N F I GS W 3S R E S E T 圖 36 復(fù)位電路設(shè)計(jì)圖 JTAG接口電路設(shè)計(jì) JTAG 是聯(lián)合測(cè)試行動(dòng)組于 1986 年制定的 邊界掃描測(cè)試技術(shù)規(guī)范。邊界掃描測(cè)試允許用戶在器件正常工作時(shí)捕獲所需的測(cè)試數(shù)據(jù),而且不 需要使用物理設(shè)備 [10]。相比較于主動(dòng)串行和被動(dòng)串行方式而言, JTAG 配置方式擁有更高的優(yōu)先級(jí),它使用一個(gè) 4 線接口: TDI、 TDO、 TMS、 TCK,在使用 JTAG下載時(shí),測(cè)試數(shù)據(jù)通過(guò) TDI 輸入到 FPGA,當(dāng)測(cè)試數(shù)據(jù)傳送完畢后, FPGA 釋放CONF_DONE 信號(hào),其外部電路將其拉為高電平, FPGA 進(jìn)入初始化 [8]。在初始化階段, TCK 的時(shí)鐘信號(hào)被作為系統(tǒng)時(shí)鐘,各個(gè)引腳的說(shuō)明如表 35 所示 . 表 35 JTAG 接口引腳說(shuō)明 引腳 名稱 功能 TDI 數(shù)據(jù)輸入 指令和測(cè)試數(shù)據(jù)的串行輸 入引腳,數(shù)據(jù)在TCLK 的上升沿時(shí)刻輸入 TDO 數(shù)據(jù)輸出 指令和測(cè)試數(shù)據(jù)的串行輸出引腳,數(shù)據(jù)在TCLK 的下降沿時(shí)刻輸出;若沒(méi)有數(shù)據(jù)輸出,則此引腳處于高阻抗 TMS 模式選擇輸入 選擇 JTAG 指令模式的串行輸入引腳,在正常工作狀態(tài)下 TMS 應(yīng)是高電