本書根據(jù)課堂教學(xué)和實驗操作的要求,以提高實際工程設(shè)計能力為目的,深入淺出地對EDA技術(shù)、Verilog HDL硬件描述語言、FPGA開發(fā)應(yīng)用及相關(guān)知識做了系統(tǒng)和完整的介紹,使讀者通過本書的學(xué)習(xí)并完成推薦的實驗,能初步了解和掌握EDA的基本內(nèi)容及實用技術(shù)。
本書包括EDA的基本知識、常用EDA工具的使用方法和目標器件的結(jié)構(gòu)原理、以向?qū)问胶蛯嵗秊橹鞯姆椒ń榻B的多種不同的設(shè)計輸入方法、對Verilog的設(shè)計優(yōu)化以及基于EDA技術(shù)的典型設(shè)計項目。各章都安排了習(xí)題或針對性較強的實驗與設(shè)計。書中列舉的大部分Verilog設(shè)計實例和實驗示例實現(xiàn)的EDA工具平臺是Quartus II,硬件平臺是Cyclone III系列FPGA,并在EDA實驗系統(tǒng)上通過了硬件測試。
本書可作為高等院校電子工程、通信、工業(yè)自動化、計算機應(yīng)用技術(shù)、電子對抗、儀器儀表、數(shù)字信號或圖像處理等學(xué)科的本科生或研究生的電子設(shè)計、EDA技術(shù)課程和Verilog HDL硬件描述語言的教材及實驗指導(dǎo)書,同時也可作為相關(guān)專業(yè)技術(shù)人員的自學(xué)參考書。
第1章 EDA技術(shù)概述
1.1 EDA技術(shù)及其發(fā)展
1.2 EDA技術(shù)實現(xiàn)目標
1.3 硬件描述語言Verilog HDL
1.4 其他常用HDL
1.5 HDL綜合
1.6 自頂向下的設(shè)計技術(shù)
1.7 EDA技術(shù)的優(yōu)勢
1.8 EDA設(shè)計流程
1.8.1 設(shè)計輸入(原理圖/HDL文本編輯)
1.8.2 綜合
1.8.3 適配
1.8.4 時序仿真與功能仿真
1.8.5 編程下載
1.8.6 硬件測試 第1章 EDA技術(shù)概述
1.1 EDA技術(shù)及其發(fā)展
1.2 EDA技術(shù)實現(xiàn)目標
1.3 硬件描述語言Verilog HDL
1.4 其他常用HDL
1.5 HDL綜合
1.6 自頂向下的設(shè)計技術(shù)
1.7 EDA技術(shù)的優(yōu)勢
1.8 EDA設(shè)計流程
1.8.1 設(shè)計輸入(原理圖/HDL文本編輯)
1.8.2 綜合
1.8.3 適配
1.8.4 時序仿真與功能仿真
1.8.5 編程下載
1.8.6 硬件測試
1.9 ASIC及其設(shè)計流程
1.9.1 ASIC設(shè)計簡介
1.9.2 ASIC設(shè)計一般流程簡述
1.10 常用EDA工具
1.10.1 設(shè)計輸入編輯器
1.10.2 HDL綜合器
1.10.3 仿真器
1.10.4 適配器
1.10.5 下載器
1.11 Quartus II概述
1.12 IP核
1.13 EDA技術(shù)發(fā)展趨勢管窺
習(xí)題
第2章 FPGA與CPLD的結(jié)構(gòu)原理
2.1 PLD概述
2.1.1 PLD的發(fā)展歷程
2.1.2 PLD分類
2.2 簡單PLD結(jié)構(gòu)原理
2.2.1 邏輯元件符號表示
2.2.2 PROM結(jié)構(gòu)原理
2.2.3 PLA結(jié)構(gòu)原理
2.2.4 PAL結(jié)構(gòu)原理
2.2.5 GAL結(jié)構(gòu)原理
2.3 CPLD的結(jié)構(gòu)原理
2.4 FPGA的結(jié)構(gòu)原理
2.4.1 查找表邏輯結(jié)構(gòu)
2.4.2 Cyclone III系列器件的結(jié)構(gòu)原理
2.5 硬件測試
2.5.1 內(nèi)部邏輯測試
2.5.2 JTAG邊界掃描
2.6 PLD產(chǎn)品概述
2.6.1 Altera公司的PLD器件
2.6.2 Lattice公司的PLD器件
2.6.3 Xilinx公司的PLD器件
2.6.4 Actel公司的PLD器件
2.6.5 Altera的FPGA配置方式
2.7 CPLD/FPGA的編程與配置
2.7.1 CPLD在系統(tǒng)編程
2.7.2 FPGA配置方式
2.7.3 FPGA專用配置器件
2.7.4 使用單片機配置FPGA
2.7.5 使用CPLD配置FPGA
習(xí)題
第3章 組合電路的Verilog設(shè)計
3.1 半加器電路的Verilog描述
3.2 多路選擇器的Verilog描述
3.2.1 4選1多路選擇器及case語句表述方式
3.2.2 4選1多路選擇器及assign語句表述方式
3.2.3 4選1多路選擇器及條件賦值語句表述方式
3.2.4 4選1多路選擇器及條件語句表述方式
3.3 Verilog加法器設(shè)計
3.3.1 全加器設(shè)計及例化語句應(yīng)用
3.3.2 半加器的UDP結(jié)構(gòu)建模描述方式
3.3.3 利用UDP元件設(shè)計多路選擇器
3.3.4 8位加法器設(shè)計及算術(shù)操作符應(yīng)用
3.3.5 算術(shù)運算操作符
3.3.6 BCD碼加法器設(shè)計
3.4 組合邏輯乘法器設(shè)計
3.4.1 參數(shù)定義關(guān)鍵詞parameter和localparam
3.4.2 整數(shù)型寄存器類型定義
3.4.3 for語句用法
3.4.4 移位操作符及其用法
3.4.5 兩則乘法器設(shè)計示例
3.4.6 repeat語句用法
3.4.7 while語句用法
3.4.8 parameter的參數(shù)傳遞功能
3.5 RTL概念
習(xí)題
第4章 時序仿真與硬件實現(xiàn)
4.1 Verilog程序輸入與仿真測試
4.1.1 編輯和輸入設(shè)計文件
4.1.2 創(chuàng)建工程
4.1.3 全程編譯前約束項目設(shè)置
4.1.4 全程綜合與編譯
4.1.5 時序仿真
4.1.6 RTL圖觀察器應(yīng)用
4.2 引腳鎖定與硬件測試
4.2.1 引腳鎖定
4.2.2 編譯文件下載
4.2.3 AS直接編程模式
4.2.4 JTAG間接編程模式
4.2.5 USB-Blaster驅(qū)動程序安裝方法
4.3 電路原理圖設(shè)計流程
4.4 利用屬性表述實現(xiàn)引腳鎖定
4.5 keep屬性應(yīng)用
4.6 SignalProbe使用方法
4.7 宏模塊邏輯功能查詢
習(xí)題
實驗與設(shè)計
4-1 多路選擇器設(shè)計實驗
4-2 8位加法器設(shè)計實驗
4-3 8位硬件乘法器設(shè)計實驗
4-4 十六進制7段數(shù)碼顯示譯碼器設(shè)計
第5章 時序電路的Verilog設(shè)計
5.1 基本時序元件的Verilog表述
5.1.1 基本D觸發(fā)器及其Verilog表述
5.1.2 用UDP表述D觸發(fā)器
5.1.3 含異步復(fù)位和時鐘使能的D觸發(fā)器及其Verilog表述
5.1.4 含同步復(fù)位控制的D觸發(fā)器及其Verilog表述
5.1.5 基本鎖存器及其Verilog表述
5.1.6 含清0控制的鎖存器及其Verilog表述
5.1.7 異步時序電路的Verilog表述特點
5.1.8 時鐘過程表述的特點和規(guī)律
5.2 二進制計數(shù)器及其Verilog表述
5.2.1 簡單加法計數(shù)器及其Verilog表述
5.2.2 實用加法計數(shù)器設(shè)計
5.3 移位寄存器的Verilog表述與設(shè)計
5.3.1 含同步預(yù)置功能的移位寄存器設(shè)計
5.3.2 使用移位操作符設(shè)計移位寄存器
5.4 可預(yù)置型計數(shù)器設(shè)計
5.4.1 同步加載計數(shù)器
5.4.2 異步加載計數(shù)器
5.4.3 異步清0加載計數(shù)器
5.4.4 同步清0加載計數(shù)器
5.5 時序電路硬件設(shè)計與仿真示例
5.5.1 編輯電路、創(chuàng)建工程和仿真測試
5.5.2 FPGA硬件測試
習(xí)題
實驗與設(shè)計
5-1 應(yīng)用宏模塊設(shè)計數(shù)字頻率計
5-2 計數(shù)器設(shè)計實驗
5-3 數(shù)碼掃描顯示電路設(shè)計
5-4 模可控計數(shù)器設(shè)計
5-5 串行靜態(tài)顯示控制電路設(shè)計
5-6 高速硬件除法器設(shè)計
5-7 不同類型的移位寄存器設(shè)計
第6章 Quartus II應(yīng)用深入
6.1 SignalTap II的使用方法
6.2 編輯SignalTap II的觸發(fā)信號
6.3 Fitter Settings項設(shè)置
6.4 功能塊Chip Planner應(yīng)用
6.4.1 Chip Planner應(yīng)用流程說明
6.4.2 Chip Planner說明
6.5 Synplify的應(yīng)用及接口方法
6.5.1 Synplify使用流程
6.5.2 Synplify Pro與Quartus II接口
習(xí)題
實驗與設(shè)計
6-1 VGA彩條信號顯示控制電路設(shè)計
6-2 移位相加型8位硬件乘法器設(shè)計
6-3 半整數(shù)與奇數(shù)分頻器設(shè)計
6-4 基于Verilog代碼的頻率計設(shè)計
第7章 LPM宏模塊的應(yīng)用
7.1 計數(shù)器LPM宏模塊調(diào)用
7.1.1 計數(shù)器LPM模塊文本代碼的調(diào)用
7.1.2 LPM計數(shù)器代碼與參數(shù)傳遞語句
7.1.3 創(chuàng)建工程與仿真測試
7.2 利用屬性控制乘法器的構(gòu)建
7.3 LPM_RAM宏模塊的設(shè)置與使用
7.3.1 初始化文件及其生成
7.3.2 以原理圖方式對LPM_RAM進行設(shè)置和調(diào)用
7.3.3 測試LPM_RAM
7.3.4 存儲器的Verilog代碼描述
7.3.5 存儲器設(shè)計的結(jié)構(gòu)控制
7.4 LPM_ROM的定制和使用示例
7.4.1 LPM_ROM的調(diào)用
7.4.2 簡易正弦信號發(fā)生器設(shè)計
7.4.3 正弦信號發(fā)生器硬件實現(xiàn)和測試
7.5 在系統(tǒng)存儲器數(shù)據(jù)讀寫編輯器應(yīng)用
7.6 LPM嵌入式鎖相環(huán)調(diào)用
7.7 In-System Sources and Probes Editor使用方法
7.8 數(shù)控振蕩器核使用方法
7.9 FIR核使用方法
7.10 DDS實現(xiàn)原理與應(yīng)用
7.10.1 DDS原理
7.10.2 DDS信號發(fā)生器設(shè)計示例
習(xí)題
實驗與設(shè)計
7-1 查表式硬件運算器設(shè)計
7-2 正弦信號發(fā)生器設(shè)計
7-3 簡易邏輯分析儀設(shè)計
7-4 DDS正弦信號發(fā)生器設(shè)計
7-5 移相信號發(fā)生器設(shè)計
7-6 16位×16位高速硬件乘法器設(shè)計
第8章 Verilog設(shè)計深入
8.1 過程中的兩類賦值語句
8.1.1 未指定延時的阻塞式賦值語句
8.1.2 指定了延時的阻塞式賦值
8.1.3 未指定延時的非阻塞式賦值
8.1.4 指定了延時的非阻塞式賦值
8.1.5 深入認識阻塞與非阻塞式賦值的特點
8.1.6 不同的賦初值方式導(dǎo)致不同綜合結(jié)果的示例
8.2 過程語句歸納
8.2.1 過程語句應(yīng)用總結(jié)
8.2.2 深入認識不完整條件語句與時序電路的關(guān)系
8.3 if語句歸納
8.3.1 if語句的一般表述形式
8.3.2 關(guān)注if語句中的條件指示
8.4 三態(tài)與雙向端口設(shè)計
8.4.1 三態(tài)控制電路設(shè)計
8.4.2 雙向端口設(shè)計
8.4.3 三態(tài)總線控制電路設(shè)計
習(xí)題
實驗與設(shè)計
8-1 硬件消抖動電路設(shè)計
8-2 4×4陣列鍵盤鍵信號檢測電路設(shè)計
8-3 直流電機綜合測控系統(tǒng)設(shè)計
8-4 VGA簡單圖像顯示控制模塊設(shè)計
8-5 樂曲硬件演奏電路設(shè)計
第9章 Verilog系統(tǒng)設(shè)計優(yōu)化
9.1 資源優(yōu)化
9.1.1 資源共享
9.1.2 邏輯優(yōu)化
9.1.3 串行化
9.2 速度優(yōu)化
9.2.1 流水線設(shè)計
9.2.2 寄存器配平
9.2.3 關(guān)鍵路徑法
9.2.4 乒乓操作法
9.2.5 加法樹法
習(xí)題
實驗與設(shè)計
9-1 采用流水線技術(shù)設(shè)計高速數(shù)字相關(guān)器
9-2 線性反饋移位寄存器設(shè)計
9-3 基于UART串口控制的模型電子琴設(shè)計
9-4 PS2鍵盤控制模型電子琴電路設(shè)計
9-5 AM幅度調(diào)制信號發(fā)生器設(shè)計
第10章 Verilog狀態(tài)機設(shè)計技術(shù)
10.1 Verilog狀態(tài)機的一般形式
10.1.1 狀態(tài)機的特點與優(yōu)勢
10.1.2 狀態(tài)機的一般結(jié)構(gòu)
10.1.3 初始控制與表述
10.2 Moore型狀態(tài)機及其設(shè)計
10.2.1 多過程結(jié)構(gòu)狀態(tài)機
10.2.2 序列檢測器及其狀態(tài)機設(shè)計
10.3 Mealy型狀態(tài)機設(shè)計
10.4 狀態(tài)機圖形編輯設(shè)計
10.5 不同編碼類型狀態(tài)機
10.5.1 直接輸出型編碼
10.5.2 用宏定義語句定義狀態(tài)編碼
10.5.3 宏定義命令語句
10.5.4 順序編碼
10.5.5 一位熱碼編碼
10.5.6 狀態(tài)編碼設(shè)置
10.6 異步有限狀態(tài)機設(shè)計
10.7 安全狀態(tài)機設(shè)計
10.7.1 狀態(tài)導(dǎo)引法
10.7.2 狀態(tài)編碼監(jiān)測法
10.7.3 借助EDA工具自動生成安全狀態(tài)機
10.8 硬件數(shù)字技術(shù)排除毛刺
10.8.1 延時方式去毛刺
10.8.2 邏輯方式去毛刺
習(xí)題
實驗與設(shè)計
10-1 序列檢測器設(shè)計
10-2 ADC采樣控制電路設(shè)計
10-3 數(shù)據(jù)采集模塊設(shè)計
10-4 五功能智能邏輯筆設(shè)計
第11章 16位實用CPU創(chuàng)新設(shè)計
11.1 KX9016的結(jié)構(gòu)與特色
11.2 KX9016基本硬件系統(tǒng)設(shè)計
11.2.1 單步節(jié)拍發(fā)生模塊
11.2.2 ALU模塊
11.2.3 比較器模塊
11.2.4 基本寄存器與寄存器陣列組
11.2.5 移位器模塊
11.2.6 程序與數(shù)據(jù)存儲器模塊
11.3 KX9016v1指令系統(tǒng)設(shè)計
11.3.1 指令格式
11.3.2 指令操作碼
11.3.3 軟件程序設(shè)計實例
11.3.4 KX9016v1控制器設(shè)計
11.3.5 指令設(shè)計實例詳解
11.4 KX9016的時序仿真與硬件測試
11.4.1 時序仿真與指令執(zhí)行波形分析
11.4.2 CPU工作情況的硬件測試
11.5 KX9016應(yīng)用程序設(shè)計實例和系統(tǒng)優(yōu)化
11.5.1 乘法算法及其硬件實現(xiàn)
11.5.2 KX9016v1的硬件系統(tǒng)優(yōu)化
習(xí)題
實驗與設(shè)計
11-1 16位CPU驗證性設(shè)計綜合實驗
11-2 新指令設(shè)計及程序測試實驗
11-3 16位CPU的優(yōu)化設(shè)計與創(chuàng)新
11-4 CPU創(chuàng)新設(shè)計競賽
第12章 MCU與FPGA片上系統(tǒng)開發(fā)
12.1 FPGA擴展MCU開發(fā)技術(shù)
12.1.1 FPGA擴展方案及其系統(tǒng)設(shè)計技術(shù)
12.1.2 基于單片機IP軟核的SOC設(shè)計方案
12.2 FPGA擴展方案設(shè)計實例
12.2.1 串進并出/并進串出雙向端口擴展模塊設(shè)計
12.2.2 8位四通道數(shù)據(jù)交換擴展模塊設(shè)計
12.2.3 存儲器讀寫的FPGA擴展模塊設(shè)計
12.2.4 四通道PWM信號發(fā)生器接口模塊設(shè)計
12.2.5 李薩如圖波形發(fā)生器擴展模塊設(shè)計
12.3 基于單片機核的FPGA片上系統(tǒng)設(shè)計
12.3.1 單片機擴展串進并出/并進串出模塊的SOC設(shè)計
12.3.2 擴展SRAM模塊的片上系統(tǒng)設(shè)計
12.3.3 擴展移相信號發(fā)生器模塊的片上系統(tǒng)設(shè)計
實驗與設(shè)計
12-1 單片機串口擴展FPGA片上系統(tǒng)設(shè)計
12-2 單片機數(shù)據(jù)交換FPGA擴展電路設(shè)計
12-3 擴展外部數(shù)據(jù)存儲器的FPGA單片系統(tǒng)設(shè)計
12-4 四通道PWM信號發(fā)生器及其MCU控制系統(tǒng)設(shè)計
12-5 移相信號發(fā)生器和掃頻信號發(fā)生器的片上系統(tǒng)設(shè)計
12-6 李薩如圖波形發(fā)生器的FPGA片上系統(tǒng)設(shè)計
12-7 脈寬/占空比/等精度頻率多功能測試儀設(shè)計
第13章 Verilog語句語法補充說明
13.1 Verilog文字規(guī)則
13.2 數(shù)據(jù)類型
13.2.1 net網(wǎng)線類型
13.2.2 register寄存器類型
13.2.3 存儲器類型
13.3 操作符
13.4 常用語句補充
13.4.1 initial過程語句使用示例
13.4.2 forever循環(huán)語句
13.4.3 編譯指示語句
13.4.4 任務(wù)和函數(shù)語句
13.5 用庫元件實現(xiàn)結(jié)構(gòu)描述
習(xí)題
實驗與設(shè)計
13-1 SPWM脈寬調(diào)制控制系統(tǒng)設(shè)計
13-2 點陣型與字符型液晶顯示器驅(qū)動控制電路設(shè)計
13-3 數(shù)字彩色液晶顯示控制電路設(shè)計
13-4 串行ADC/DAC控制電路設(shè)計
第14章 Verilog Test Bench仿真
14.1 Verilog行為仿真流程
14.2 Verilog測試基準實例
14.3 Verilog Test Bench測試流程
14.4 Verilog系統(tǒng)任務(wù)和系統(tǒng)函數(shù)
14.4.1 系統(tǒng)任務(wù)和系統(tǒng)函數(shù)
14.4.2 預(yù)編譯語句
14.5 延時模型
14.5.1 #延時和門延時
14.5.2 延時說明塊
14.6 其他仿真語句
14.6.1 fork_join塊語句
14.6.2 wait語句
14.6.3 force語句和release語句
14.6.4 deassign語句
14.7 仿真激勵信號的產(chǎn)生
14.8 Verilog數(shù)字系統(tǒng)仿真
習(xí)題
實驗與設(shè)計
14-1 在ModelSim上對計數(shù)器的Test Bench進行仿真
14-2 在ModelSim上進行16位累加器設(shè)計仿真
附錄 EDA開發(fā)系統(tǒng)及相關(guān)軟硬件
參考文獻
在現(xiàn)代電子設(shè)計領(lǐng)域,Verilog HDL作為IEEE標準的兩大主流HDL之一,相比于VHDL,具有易學(xué)易用和享有ASIC設(shè)計領(lǐng)域的主導(dǎo)地位等諸多優(yōu)勢,在全球范圍內(nèi)其用戶覆蓋率一直處于上升趨勢;統(tǒng)計資料表明Verilog HDL現(xiàn)已超過80%的行業(yè)覆蓋率,例如美國使用Verilog HDL的工程師占HDL設(shè)計行業(yè)工程師的90%以上,并仍有上升趨勢。由此勢必導(dǎo)致我國Verilog HDL工程師和相關(guān)就業(yè)領(lǐng)域人才需求的不斷增加。本書以Verilog HDL作為基本硬件描述語言來介紹EDA技術(shù)。作為教科書,與科學(xué)出版社出版的《EDA技術(shù)實用教程——VHDL版》構(gòu)成了姐妹篇。
為了適應(yīng)EDA技術(shù)在高新技術(shù)行業(yè)就業(yè)中的需求和高校教學(xué)的要求,突出EDA技術(shù)的實用性,以及面向工程實際的特點和自主創(chuàng)新能力的培養(yǎng),作者力圖將EDA技術(shù)最新的發(fā)展成果、現(xiàn)代電子設(shè)計最前沿的理論和技術(shù)、國際業(yè)界普遍接受和認可的EDA軟硬件開發(fā)平臺的實用方法,通過本書合理的綜合和萃取,奉獻給廣大讀者。
隨著EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大,EDA技術(shù)在電子信息、通信、自動控制及計算機應(yīng)用等領(lǐng)域的重要性日益突出。同時隨著技術(shù)市場與人才市場對EDA技術(shù)需求的不斷提高,產(chǎn)品的市場效率和技術(shù)要求也必然會反映到教學(xué)和科研領(lǐng)域中來。以最近幾屆全國大學(xué)生電子設(shè)計競賽為例,涉及EDA技術(shù)的賽題從未缺席過。對諸如斯坦福大學(xué)、麻省理工學(xué)院等美國一些著名院校的電子與計算機實驗室建設(shè)情況的調(diào)研也表明,其EDA技術(shù)的教學(xué)與實踐的內(nèi)容也十分密集,在其本科和研究生教學(xué)中有兩個明顯的特點:其一,各專業(yè)中EDA教學(xué)實驗課程的普及率和滲透率極高;其二,幾乎所有實驗項目都部分或全部地融入了EDA技術(shù),其中包括數(shù)字電路、計算機組成與設(shè)計、計算機接口技術(shù)、數(shù)字通信技術(shù)、嵌入式系統(tǒng)、DSP等實驗內(nèi)容,并且更多地注重創(chuàng)新性實驗。這顯然是科技發(fā)展和市場需求雙重影響下自然產(chǎn)生的結(jié)果。
基于工程領(lǐng)域中的EDA技術(shù)應(yīng)用的巨大實用價值,以及重視EDA教學(xué)中實踐能力和創(chuàng)新意識培養(yǎng)的極端重要性,我們對本書各章節(jié)做了相應(yīng)的安排,其特點有以下三個。
1. 注重實踐和創(chuàng)新能力的培養(yǎng)
除在各章中安排了許多習(xí)題外,絕大部分章節(jié)還安排了針對性較強的實驗與設(shè)計項目,使學(xué)生對每一章的課堂教學(xué)內(nèi)容和教學(xué)效果能及時通過實驗得以消化和強化,并盡可能地從學(xué)習(xí)一開始就有機會將理論知識與實踐、自主設(shè)計緊密聯(lián)系起來。
全書包含數(shù)十個實驗及其相關(guān)的設(shè)計項目,這些項目涉及的技術(shù)領(lǐng)域?qū)挘R涉獵密集、針對性強,而且自主創(chuàng)新意識的啟示性好。與本書的示例一樣,所有的實驗項目都通過了EDA工具的仿真測試并通過FPGA平臺的硬件驗證。每一個實驗項目除給出詳細的實驗?zāi)康摹嶒炘砗蛯嶒瀳蟾嬉笸猓己?~5個子項目或子任務(wù)。它們通常分為:第一(層次)實驗任務(wù)是與該章某個闡述內(nèi)容相關(guān)的驗證性實驗,通常提供詳細的并被驗證的設(shè)計源程序和實驗方法,學(xué)生只需將提供的設(shè)計程序輸入計算機,并按要求進行編譯仿真,在實驗系統(tǒng)上實現(xiàn)即可,使學(xué)生有一個初步的感性認識,這也提高了實驗的效率;第二(層次)實驗任務(wù)是要求在上一實驗基礎(chǔ)上做一些改進和發(fā)揮;第三個層次的實驗通常是提出自主設(shè)計的要求和任務(wù);第四、第五個實驗層次則在僅給出一些提示的情況下提出自主創(chuàng)新性設(shè)計的要求。因此,教師可以根據(jù)學(xué)時數(shù)、教學(xué)實驗的要求以及不同的學(xué)生對象,布置不同層次、含不同任務(wù)的實驗項目。
此外,在第五版增加的諸多內(nèi)容中,第11章的內(nèi)容進一步強化了本教材注重實踐和創(chuàng)新能力培養(yǎng)的特色。目前北美許多著名高校,如斯坦福大學(xué)、麻省理工學(xué)院、多倫多大學(xué)等高校的電子信息與工程專業(yè)中,都將CPU的組成及設(shè)計作為EDA技術(shù)課程、硬件描述語言課程或數(shù)字系統(tǒng)設(shè)計課程中必不可少的教學(xué)內(nèi)容和自主實踐項目。而第11章的內(nèi)容很好地體現(xiàn)了EDA技術(shù)教學(xué)的課程要求和發(fā)展趨勢。
2. 高效的教學(xué)模式成就速成
一般認為EDA技術(shù)的難點和學(xué)習(xí)費時的根源在于硬件描述語言。對此,全書做了有針對性的安排:根據(jù)專業(yè)特點,摒棄傳統(tǒng)的計算機語言的教學(xué)模式,打破目前HDL教材通行的編排形式,而以電子線路設(shè)計為基點,從實例的介紹中引出Verilog語句語法內(nèi)容。同時為了盡快進入EDA技術(shù)的實踐階段,熟悉EDA開發(fā)工具及其相關(guān)軟硬件的使用方法,及時安排了大量有針對性的實驗項目,以便讀者能盡早進入數(shù)字系統(tǒng)工程設(shè)計經(jīng)驗的積累和能力提高階段,并能通過這些面向?qū)嶋H的實踐和實驗活動,快速深化對硬件描述語言的理解和掌握對應(yīng)的設(shè)計技巧。
本書通過一些簡單而典型的Verilog HDL設(shè)計示例和電路模型,從具體電路和實用背景下引出相關(guān)的Verilog HDL語言現(xiàn)象和語句規(guī)則,并加以深入淺出的說明,使得讀者僅通過前期一些內(nèi)容的學(xué)習(xí)便能迅速了解并掌握Verilog HDL描述與邏輯電路間的基本關(guān)系,從而極大地降低了HDL的學(xué)習(xí)難度,大幅提高了學(xué)習(xí)效率,快速實現(xiàn)了學(xué)以致用的目的。我們過去多年的實踐已證明這是一種高效學(xué)習(xí)硬件描述語言和EDA技術(shù)的好方法。這種學(xué)習(xí)流程也是目前國外流行的基于情景和工作過程的教學(xué)和學(xué)習(xí)模式,是一種自頂向下的新的學(xué)習(xí)模式。
3. 注重教學(xué)選材的靈活性和完整性相結(jié)合
本書的結(jié)構(gòu)特點決定了授課課時數(shù)可十分靈活,即可長可短,視具體的專業(yè)特點、課程定位及學(xué)習(xí)者的前期教育力度等因素而定,在20~50學(xué)時之間選擇。由于本書的特色和定位,加之EDA技術(shù)課程的特質(zhì),具體教學(xué)可以是粗放型的,其中多數(shù)內(nèi)容,包括實踐項目可直接放手于學(xué)生,更多地讓他們自己去查閱資料、提出問題、解決問題,乃至創(chuàng)新與創(chuàng)造;而授課教師,甚至實驗教師只需做一個啟蒙者、引導(dǎo)者、鼓勵者和學(xué)生成果的檢驗者和評判者。授課的過程多數(shù)只需點到為止,大可不必拘泥細節(jié),面面俱到。但有一個原則,即實驗學(xué)時數(shù)應(yīng)多多益善。事實上,現(xiàn)在任何一門課程的學(xué)時數(shù)總是有限的,為了有效倍增學(xué)生的實踐和自主設(shè)計的時間,可以借鑒清華大學(xué)的一項教改措施,即其電子系本科生從一入學(xué)就人手獲得一塊FPGA實驗開發(fā)板,可從本科一年級一直用到研究生畢業(yè)。這是因為EDA技術(shù)本身就是一個可把全部實驗和設(shè)計帶回家的課程。我校對于這門課也基本采用了這一措施:每個上EDA課的學(xué)生都可借出一套EDA實驗板,使他們能利用自己的計算機在課余時間完成自主設(shè)計項目,強化學(xué)習(xí)效果。實踐表明,這種安排使得實驗課時得到有效延長,教學(xué)成效非常明顯。
本書的定位目標是,基于全書給出的完整的知識結(jié)構(gòu),注重實踐第一的觀念,強化創(chuàng)新意識的培養(yǎng),通過課堂合理的教學(xué)安排,結(jié)合學(xué)生明晰的求知覺悟和踏實的實踐精神,為了即將離開學(xué)校面向招聘者、面向研究生導(dǎo)師、面向社會、面向未來的學(xué)生能多一份自信、多一點信心和多一線希望。因此我們建議應(yīng)該積極鼓勵學(xué)生利用課余時間盡可能學(xué)完本書的全部內(nèi)容,掌握本書介紹的所有EDA工具軟件和相關(guān)開發(fā)手段,并盡可能多地完成本書配置的實驗和設(shè)計任務(wù)。
還有一個問題有必要在此探討,就是在前面曾提到的,本書的定位之說。事實上,自主創(chuàng)新能力的提高絕非一朝一夕之事。多年的教學(xué)實踐告訴我們,針對這一命題的教改必須從兩方面入手,一是教學(xué)內(nèi)容,二是設(shè)課時間;兩者互為聯(lián)系,不可偏廢。
前者主要指建立一個內(nèi)在相關(guān)性好、設(shè)課時間靈活,且易于將創(chuàng)新能力培養(yǎng)寓于知識傳播之中的課程體系。
后者主要指在課程安排的時段上,將這一體系的課程盡可能地提前。這一舉措是成功的關(guān)鍵,因為我們不可能想象到了本科三、四年級才去關(guān)注能力培養(yǎng)會有奇跡發(fā)生,更不可能指望一兩門課程就能解決問題。尤其是以卓越工程師為培養(yǎng)目標的工科高等教育,自主創(chuàng)新能力的培養(yǎng)本身就是一項教學(xué)雙方必須投入密集實踐和探索的創(chuàng)新活動。
我校的EDA技術(shù)國家級精品課程正是針對這一教改目標建立的課程體系,而“數(shù)字電子技術(shù)基礎(chǔ)”是這一體系的組成部分和先導(dǎo)課程。它的提前設(shè)課是整個課程體系提前的必要條件。通過數(shù)年的試點性教學(xué)實踐和經(jīng)驗總結(jié),現(xiàn)已成功在部分本科學(xué)生中將此課程的設(shè)課時間從原來的第4或第5學(xué)期提前到了第1或第2學(xué)期。而這一體系的其他相關(guān)課程,如EDA技術(shù)、單片機、SOC片上系統(tǒng)、計算機接口、嵌入式系統(tǒng)和DSP等也相應(yīng)提前,從而使學(xué)生到二年級時就具備了培養(yǎng)工程實踐和自主開發(fā)能力的條件。
不可否認,數(shù)字電路課程的大幅提前必須要以改革其教學(xué)內(nèi)容為前提,否則將傳統(tǒng)的教學(xué)內(nèi)容強行提前必將歸于失敗。為此,在總結(jié)了數(shù)字電路多年教改成果的基礎(chǔ)上,我們推出了適應(yīng)新需求的教材,即科學(xué)出版社出版的《數(shù)字電子技術(shù)基礎(chǔ)》一書,很好地滿足了當(dāng)前的教改要求。此書創(chuàng)新性地解決了傳統(tǒng)教材中的手工數(shù)字技術(shù)與現(xiàn)代自動化數(shù)字技術(shù)間的關(guān)系,使兩者能平穩(wěn)過渡,且有機融合,在有效促進理論與實踐緊密結(jié)合的同時,強化實踐訓(xùn)練,突顯了創(chuàng)新意識啟蒙的良好效果,同時實現(xiàn)了與后續(xù)課程的良好銜接。盡管這一切尚處于我校的局部教學(xué)實踐中,但已清晰地展示了諸多頗具說服力的證明。例如相比于其他同類情況(如同年級,同專業(yè),同授業(yè)課程等),那些曾經(jīng)參加這一課程體系的學(xué)生在大學(xué)生電子設(shè)計競賽、飛思卡爾車模大賽,以及一些國外企業(yè)主導(dǎo)的自主設(shè)計賽事中,都獲得了更多的獎項和更好的成績。而且這些學(xué)生的獲獎比例逐年提高,例如我校在2011年全國大學(xué)生電子設(shè)計競賽獲一、二等獎項(分別是3個和6個)的學(xué)生中,本科二年級學(xué)生的比例高達80%(這年我校多數(shù)三年級學(xué)生選擇考研復(fù)習(xí),未參賽)。若按傳統(tǒng)的工科本科教學(xué)流程,二年級就有能力獲全國一等獎是不可想象的事!
其實,類似的教改活動和教改成績,我校遠非唯一。國內(nèi)早有不少院校將數(shù)字電路放在第1或第2學(xué)期,其實踐訓(xùn)練的內(nèi)容包括超過數(shù)萬至數(shù)十萬邏輯門規(guī)模的數(shù)字系統(tǒng)自主設(shè)計訓(xùn)練,不少受益的學(xué)生在各類電子設(shè)計競賽中也都獲得了好成績。前面提到的清華大學(xué)的教改活動也說明,他們至少有部分學(xué)生于本科一年級就有數(shù)字系統(tǒng)設(shè)計方面的訓(xùn)練;后來的調(diào)研也證明了這一點,如該校計算機專業(yè)本科二年級學(xué)生就能自主設(shè)計出各種極具創(chuàng)新特色的數(shù)字系統(tǒng),如語音處理及數(shù)字立體聲播放、硬件超級瑪麗游戲顯示與控制系統(tǒng)等;又如東南大學(xué)在一次省級數(shù)字電路課程(尚未學(xué)EDA)電子設(shè)計競賽中,有一組同學(xué)完成了指紋識別數(shù)字鎖的設(shè)計而獲一等獎;再如美國密歇根大學(xué)本科一年級學(xué)生就能設(shè)計數(shù)字電子琴這樣的復(fù)雜系統(tǒng),其中包括用FPGA控制VGA顯示五線譜,PS2鍵盤作為琴鍵及數(shù)字立體聲音樂播放等。
有兩個問題必須在此說明,第一個問題是關(guān)于本書對于Quartus II版本選擇的問題。盡管目前Altera公司早已頒布了Quartus II 12.0,但本書中的示例說明仍然選擇Quartus II 9.x。這是因為Altera公司已將Quartus II 10.0及此后版本的軟件中曾經(jīng)一貫內(nèi)置的門級波形仿真器移除了,并推薦使用接口于Quartus II的ModelSim-Altera仿真器。然而這一舉措對于初學(xué)者并不是好消息。因為必須承認,Quartus II 9.x及之前版本軟件中一直內(nèi)置的波形仿真器的易學(xué)、高效和便捷的巨大優(yōu)勢,對于EDA教學(xué)和初學(xué)者的學(xué)習(xí)是十分重要的。況且Quartus II 9.x與Quartus II 12.0相比,總體上變化不大,而且本書在第14章中針對Test Bench仿真,重點介紹了ModelSim-Altera的使用方法。
第二個問題是針對本書中的實驗和實踐項目所能提供的演示示例源設(shè)計文件的問題。本書中多數(shù)實驗?zāi)軌蛱峁┙?jīng)硬件驗證調(diào)試好的演示示例源設(shè)計文件,目的是為讀者能順利完成實驗驗證和設(shè)計;有的示例的目的是希望能啟發(fā)或引導(dǎo)讀者完成更有創(chuàng)意的設(shè)計,其中一些示例盡管看上去頗有創(chuàng)意,但都不能說是最佳或最終結(jié)果,這給讀者留有許多改進和發(fā)揮的余地。此外還有少數(shù)示例無法提供源代碼(只能提供演示文件),這是考慮到本書作者以外的設(shè)計者的著作權(quán),但這些示例仍能給讀者在設(shè)計的可行性、創(chuàng)意和創(chuàng)新方面以寶貴的啟示。
為了本書的順利出版,杭州康芯電子有限公司的高級工程師姜兆剛先生在IP核的應(yīng)用、實驗設(shè)計項目的驗證和各種EDA軟件工具的安裝調(diào)試等方面完成了大量的和無可替代的工作,在此表示誠摯的謝意!
為了盡可能降低成本和售價,本書未配置光盤。與本書相關(guān)的資料,包括配套課件、實驗示例源程序資料、相關(guān)設(shè)計項目的參考資料和附錄中提到的mif文件編輯生成軟件等文件資料都可免費索取,此外,對于一些與本書相關(guān)的工具軟件,包括Quartus II、Synplify Pro、ModelSim-Altera和DSP-Builder/MATLAB等EDA軟件的安裝使用問題的咨詢都可瀏覽網(wǎng)址www.kx-soc.com,或與作者探討(pmr123@sina.cn)。所有這些(主要是教學(xué)課件)也可直接與科學(xué)出版社聯(lián)系(www.abook.cn)。
本書第一、二作者是杭州電子科技大學(xué)教師,第三作者是桂林電子科技大學(xué)教師。
現(xiàn)代電子設(shè)計技術(shù)是發(fā)展的,相應(yīng)的教學(xué)內(nèi)容和教學(xué)方法也應(yīng)不斷地改進,還有許多問題值得深入探討,我們真誠地歡迎讀者對書中的錯誤與有失偏頗之處給予批評指正。
作 者
2013年5月
于杭州電子科技大學(xué)