關于我們
書單推薦
新書推薦
|
搭建你的數(shù)字積木
本書深入淺出, 利用數(shù)字積木使讀者能快速入門設計過程, 搭建原型設計。案例從基本門電路, 中小規(guī)模接口電路, 到復雜數(shù)字信號處理, 數(shù)字圖像處理全覆蓋。本書實驗硬件平臺采用目前最為廣泛用于科研和教學的Xilinx 28nm Artix-7器件和Vivado工具, 源程序在Github開源, 并保持更新, 教材同時配合相應的講解及實驗操作視頻引導。
本教材嚴格參照教育部高等學校電子電氣基礎課程教學指導分委員會制訂的《電子電氣基礎課程教學基本要求》編寫。全書注重激發(fā)學生的學習興趣,突出模塊化編程思想并詳細介紹了IP設計、封裝和調用方法;對于常用邏輯模塊及邏輯系統(tǒng)案例的選取,采取由淺入深的方式,設計過程和例程盡量詳細,可以直接動手實驗。全書融合了東南大學電子科學與工程學院“數(shù)字系統(tǒng)”課程的豐富教學經(jīng)驗,吸收了東南大學多年參與PLD競賽的經(jīng)驗,并充分考慮產(chǎn)業(yè)界對電子信息類專業(yè)人才培養(yǎng)的具體需求,是一本真正意義上產(chǎn)學深度合作的教材。教學資源:
(1)教學課件配書教案(PPT)可到清華大學出版社網(wǎng)站本書頁面下載。
(2)設計平臺采用科研和教學中應用*廣泛的XilinxArtix-7器件和Vivado工具。
(3)程序代碼配書源程序在Github開源,并保持更新。
(4)教學視頻配書教學視頻及實驗操作視頻可到OpenHW網(wǎng)站獲取。
這是一本正規(guī)教材嗎?看書名有點像兒童讀物。
這是一本設計開發(fā)手冊嗎?這里面怎么還有思考習題啊。
其實,編者們也為這本書的名字費了不少神,這是本書的第一個書名建議,之后也揣摩了好幾個,但到了最后還是覺得這第一次取的名字最好,因為它最符合編者們當下對基于FPGA芯片的邏輯系統(tǒng)設計的核心理念。
如果說對于國內(nèi)的高校和企業(yè)來講,20世紀90年代,PLD還是新興技術,僅在高端產(chǎn)品和產(chǎn)品設計初期有所應用外,如今PLD產(chǎn)品已經(jīng)成為業(yè)內(nèi)絕大多數(shù)的邏輯系統(tǒng)設計的核心,也是大多數(shù)工程師的基本設計能力。
這些年來,邏輯系統(tǒng)設計和FPGA編程類的新教材不斷涌現(xiàn)。應該說,這些方面國內(nèi)并不缺乏好的專業(yè)教材或工具書,但是作為編者的這幾個人在分別經(jīng)歷多年相關課程教學、工程師培訓、新技術推廣等不同的工作后,總覺得教材可以編寫得更像工具書一點,工具書可以再多點基礎知識介紹。于是,幾個人就湊在了一起,相互鼓勵、相互督促做了一件他們最想做但其實又最不愿意做的事:編寫一本教材。
以下是本書的編者們圍繞邏輯系統(tǒng)設計和FPGA編程學習的幾點認識,也是編寫這本書的一些粗淺想法:
(1)傳統(tǒng)邏輯設計教學的內(nèi)容和體系與當前行業(yè)的需求和實際產(chǎn)生了偏差
隨著可編程邏輯器件(programmablelogicdevice,PLD,包括現(xiàn)在的CPLD和FPGA)為主的新技術及其行業(yè)的快速發(fā)展,直接改變了基于數(shù)字系統(tǒng)核心的消費電子產(chǎn)品、工業(yè)系統(tǒng)、醫(yī)療儀器設備乃至專用邏輯芯片本身的設計,重點表現(xiàn)在邏輯系統(tǒng)的門電路規(guī)模門檻快速提升和設計方法的巨大變革。相比之下,成熟的傳統(tǒng)邏輯設計教學體系與行業(yè)界的實際產(chǎn)生了偏差,例如:在傳統(tǒng)邏輯設計教學中常用的真值表和卡諾圖等在實際行業(yè)設計中難覓蹤影;傳統(tǒng)邏輯設計實驗教學中常用的74系列或4000系列中規(guī)模單元芯片采購困難且價格高,使得教學實驗項目難以為繼;傳統(tǒng)邏輯設計中當作理論講解的競爭與冒險變成邏輯設計工程師時時刻刻面對的實際問題;實際工程應用中急需的模塊化設計理念和團隊合作能力在傳統(tǒng)邏輯教學中基本缺失。
(2)邏輯設計教學從傳統(tǒng)的基礎理論課程更多轉向為實踐類課程
傳統(tǒng)的邏輯設計或數(shù)字電路課程都是各大電子信息專業(yè)的基礎核心課程,在布爾代數(shù)基本理論基礎上重點講解組合邏輯系統(tǒng)的分析和設計、時序邏輯系統(tǒng)的分析和設計,再補充一些計算機結構中的基本單元作為其應用案例。這些內(nèi)容也積累了大量考試題庫,但大量題庫都是限于四個邏輯變量及以下、JK觸發(fā)器容易命題但實際遠不如D觸發(fā)器實用、競爭冒險作為理論概念難以在習題中體現(xiàn)、狀態(tài)機是綜合類應用內(nèi)容且入選習題的工作狀態(tài)數(shù)不宜過多等,與此對應的實際情況是基于FPGA開展實際邏輯系統(tǒng)設計,幾十萬門的邏輯系統(tǒng)需求很平常,狀態(tài)機已經(jīng)成為大多數(shù)邏輯系統(tǒng)設計的基本單元,產(chǎn)品設計不斷追求高性能使得毛刺問題在每一個設計中均需要認真處理等。因此,很多理論分析工作在當前設計中不再適用,大量設計能力需要通過不斷實踐經(jīng)驗積累。
(3)邏輯設計門檻的降低和邏輯系統(tǒng)復雜度的提升對模塊化設計提出更高要求
FPGA設計培訓并不困難,越來越多的工程師通過自學就掌握了FPGA設計的基本能力,但隨著FPGA芯片規(guī)模的快速提升和芯片價格的持續(xù)下降,大量復雜邏輯系統(tǒng)均已在單芯片內(nèi)實現(xiàn),且產(chǎn)品設計的時間周期越來越短,大量的邏輯系統(tǒng)設計都需要工程師團隊分工合作完成,同時大量基本邏輯單元和功能模塊會重復利用,因此,模塊化編程思想和設計團隊的標準邏輯模塊設計積累都十分重要。把產(chǎn)品設計比作搭積木,誰的邏輯模塊積木多以及誰的專有邏輯模塊積木多會左右一個產(chǎn)品的市場成敗。
基于上述理念,本書希望建設成能滿足目前從邏輯設計入門到具備基本邏輯設計工程師能力的學習道路上的教材或參考書。在組織規(guī)劃過程中貫穿了以下幾點思路:
(1)以目前主流且實用的FPGA和VerilogHDL為基礎更新邏輯設計理論基礎教學主線;
(2)將Vivado集成設計開發(fā)環(huán)境在第1章中就呈現(xiàn)給讀者,讓讀者從一開始就能利用該開發(fā)工具學習具體邏輯設計;
(3)淡化以往卡諾圖、真值表這類效率低且目前實用性不強的設計方法,強化基于硬件表述語言的硬件編程設計思想,區(qū)分軟件編程常規(guī)的指令語句單步運行思維模式;
(4)突出模塊化編程思想并詳細介紹IP設計封裝和調用辦法;
(5)常用邏輯模塊及邏輯系統(tǒng)案例選取由淺入深,設計過程和例程盡量詳細,替代一般實驗指導書。
綜上,本書具體分成三大部分:第一部分邏輯設計基礎(共六章);第二部分常用邏輯設計模塊(共五章);第三部分邏輯系統(tǒng)設計案例(共六章)。將常用邏輯模塊突顯出來,主要是希望更多反映模塊化編程思想和邏輯系統(tǒng)設計團隊分工合作的趨勢。
本書的編輯整理工作得到東南大學教務處的立項支持,并在Xilinx大學計劃的支持下進行,相關章節(jié)內(nèi)容邀請了Xilinx大學計劃的應用工程師團哲恒、實習生崔宏宇,以及東南大學電子科學與工程學院電路與系統(tǒng)方向的研究生參與整理,在此一并感謝。
本書編輯整理均在編者的日常教學和大學計劃工作之余進行,并分工合作完成,系統(tǒng)性和文字風格一致性可能會有所差異,并難免一些錯漏,有待讀者不斷指出并修改。編者們也會持續(xù)補充設計案例并整理教學應用相關的教學資料,也希望大家能不斷反饋相關意見,使本書能得到良好的修編,改進目標和方向。
編著者2017年3月
湯勇明教授,東南大學電子科學與工程學院副院長,先后參與完成了國家重點基礎研究發(fā)展(973)計劃項目、國家高技術發(fā)展(863)計劃項目、國防科研項目、江蘇省成果轉化基金項目、國內(nèi)外企業(yè)合作項目等大量科研項目與課題。參與“電子系統(tǒng)設計”等多門課程的教學工作,所指導的本科生、研究生多次參加各類競賽并獲獎。主持和參與校教學改革項目多項,先后獲江蘇省教學成果獎一等獎和二等獎各1次,江蘇省科技進步一等獎1次。發(fā)表國際雜志、國際會議論文多篇,先后被SCI、EI、ISTP等收錄,出版著作1部,累計已獲授權國家發(fā)明專利超過10項。
張圣清博士,任教于東南大學信息科學與工程學院,負責“通信系統(tǒng)”綜合課設計,“數(shù)字圖像處理”等多門FPGA設計技術相關課程,具有豐富的學生創(chuàng)新創(chuàng)業(yè)與競賽指導經(jīng)驗,所指導的學生團隊曾多次奪得全國大學生電子設計競賽一等獎。
陸佳華Xilinx學術合作亞太區(qū)經(jīng)理,于2006年加入Xilinx公司,主要負責Xilinx公司在亞太區(qū)學術圈的教學與科研合作。在可編程邏輯器件領域有超過10年的研發(fā)及市場經(jīng)驗。曾參與了多個Xilinx技術應用指導項目的開發(fā),同時也編著了全球*本NetFPGA開發(fā)指導圖書以及*本Zynq開發(fā)指導圖書。
*部分邏輯設計基礎
第1章邏輯設計概述及Vivado基礎
1.1邏輯設計概況
1.2VerilogHDL語言基礎
1.2.1硬件描述語言概述
1.2.2VerilogHDL語言要素和設計流程
1.3PLD器件基礎
1.3.1可編程邏輯器件技術發(fā)展歷程
1.3.2FPGA和CPLD簡介
1.3.3XilinxFPGA介紹
1.3.4FPGA選型應該考慮的問題
1.4Vivado開發(fā)環(huán)境及設計流程
1.4.1Vivado功能介紹
1.4.2Vivado用戶界面介紹和菜單操作
1.4.3Vivado開發(fā)流程
第2章布爾代數(shù)和VerilogHDL基礎
2.1布爾代數(shù)
2.1.1三種基本邏輯門
2.1.2四種常用邏輯門
2.2布爾定律
2.2.1單變量布爾定律
2.2.2雙變量和三變量的布爾定律
2.3布爾代數(shù)化簡
2.3.1公式法化簡
2.3.2卡諾圖化簡
2.4VerilogHDL語言基礎
2.4.1VerilogHDL模塊及端口
2.4.2VerilogHDL數(shù)據(jù)類型聲明
2.4.3VerilogHDL運算操作
第3章組合邏輯電路設計基礎
3.1組合電路中的always塊
3.1.1基本語法格式
3.1.2過程賦值
3.1.3變量的數(shù)據(jù)類型
3.1.4簡單實例
3.2條件語句
3.2.1ifelse語句
3.2.2case語句
3.3循環(huán)語句
3.3.1for語句
3.3.2repeat語句
3.3.3while語句
3.3.4forever語句
3.4always塊的一般編碼原則
3.4.1組合電路代碼中常見的錯誤
3.4.2組合電路中always塊的使用原則
3.5常數(shù)和參數(shù)
3.5.1常數(shù)
3.5.2參數(shù)
3.6設計實例
3.6.1多路選擇器
3.6.2比較器
3.6.3譯碼器和編碼器
3.6.4十六進制數(shù)七段LED顯示譯碼器
3.6.5二進制—BCD碼轉換器
3.7練習題
第4章時序電路設計基礎
4.1觸發(fā)器和鎖存器
4.1.1基本D觸發(fā)器
4.1.2含異步復位的D觸發(fā)器
4.1.3含異步復位和同步使能的D觸發(fā)器
4.1.4基本鎖存器
4.1.5含清0控制的鎖存器
4.2寄存器
4.2.11位寄存器
4.2.2N位寄存器
4.2.3寄存器組
4.3移位寄存器
4.3.1具有同步預置功能的8位移位寄存器
4.3.28位通用移位寄存器
4.4計數(shù)器
4.4.1簡單的二進制計數(shù)器
4.4.2通用二進制計數(shù)器
4.4.3模m計數(shù)器
4.5設計實例
4.5.1數(shù)碼管掃描顯示電路
4.5.2秒表
4.6練習題
第5章有限狀態(tài)機設計基礎
5.1引言
5.1.1有限狀態(tài)機的特點
5.1.2Mealy狀態(tài)機和Moore狀態(tài)機
5.1.3有限狀態(tài)機的表示方法
5.2有限狀態(tài)機代碼實現(xiàn)
5.3設計實例
5.3.1序列檢測器設計
5.3.2ADC采樣控制電路設計
5.3.3按鍵消抖電路設計
5.4課程練習
第6章邏輯設計工程技術基礎
6.1數(shù)字電路穩(wěn)定性
6.2組合邏輯與毛刺
6.2.1組合邏輯設計中的毛刺現(xiàn)象
6.2.2組合邏輯設計中毛刺的處理
6.3異步設計與毛刺
6.3.1異步時序電路中的毛刺現(xiàn)象
6.3.2異步時序電路中毛刺的處理
6.4VerilogHDL設計中的編程風格
6.4.1強調代碼編寫風格的必要性
6.4.2強調編寫規(guī)范的宗旨
6.4.3變量及信號命名規(guī)范
6.4.4編碼格式規(guī)范
6.5Xilinx開發(fā)環(huán)境中的其他邏輯設計輔助工具
第二部分常用邏輯設計模塊
第7章Vivado數(shù)字積木流程
7.1IP基礎
7.2打包屬于自己的IP
7.3IP設計示例——二進制轉格雷碼
7.4練習題
第8章串行通信接口控制器
8.1UART串口通信協(xié)議及控制器設計
8.1.1UART協(xié)議介紹
8.1.2UART協(xié)議實例
8.2PS/2協(xié)議及實例設計
8.2.1PS/2協(xié)議介紹
8.2.2PS/2設計實例
8.3SPI同步串行總線協(xié)議及控制器設計
8.3.1SPI協(xié)議介紹
8.3.2SPI控制器模塊實例
8.4I2C兩線式串行總線協(xié)議及控制器設計
8.4.1I2C協(xié)議介紹
8.4.2I2C模塊設計實例
8.5練習題
第9章RAM接口控制器
9.1內(nèi)部存儲器
9.1.1FIFO
9.1.2單端口RAM設計
9.1.3雙端口RAM設計
9.2外部存儲器
9.2.1DRAM介紹
9.2.2DDRSDRAM原理
9.2.3DDRSDRAM控制器原理
9.3練習題
第10章字符點陣顯示模塊接口控制器
10.1字符型液晶控制器設計
10.1.1LCD原理
10.1.2字符型LCD1602模塊
10.1.3字符型液晶模塊顯示實例
10.2點陣OLED控制器設計
10.2.1OLED原理
10.2.2OLED驅動原理
10.2.3OLED顯示實例
10.3練習題
第11章VGA接口控制器
11.1CRT顯示器原理
11.2VGA控制器設計
11.2.1VGA視頻接口的概念
11.2.2VGA的接口信號
11.2.3行同步和場同步
11.3VGA接口設計實例
11.3.1VGA顯示條紋和棋盤格圖像
11.3.2VGA圖像顯示實例(文字/圖片顯示或者數(shù)碼相框)
11.3.3VGAIP的使用
11.4練習題
第12章數(shù)字圖像采集
12.1數(shù)字圖像采集概述
12.2系統(tǒng)設計原理
12.2.1系統(tǒng)架構
12.2.2OV7725芯片介紹
12.2.3OV7725SCCB協(xié)議
12.2.4OV7725配置寄存器
12.2.5OV7725圖像采集
12.2.6BlockRAM存儲單元
12.2.7VGA顯示的實現(xiàn)
12.3模塊搭建與綜合實現(xiàn)
12.4系統(tǒng)調試及板級驗證
12.4.1引腳分配
12.4.2模塊連接
12.5練習題
第三部分邏輯系統(tǒng)設計案例
第13章數(shù)字邏輯系統(tǒng)設計案例:數(shù)字鐘
13.1數(shù)字鐘設計案例
13.1.1實驗原理
13.1.2實驗設計流程
13.2基于集成邏輯分析儀的調試
13.3約束設計
13.3.1物理約束
13.3.2時序約束
13.4練習題
第14章單周期處理器設計實例
14.1單周期處理器體系架構簡介
14.1.1單周期處理器指令集簡介
14.1.2單周期處理器系統(tǒng)結構
14.2設計流程
14.2.1實驗原理
14.2.2設計與驗證
第15章數(shù)字信號處理實例:FIR濾波器
15.1FIR濾波器簡介
15.2基于HLS的FIR濾波器實現(xiàn)流程
15.3工程測試
15.4生成IP
15.5練習題
第16章數(shù)字圖像處理設計案例
16.1項目概述
16.2硬件介紹
16.3模塊介紹
16.3.1RGB轉HSV模塊
16.3.2ColorDetect色彩檢測及坐標計算
16.4舵機控制模塊
16.5實例實現(xiàn)過程
16.6板級驗證
16.7練習題
第17章大學生FPGA設計案例
17.1邏輯控制
17.2圖像處理
17.2.1VGA控制顏色
17.2.2視力表
17.2.3手部運動檢測系統(tǒng)
17.3儀表儀器
17.3.1數(shù)字示波器
17.3.2邏輯分析儀
17.3.3波形發(fā)生器
17.4其他
第18章Xilinx資源導讀
18.1獲取本書參考例程
18.1.1Github介紹及使用
18.1.2OpenHW介紹
18.1.3Xilinx各類比賽
18.2Xilinx網(wǎng)站
18.2.1FPGA應用與解決方案
18.2.2文檔資料查找
18.2.3Vivado工具和License的下載以及更新
18.2.4問題的查找
18.2.5Xilinx社區(qū)
18.3視頻教程
18.4Vivado學習參考文檔
參考文獻
你還可能感興趣
我要評論
|