具体描述
| 图书基本信息 |
| 书名: | 数字芯核电路版权保护技术与应用
|
| 丛书名: | |
| 作者/主编: | 梁伟
|
| 出版社: | 东南大学出版社 |
| 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工具的使用,并能独立完成一些基本的数字系统设计项目。未来的数字世界将更加精彩,而掌握数字集成电路设计技术,将为您打开通往这个精彩世界的大门。