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