- AMD FPGA設(shè)計優(yōu)化寶典:面向Vivado/VHDL
- 高亞軍編著
- 1273字
- 2023-12-12 20:02:27
前言
設(shè)計收斂是FPGA工程師面臨的一個重要課題:既要保證功耗收斂,又要保證時序收斂。兩者均與設(shè)計自身有很大關(guān)系。筆者在多年的工程實踐和技術(shù)支持過程中發(fā)現(xiàn),很多設(shè)計未能收斂都與代碼風(fēng)格或?qū)ivado工具的理解有很大關(guān)系。
就代碼風(fēng)格而言,目前已有越來越多的工程師意識到其重要性。往往“良好的代碼風(fēng)格”能起到事半功倍的效果。“良好的代碼風(fēng)格”的一個重要指標(biāo)就是代碼風(fēng)格與FPGA內(nèi)部結(jié)構(gòu)相匹配,保證綜合工具能夠完美地推斷出期望結(jié)果,而這一點被很多工程師忽略。例如,7系列FPGA內(nèi)部的DSP48E1是不支持異步復(fù)位的,如果乘法器使用了異步復(fù)位,那么相應(yīng)的觸發(fā)器是無法被吸收到DSP48E1內(nèi)部的,不僅消耗了額外的觸發(fā)器(SLICE內(nèi)部的觸發(fā)器),還會導(dǎo)致時序惡化。鑒于此,本書以FPGA內(nèi)部結(jié)構(gòu)為基礎(chǔ),以VHDL語言為描述方式,結(jié)合大量實際案例,力求幫助讀者深入理解兩者之間的對應(yīng)關(guān)系。Vivado從2015.3版本開始支持VHDL-2008,隨著版本的不斷升級,對VHDL-2008的支持力度也不斷增大,并引入VHDL-2008的更多特性。相比于VHDL-93版本和VHDL-87版本,VHDL-2008版本更靈活、更易用。因此,本書采用VHDL-2008版本,同時列出所用到的VHDL-2008新特性。
就工具而言,Vivado的功能越來越強大,自身越來越智能,分析手段越來越多。這就需要工程師深入理解工具在各個階段所提供的選項含義,能夠在工程實踐中正確、合理地使用這些選項對應(yīng)的功能,同時,面對未能收斂的設(shè)計,能夠找到其中的根本原因。為此,本書也介紹了什么是有缺陷的設(shè)計、如何借助Tcl腳本找到這些缺陷,以及如何解決這些缺陷。
全書共10章。第1章從FPGA發(fā)展歷程的角度對FPGA技術(shù)進行了分析。第2章以時鐘網(wǎng)絡(luò)架構(gòu)為基礎(chǔ)闡述了優(yōu)化時鐘網(wǎng)絡(luò)的經(jīng)典方法,涉及改善時鐘偏移和降低時鐘抖動。第3章~第7章分別介紹了優(yōu)化組合邏輯、優(yōu)化觸發(fā)器、優(yōu)化移位寄存器、優(yōu)化存儲器和優(yōu)化乘加運算單元的經(jīng)典方法。每章第1節(jié)均重點介紹優(yōu)化對象的基本結(jié)構(gòu),包含目前主流的FPGA(7系列FPGA、UltraScale/UltraScale+FPGA和Versal ACAP)。每章最后1節(jié)均重點介紹如何發(fā)現(xiàn)缺陷單元及如何處理這些缺陷。第8章介紹了優(yōu)化狀態(tài)機的經(jīng)典方法,包括狀態(tài)機的“兩段式”和“三段式”描述方法、狀態(tài)機編碼方式、Vivado提供的狀態(tài)機編碼選項等。第9章闡述了優(yōu)化扇出的經(jīng)典方法。第10章闡述了優(yōu)化布線擁塞的經(jīng)典方法。這兩章以Vivado工具為核心,給出了相應(yīng)的Tcl腳本。
全書既闡述了FPGA內(nèi)部結(jié)構(gòu),又闡述了RTL代碼風(fēng)格(采用VHDL語言);既介紹了以Vivado圖形界面為主的分析手段,又介紹了以Tcl腳本為主的分析手段。力求幫助讀者從設(shè)計輸入和設(shè)計分析兩個維度理解設(shè)計。
為便于讀者閱讀和理解書中內(nèi)容,本書給出了469張圖片、85個表格、189個VHDL代碼片段、56個Tcl腳本片段、65條設(shè)計規(guī)則和29個應(yīng)用案例。同時,為加深印象,本書在每章結(jié)束之后還列出一些常見問題留給讀者思考,共有101個問題。
FPGA設(shè)計收斂不是一蹴而就的,既需要依靠大腦智慧,又需要工具協(xié)同,兩者缺一不可。希望您閱讀本書之后對FPGA架構(gòu)和RTL代碼風(fēng)格的理解能夠更上一層樓。
您在閱讀本書的過程中,如果發(fā)現(xiàn)書中內(nèi)容有任何不當(dāng)之處,或?qū)Ρ緯鴥?nèi)容有任何建議或意見,都可發(fā)送郵件到laurengao@126.com,不勝感激。
如果需要獲取代碼示例,可關(guān)注編著者微信公眾號“FPGA技術(shù)驛站”,回復(fù)關(guān)鍵字“設(shè)計優(yōu)化VHDL”即可。
高亞軍
2022/9/12
- 少兒人工智能趣味入門:Scratch 3.0動畫與游戲編程
- NLTK基礎(chǔ)教程:用NLTK和Python庫構(gòu)建機器學(xué)習(xí)應(yīng)用
- C/C++常用算法手冊(第3版)
- 自然語言處理Python進階
- Building Serverless Applications with Python
- C語言程序設(shè)計上機指導(dǎo)與習(xí)題解答(第2版)
- Python機器學(xué)習(xí)算法: 原理、實現(xiàn)與案例
- BeagleBone Robotic Projects(Second Edition)
- Everyday Data Structures
- ASP.NET 4.0 Web程序設(shè)計
- TypeScript圖形渲染實戰(zhàn):2D架構(gòu)設(shè)計與實現(xiàn)
- Puppet:Mastering Infrastructure Automation
- Python Social Media Analytics
- 基于MATLAB的控制系統(tǒng)仿真及應(yīng)用
- 零基礎(chǔ)PHP從入門到精通