【正文】
中使用了 LUT,所以建立時間是 Tick而不是 Tdick, 這種映射結(jié)果減少了一級布線時延 VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 23 頁 對高扇出的網(wǎng)絡(luò)使用全局驅(qū)動 ? 設(shè)計中,有高扇出的時鐘使能、 IOB三態(tài)以及其他信號嗎 ? ? 使用剩余的 BUFG來驅(qū)動它們,以達(dá)到更小的歪斜和更高的性能 ? 使用 BUFG, 時鐘和 CE輸入的歪斜可以小于 1ns ? 使用 BUFG的方法,實例化 BUFG, 將相應(yīng)信號連接上去 D CE Q R P CE or OE or RST INPUT CLOCK BUFG VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 24 頁 使用全局復(fù)位有助于提高速度 ? 所有的 觸發(fā)器 在上電時通過全局置位 /復(fù)位( GSR) 網(wǎng)絡(luò)進(jìn)行初始化 ? 你可以通過實例化( instantiating ) STARTUP 元件( primitive)訪問GSR網(wǎng)絡(luò)。 浪費(fèi)布線資源、增加邏輯級數(shù),降低系統(tǒng)速度 u 即使不關(guān)心寄存器的復(fù)位狀態(tài),也應(yīng)該對其賦初值,可以賦初值為“ ”,即“ Donn‘t care‖。 Data = g(y)。如: signal ptr: std_logic_vector(14 downto 0)。039。)。39。 VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 26 頁 采用流水線邏輯來提高速度 ? FPGA觸發(fā)器資源豐富 ? 增加流水線邏輯級數(shù),可提高系統(tǒng)速度 D CE Q R P D CE Q R P D CE Q R P D CE Q R P D CE Q R P 25MHz 50MHz VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 27 頁 45輸入的邏輯函數(shù)對速度和密度最有利 ? Xilinx FPGA由四輸入查找表( LUT) 組成。 ? 取反不耗費(fèi)資源( free)。 One Hot每個狀態(tài)只需提供一位反饋輸入 VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 29 頁 狀態(tài)機(jī)的速度 ? 對于較大的狀態(tài)機(jī),使用 One Hot編碼 ? 二進(jìn)制或者枚舉編碼,對于較小的狀態(tài)機(jī)合適。 — 扇出大于 1的網(wǎng)絡(luò)可能在 Slice之外。 27Mhz – 32bit 加法器(使用進(jìn)位) 17 Slices amp。 — 生成序列可以覆蓋的地址空間為 2n1,全 0不包含在序列中。 VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 41 頁 使用 I/O寄存器提高輸入和輸出速度 ? 使用 IOB中的 I/O寄存器,可以提高輸入和輸出速度 輸入或輸出可以去除從內(nèi)部布線的時延, IOB中的時延也更小 還可以節(jié)約寄存器資源 ? 實現(xiàn) 選項中,選擇“ Pack I/O Registers/Latches into IOBs for Inputs and Outputs‖ 輸入若未寄存,直接扇入到組合邏輯,則不能 map到 IO寄存器中 輸出若為組合邏輯輸出,或者需要反饋為輸入,則不能 map到 IO寄存器中 D CE Q D CE Q I/O pad From: FPGA Into: FPGA OFF IFF Output Clock Input Clock VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 42 頁 使用 I/O寄存器的例子 (FPGAFPGA) D CE Q 發(fā)送器 (XCV1004 FPGA) D CE Q 接收器 (XCV1004 FPGA) 使用 IOB中寄存器的時延 Tiockp + PCB網(wǎng)絡(luò)時延 + Tiopick = 不使用 IOB中寄存器的時延 (Tcko + T +Tioop) + PCB網(wǎng)絡(luò)時延 + (Tiopi + T + Tdick) ( ++) (+ +) = VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 43 頁 輸入速度:可編程的輸入時延 ? FPGA的輸入通道上有一個可編程的時延 ? 可以用來在建立時間和保持時間之間達(dá)到妥協(xié)。最后給出相當(dāng)于 ASIC的門數(shù) 資源估計 Design Summary Number of errors: 0 Number of warnings: 644 Number of Slices: 1,147 out of 1,200 95% Slice Flip Flops: 735 4 input LUTs: 1,046 (1 used as a routethru) Dual Port RAMs: 312 Number of Slices containing unrelated logic: 0 out of 1,147 0% Number of bonded IOBs: 85 out of 98 86% IOB Flip Flops: 68 Number of Block RAMs: 10 out of 10 100% Number of GCLKs: 2 out of 4 50% Number of GCLKIOBs: 2 out of 4 50% Number of DLLs: 1 out of 4 25% Number of Startups: 1 out of 1 100% Number of RPM macros: 9 Total equivalent gate count for design: 224,805 Additional JTAG gate count for IOBs: 4,176 VHDL 設(shè)計風(fēng)格和實現(xiàn) , 2022年 6月 10日 第 47 頁 可以把查找表用作 RAM ?使用 CoreGen或 LogiBLOX, 可以用 LUT生成 RAM ?選擇功能 單 /雙端口 同步 /異步 深度擴(kuò)展時,基于 BUFT還是 LUT ? 選擇大小 沒有浪費(fèi)的資源 可擴(kuò)展為需要的大小 ?選擇位置 布置在基片的任何地方 鄰近關(guān)鍵電路以提高速度 ?選擇編程方法 通過啟動時的比特流 通過設(shè)計中的操作 ?易于使用 Address Data WE Distributed RAM Clock Data 2 A