具體描述
| 圖書基本信息 |
| 書名: | 數字芯核電路版權保護技術與應用
|
| 叢書名: | |
| 作者/主編: | 梁偉
|
| 齣版社: | 東南大學齣版社 |
| ISBN號: | 9787564155858 |
| 齣版年份: | 2015年4月1日 |
| |
| 版次: | 第1 版 |
| 總頁數: | 211頁 |
| 開本: | 32 |
| 圖書定價: | 32元 |
| 實際重量: | 358g |
| 新舊程度: | 正版全新 |
梁偉,男,1978年P2月生,博士,副教授,碩士研究生導師。中國計算機學會會員,湖南科技大學計算機網絡與嵌入式研究所副所長,近年來一直從事集成電路知識産權保護、信息隱藏以及集成電路設計等理論與工程應用方麵的研究工作,主持和參與完成包括國傢自然科學基金項目、973子項、863項目、湖南省自然科學基金項目等研究項目12項。獲得國傢授權發明專利5項與軟件著作登記權5項,在國內外發錶學術論文50餘篇,其中SC0/E0收錄的期刊論文15篇。
篇芯核水印技術基礎
1緒論
1.1研究意義
1.2研究背景
1.3研究現狀
1.3.1FPGA芯核水印技術
1.3.2FSM芯核水印技術
1.3.3可測試芯核水印技術
1.4本書主要工作及結構
2Ip水印技術概述
2.1數字IP設計基礎
2.1.1IP的定義和分類
2.2.2FPGA概述
2.2.3FPGA內部結構
2.2.4FPGA的基本開發流程
2.2數字IP水印概念
2.2.1數字芯核水印特點
2.2.2麵臨的睏難和挑戰
2.3數字芯核版權保護技術
2.3.1芯片標簽加密技術
2.3.2PUF物理版權保護技術
2.4數字芯核水印檢測技術
數字芯核水印技術通常也稱為lP水印技術,它是一門運用芯核電路載體的冗餘信息來隱藏秘密信息的新技術。目前在數字芯核水印沒計中,閤法lP模塊的復用設計可以保證lP設計更高的研發效率和減少上市周期。《數字芯核電路版權保護技術與應用》重點關注數字IP設計中的lP知識産權保護問題。芯核水印技術是直接的解決方法,它能從電子産品中有效地提取齣電路的原始版權信息。數字芯核水印技術的研究在電子信息技術領域中具有若非常廣泛的應用前景。《數字芯核電路版權保護技術與應用》不僅能為該領域內的科研工作者在芯核安全保護理論研究方麵做齣參考,而且為推進集成電路芯核版權保護技術的應用起到積極作用。
《數字集成電路設計基礎與實踐》 前言 數字集成電路作為現代信息技術的核心,其重要性不言而喻。從智能手機、高性能計算機到汽車電子、醫療設備,幾乎所有尖端科技産品都離不開數字集成電路的支持。隨著半導體製造工藝的飛速發展,集成電路的復雜度呈指數級增長,設計和驗證的難度也隨之提升。因此,深入理解數字集成電路的設計原理,掌握先進的設計方法和工具,並能將其應用於實際項目,對於相關領域的工程師和研究人員至關重要。 本書旨在為讀者提供一個全麵、係統的數字集成電路設計入門和進階指南。我們不僅會深入探討數字邏輯設計的基礎理論,還將詳細介紹現代集成電路設計流程中的關鍵技術和實用工具。本書的編寫力求理論與實踐相結閤,通過大量的實例和項目,引導讀者從概念到實現,逐步掌握數字集成電路的設計精髓。 第一章 數字邏輯設計基礎 本章將帶領讀者迴顧並鞏固數字邏輯設計的核心概念,為後續章節的學習奠定堅實的基礎。 1. 二進製數係統與邏輯運算: 深入理解二進製、十進製、十六進製之間的轉換。 掌握布爾代數的基本定律和定理,如交換律、結閤律、分配律、德摩根定律等。 學習與、或、非、異或、同或等基本邏輯門的功能和真值錶。 講解組閤邏輯和時序邏輯的基本概念,區分兩者的特點和應用場景。 2. 組閤邏輯電路設計: 邏輯函數化簡: 介紹卡諾圖(Karnaugh Map)化簡方法,講解如何通過圖示化方法將復雜邏輯錶達式簡化,從而減少門電路數量,提高電路效率。 門電路實現: 學習如何使用基本邏輯門(AND, OR, NOT)構建更復雜的組閤邏輯功能,如譯碼器(Decoder)、編碼器(Encoder)、多路選擇器(Multiplexer)、分頻器(Demultiplexer)等。 算術邏輯單元(ALU)初步: 介紹加法器(Adder)、減法器(Subtractor)的設計原理,講解如何構建基本的算術邏輯單元。 應用實例: 以設計一個簡單的LED控製器或狀態指示器為例,演示組閤邏輯電路的設計流程。 3. 時序邏輯電路設計: 觸發器(Flip-Flop): 詳細介紹SR觸發器、D觸發器、JK觸發器、T觸發器的工作原理、狀態轉移圖和時序圖,理解它們在存儲信息方麵的作用。 寄存器(Register): 講解如何將多個觸發器組閤成寄存器,實現數據的存儲和並行讀寫。 計數器(Counter): 學習同步計數器和異步計數器的設計方法,包括模N計數器、行波進位計數器和並行進位計數器。 狀態機(Finite State Machine - FSM): 米利(Mealy)型狀態機和摩爾(Moore)型狀態機: 深入理解兩者的區彆、狀態圖和狀態轉移錶的繪製。 狀態機設計流程: 從狀態定義、狀態編碼到邏輯實現,詳細介紹設計一個有限狀態機的完整步驟。 時序問題分析: 引入建立時間(Setup Time)和保持時間(Hold Time)的概念,講解時序違例(Timing Violation)的産生原因和潛在危害。 應用實例: 設計一個簡單的交通信號燈控製器或一個二進製序列檢測器,展示時序邏輯電路的設計過程。 第二章 硬件描述語言(HDL)與仿真 本章將重點介紹硬件描述語言(HDL),它是現代數字集成電路設計不可或缺的工具。我們將以Verilog HDL為例,講解其語法、語義以及如何在仿真環境中驗證設計。 1. Verilog HDL入門: 模塊(Module)的概念: 介紹Verilog的基本結構,如何定義模塊、端口(Input, Output, Inout)以及模塊之間的實例化。 數據類型與運算符: 學習Verilog中的數據類型(reg, wire, integer等)和各種運算符(算術、邏輯、關係、位選擇、拼接等)。 行為級建模(Behavioral Modeling): `always` 塊:掌握`always @()`(組閤邏輯)和`always @(posedge clk)`(時序邏輯)的用法。 `assign` 語句:用於描述連續賦值,常用於組閤邏輯。 條件語句 (`if-else`, `case`) 和循環語句 (`for`, `while`):學習如何在行為級建模中描述邏輯功能。 數據流建模(Dataflow Modeling): 使用連續賦值語句和運算符來描述電路的輸入輸齣關係。 結構化建模(Structural Modeling): 通過門級原語(如`and`, `or`, `not`)和實例化子模塊來構建電路。 2. Verilog HDL進階: 參數化設計(Parameterization): 學習使用`parameter`關鍵字創建可重用的設計模塊,提高代碼的靈活性。 生成語句(Generate Statements): 掌握`generate-for`、`generate-if`等語句,用於生成重復或條件性的硬件結構。 任務(Tasks)與函數(Functions): 學習如何編寫任務和函數來封裝可重用的代碼塊,提高代碼的可讀性和維護性。 阻塞與非阻塞賦值: 深入理解`=`(阻塞賦值)和`<=`(非阻塞賦值)的區彆,以及它們在仿真和綜閤中的影響。 時序控製: 掌握``(延遲)、`wait`等語句的用法。 定義(`define`)和包含(`include`): 學習如何使用預處理器指令來管理常量和共享代碼。 3. 仿真與驗證: 仿真流程: 介紹仿真器的工作原理,包括代碼編譯、仿真執行、波形查看等。 激勵(Testbench)設計: 學習如何編寫Verilog Testbench來驅動被測模塊(DUT),生成輸入激勵,並檢查輸齣結果。 時鍾和復位信號生成: 演示如何生成周期性的時鍾信號和異步/同步復位信號。 斷言(Assertions): 介紹SystemVerilog中的斷言概念(本文不深入,作為未來進階方嚮),以及簡單的Verilog斷言檢查。 波形分析: 學習使用仿真工具提供的波形查看器來調試設計,分析時序行為,查找錯誤。 代碼風格與可讀性: 強調編寫清晰、規範、易於理解的HDL代碼的重要性。 第三章 數字集成電路設計流程與工具 本章將概述現代數字集成電路的設計流程,並介紹常用的EDA(Electronic Design Automation)工具。 1. FPGA與ASIC設計流程概述: FPGA(Field-Programmable Gate Array): 介紹FPGA的架構、優勢、劣勢以及其設計流程(RTL設計 -> 綜閤 -> 布局布綫 -> 編程 -> 闆級驗證)。 ASIC(Application-Specific Integrated Circuit): 介紹ASIC的設計流程(RTL設計 -> 綜閤 -> 邏輯等效性檢查 -> 靜態時序分析 -> 布局布綫 -> 版圖設計 -> 流片)。 設計流程中的關鍵階段: RTL(Register-Transfer Level)設計: 使用HDL描述電路的寄存器和它們之間的轉移行為。 邏輯綜閤(Logic Synthesis): 將HDL代碼轉換為門級網錶(Netlist),優化邏輯功能和性能。 靜態時序分析(Static Timing Analysis - STA): 在不運行仿真的情況下,通過分析電路的時序路徑來檢測是否存在時序違例。 布局布綫(Place and Route): 將門級網錶映射到目標硬件(FPGA或ASIC物理庫),並確定器件內部連接。 物理驗證(Physical Verification): 在ASIC設計中,包括DRC(Design Rule Check)和LVS(Layout Versus Schematic),確保版圖的正確性和可製造性。 2. 常用EDA工具介紹: 仿真工具: Modelsim/QuestaSim: 業界主流的HDL仿真工具,功能強大,支持Verilog和VHDL。 Xilinx Vivado Simulator/Intel Quartus Prime Simulator: FPGA廠商提供的集成仿真工具。 綜閤工具: Synopsys Design Compiler/Cadence Genus: ASIC設計中常用的邏輯綜閤工具。 Xilinx Vivado Synthesis/Intel Quartus Prime Synthesis: FPGA設計中集成的邏輯綜閤工具。 布局布綫工具: Xilinx Vivado/Intel Quartus Prime: FPGA設計流程中集成的布局布綫工具。 Synopsys IC Compiler/Cadence Innovus: ASIC設計中常用的布局布綫工具。 靜態時序分析工具: Synopsys PrimeTime/Cadence Tempus: ASIC設計中常用的STA工具。 FPGA廠商提供的STA工具: 集成在Vivado和Quartus中。 版圖設計工具(ASIC): Synopsys L-Edit/Cadence Virtuoso: ASIC物理實現階段的版圖編輯工具。 3. 從RTL到網錶: 綜閤的原理: 介紹綜閤工具如何將抽象的HDL代碼轉化為具體的邏輯門和觸發器。 綜閤約束(Constraints): 講解時序約束(如時鍾頻率、輸入輸齣延遲)和物理約束的重要性,以及如何編寫`.sdc`(Synopsys Design Constraints)或類似的約束文件。 綜閤報告分析: 學習如何閱讀綜閤報告,包括資源使用情況、時序報告、麵積報告等。 第四章 核心數字模塊設計實例 本章將通過設計一些常見的數字模塊,將前兩章的理論知識付諸實踐,幫助讀者理解實際的設計技巧。 1. 移位寄存器(Shift Register): SISO(Serial-In, Serial-Out)移位寄存器: 設計一個將串行數據逐位移入並輸齣的移位寄存器。 SIPO(Serial-In, Parallel-Out)移位寄存器: 設計一個將串行數據移入,然後並行輸齣的移位寄存器。 PISO(Parallel-In, Serial-Out)移位寄存器: 設計一個將並行數據移入,然後串行輸齣的移位寄存器。 PIPO(Parallel-In, Parallel-Out)移位寄存器: 設計一個直接並行輸入並行輸齣的移位寄存器。 循環移位寄存器(Circular Shift Register): 講解如何實現移位過程中數據循環。 應用: 串行通信接口、數據緩衝等。 2. 計數器設計實踐: 任意模N計數器: 演示如何設計一個計數到任意N值的計數器,包括異步復位和同步復位。 可預置計數器(Presettable Counter): 設計一個在計數開始前可以設置初始值的計數器。 加/減計數器(Up/Down Counter): 設計一個可以根據控製信號嚮上或嚮下計數的計數器。 應用: 定時器、頻率分頻器、狀態機計數等。 3. 內存接口模塊設計: 簡單RAM(Random Access Memory)接口: 讀操作: 講解如何通過地址、讀使能信號和時鍾實現內存數據的讀取。 寫操作: 講解如何通過地址、寫使能信號、數據輸入和時鍾實現內存數據的寫入。 同步RAM和異步RAM: 討論兩者的區彆及設計考慮。 簡單ROM(Read-Only Memory)接口: 講解如何設計一個隻讀存儲器的接口。 應用: 數據存儲、指令存儲、緩存等。 4. 狀態機在實際設計中的應用: 交通信號燈控製器: 詳細設計一個能模擬簡單十字路口交通燈的有限狀態機。 串行接口控製器: 以設計一個簡單的UART(Universal Asynchronous Receiver/Transmitter)發送端為例,展示狀態機在控製串行數據發送過程中的應用。 按鈕消抖(Button Debouncing): 設計一個使用狀態機來消除機械按鈕的抖動,輸齣穩定信號的模塊。 第五章 高級數字設計概念與實踐 本章將介紹一些更高級的數字設計概念,為讀者在更復雜的數字係統設計中打下基礎。 1. 時鍾與復位策略: 時鍾域(Clock Domain): 深入理解不同時鍾域之間數據傳輸的挑戰。 時鍾域交叉(Clock Domain Crossing - CDC): 介紹CDC的潛在問題(亞穩態)以及常用的同步策略,如兩級觸發器同步(Two-Flip-Flop Synchronizer)、握手信號(Handshake Signals)等。 復位策略: 討論同步復位(Synchronous Reset)和異步復位(Asynchronous Reset)的優缺點,以及在設計中如何選擇和實現。 2. 異步電路設計初步: 異步電路的優勢與挑戰: 簡述異步電路的設計理念、潛在的性能優勢和設計難度。 握手協議(Handshake Protocols): 介紹兩種常用的異步握手協議:兩相握手(Two-Phase Handshake)和四相握手(Four-Phase Handshake)。 簡單異步模塊設計: 以一個簡單的異步FIFO(First-In, First-Out)緩存為例,展示異步設計的基本思想。 3. 低功耗設計技術: 功耗的來源: 介紹動態功耗和靜態功耗。 時鍾門控(Clock Gating): 講解如何通過選擇性地關閉不需要的時鍾信號來降低動態功耗。 電源門控(Power Gating): 介紹如何通過關閉部分電路的電源來降低靜態功耗。 多電壓域(Multiple Voltage Domains): 討論如何使用不同電壓來驅動不同功能的電路,以達到低功耗的目的。 4. 可測試性設計(Design for Testability - DFT)入門: 測試的必要性: 為什麼需要DFT,測試過程中會遇到哪些問題。 掃描鏈(Scan Chain): 介紹掃描鏈的基本原理,如何將內部存儲器轉化為可掃描的鏈,以便於測試。 內建自測(Built-In Self-Test - BIST): 簡述BIST的概念,即在芯片內部集成測試邏輯。 第六章 項目實踐與開發環境搭建 本章將引導讀者動手實踐,搭建開發環境,完成一個小型數字係統設計項目。 1. 開發環境搭建: FPGA開發軟件安裝: Xilinx Vivado/Intel Quartus Prime: 提供詳細的安裝和基本使用教程。 仿真器安裝: 如Modelsim/QuestaSim。 硬件平颱準備: FPGA開發闆介紹: 推薦幾款適閤初學者的FPGA開發闆。 硬件連接與配置: 如何將開發闆與電腦連接,進行基本配置。 2. 一個小型數字係統設計項目: 項目目標: 例如,設計一個可以接收用戶輸入(通過按鍵或UART),並在LED數碼管上顯示計數或特定模式的係統。 項目模塊劃分: 按鍵輸入處理模塊(包含消抖)。 計數器模塊。 數碼管驅動模塊。 (可選)UART接收模塊。 頂層設計模塊。 RTL代碼編寫: 按照模塊劃分,逐步使用Verilog HDL編寫代碼。 Testbench編寫與仿真: 為關鍵模塊編寫Testbench進行功能驗證。 綜閤與實現: 使用FPGA開發軟件進行邏輯綜閤、布局布綫,生成比特流文件。 下載與闆級驗證: 將比特流文件下載到FPGA開發闆,進行實際功能測試。 調試技巧: 介紹使用ILA(Integrated Logic Analyzer)等片上調試工具來輔助調試。 附錄 常用Verilog HDL關鍵字速查錶。 常用布爾代數公式。 推薦參考文獻與在綫資源。 結語 數字集成電路設計是一個充滿挑戰但也極具迴報的領域。通過對本書內容的學習和實踐,希望讀者能夠建立起堅實的數字設計理論基礎,掌握現代EDA工具的使用,並能獨立完成一些基本的數字係統設計項目。未來的數字世界將更加精彩,而掌握數字集成電路設計技術,將為您打開通往這個精彩世界的大門。