该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
付费阅读
3积分
作者:(美国)哈里斯 (David money harris) (美国)Sarah L.harris 译者:陈虎
目录出版者的话
相关评论
译者序
前言
第1章 二进制
1.1 课程计划
1.2 控制复杂性的艺术
1.2.1 抽象
1.2.2 约束
1.2.3 三条原则
1.3 数字抽象
1.4 数字系统
1.4.1 十进制数
1.4.2 二进制数
1.4.3 十六进制数
1.4.4 字节,半字节和全字
1.4.5 二进制加法
1.4.6 有符号的二进制数
1.5 逻辑门
1.5.1 非门
1.5.2 缓冲
1.5.3 与门
1.5.4 或门
1.5.5 其他二输入逻辑门
1.5.6 多输入门
1.6 数字抽象之下
1.6.1 电源电压
1.6.2 逻辑电平
1.6.3 噪声容限
1.6.4 直流电压传输特性
1.6.5 静态约束
1.7 CMOS晶体管
1.7.1 半导体
1.7.2 二极管
1.7.3 电容
1.7 4nMos和pMOS晶体管
1.7.5 CMOS非门
1.7.6 其他CMOS逻辑门
1.7.7 传输门
1.7.8 类nMOS逻辑
1.8 功耗
1.9 总结和展望
习题
第2章 组合逻辑设计
2.1 引言
2.2 布尔表达式
2.2.1 术语
2.2.2 与或式
2.2.3 或与式
2.3 布尔代数
2.3.1 公理
2.3.2 单变量定理
2.3.3 多变量定理
2.3.4 定理的统一证明方法
2.3.5 等式化简
2.4 从逻辑到门
2.5 多级组合逻辑
2.5.1 减少硬件
2.5.2 推气泡
2.6 X和Z
2.6.1 非法值x
2.6.2 浮空值z
2.7 卡诺图
2.7.1 画圈的原理
2.7.2 卡诺图化简逻辑
2.7.3 无关项
2.7.4 小结
2.8 组合逻辑模块
2.8.1 多路选择器
2.8.2 译码器
2.9 时序
2.9.1 传输延迟和最小延迟
2.9.2 毛刺
2.10 总结
习题
第3章 时序逻辑设计
3.1 引言
3.2 锁存器和触发器
3.2.1 SR锁存器
3.2.2 D锁存器
3.2.3 D触发器
3.2.4 寄存器
3.2.5 带使能端的触发器
3.2.6 带复位功能的触发器
3.2.7 晶体管级的锁存器和触发器设计
3.2.8 小结
3.3 同步逻辑设计
3.3.1 一些有问题的电路
3.3.2 同步时序电路
3.3.3 同步和异步电路
3.4 有限状态机
3.4.1 有限状态机设计实例
3.4.2 状态编码
3.4.3 Moore型状态机和Mealy型状态机
3.4.4 状态机的分解
3.4.5 有限状态机小结
3.5 时序逻辑电路的时序
3.5.1 动态约束
3.5.2 系统时序
3.5.3 时钟偏移
3.5 4亚稳态
3.5.5 同步器
3.5.6 分辨时间的推导
3.6 并行
3.7 总结
习题
第4章 硬件描述语言
4.1 引言
4.1.1 模块
4.1.2 硬件描述语言的起源
4.1.3 模拟和综合
4.2 组合逻辑
4.2.1 按位操作符
4.2.2 注释和空格
4.2.3 缩减运算符
4.2.4 条件赋值
4.2.5 内部变量
4.2.6 优先级
4.2.7 数字
4.2.8 z和x
4.2.9 位混合
4.2.1 0延迟
4.2.1 1VHDL库和类型
4.3 结构建模
4.4 时序逻辑
4.4.1 寄存器
4.4.2 可复位寄存器
4.4.3 带使能端的寄存器
4.4.4 多寄存器
4.4.5 锁存器
4.5 更多组合逻辑
4.5.1 选择语句
4.5.2 if语句
4.5.3 Verilog的easez语句
4.5.4 阻塞式和非阻塞式赋值
4.6 有限状态机
4.7 参数化模块
4.8 测试程序
4.9 总结
习题
第5章 常见数字模块
5.1 引言
5.2 算术电路
5.2.1 加法
5.2.2 减法
5.2.3 比较器
5.2.4 算术逻辑单元
5.2.5 移位器和循环移位器
5.2.6 乘法
5.2.7 除法
5.2.8 深入阅读
5.3 数制系统
5.3.1 定点数系统
5.3.2 浮点数系统
5.4 时序电路模块
5.4.1 计数器
5.4.2 移位寄存器
5.5 存储器阵列
5.5.1 概述
5.5.2 动态随机访问存储器
5.5.3 静态随机访问存储器
5.5.4 面积和延迟
5.5.5 寄存器文件
5.5.6 只读存储器
5.5.7 使用存储器阵列的逻辑
5.5.8 存储器的硬件描述语言
5.6 逻辑阵列
5.6.1 可编程逻辑阵列
5.6.2 现场可编程门阵列
5.6.3 阵列实现
5.7 总结
习题
第6章 体系结构
6.1 引言
6.2 汇编语言
6.2.1 指令
6.2.2 操作数:寄存器、存储器和常数
6.3 机器语言
6.3.1 R一类型指令
6.3.2 I一类型指令
6.3.3 J一类型指令
6.3.4 解释机器语言码
6.3.5 程序存储
6.4 编程
6.4.1 算术/逻辑指令
6.4.2 分支
6.4.3 条件语句
6.4.4 循环
6.4.5 数组
6.4.6 过程调用
6.5 寻址方式
6.6 编译、汇编和加载
6.6.1 内存图
6.6.2 转换成二进制代码和开始执行程序
6.7 其他主题
6.7.1 伪指令
6.7.2 异常
6.7.3 有符号和无符号的指令
6.7.4 浮点指令
6.8 真实世界透视:IA一32结构
6.8.1 IA一32的寄存器
6.8.2 IA一32的操作数
6.8.3 状态标志
6.8.4 IA一32指令集
6.8.5 IA一32指令编码
6.8.6 IA一32的其他特性
6.8.7 小结
6.9 总结
习题
第7章 微结构
7.1 引言
7.1.1 体系结构状态和指令集
7.1.2 设计过程
7.1.3 MIPS微结构
7.2 性能分析
7.3 单周期处理器
7.3.1 单周期数据路径
7.3.2 单周期控制
7.3.3 更多指令
7.3.4 性能分析
7.4 多周期处理器
7.4.1 多周期数据路径
7.4.2 多周期控制
7.4.3 更多指令
7.4.4 性能分析
7.5 流水线处理器
7.5.1 流水线数据路径
7.5.2 流水线控制
7.5.3 冲突
7.5.4 更多指令
7.5.5 性能分析
7.6 硬件描述语言表示
7.6.1 单周期处理器
7.6.2 通用模块
7.6.3 测试程序
7.7 异常
7.8 高级微结构
7.8.1 深流水线
7.8.2 分支预测
7.8.3 超标量处理器
7.8.4 乱序处理器
7.8.5 寄存器重命名
7.8.6 单指令流多数据流
7.8.7 多线程
7.8.8 多处理器
7.9 现实世界透视:IA一32微结构
7.10 总结
习题
第8章 存储器系统
8.1 引言
8.2 存储器系统性能分析
8.3 高速缓存
8.3.1 高速缓存中存放的数据
8.3.2 高速缓存中的数据查找
8.3.3 数据的替换
8.3.4 高级高速缓存设计
8.3.5 MIPS处理器中高速缓存的发展
8.4 虚拟存储器
8.4.1 地址转换
8.4.2 页表
8.4.3 地址转换后备缓冲
8.4.4 存储器保护
8.4.5 替换策略
8.4.6 多级页表
8.5 内存映射I/O
8.6 现实世界透视:IA一32存储器和I/O系统
8.6.1 IA一32高速缓存系统
8.6.2 IA一32虚拟存储器
8.6.3 IA一32的直接I/O编程机制
8.7 总结
习题
附录A数字系统实现
附录BMIPS指令
延伸阅读材料
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
付费阅读
10积分
内容简介】本书主要讲解了FPGA设计、方法和实现。这本书略去了不太必要的理论、推测未来的技术、过时工艺的细节,用简明、扼要的方式描述FPGA中的关键技术。主要内容包括:设计速度高、体积小、功耗低的体系结构方法,时钟区域,实现数学函数,浮点单元,复位电路,仿真,综合优化,布图,静态时序分析等。.
本书把多年推广到诸多公司和工程师团队的经验以及由白皮书和应用要点汇集的许多知识进行浓缩,可以帮助读者成为高级的FPGA设计者。..
本书以FPGA设计为主题,覆盖了实践过程中最可能遇到的深层次问题,并提供了经验指导。在某些方面,本书能够取代有限的工业经历,免去读者学习的困难。这种先进的,实用的方法,成为此书的特色。
这本书把多年推广到诸多公司和工程师团队的经验以及由专门的白皮书和应用要点汇集的许多知识进行浓缩,可以用来完善工程师的知识,帮助他们成为高级的FPGA设计者。
【作译者介绍】
本书提供作译者介绍
Steve Kilts,Spectrum Design Solutions公司的创始人之一,首席设计工程师。Steve拥有广泛的FPGA设计经验,包括应用在dsp、高速计算和总线体系结构、集成电路测试系统、工业自动化和控制、音频、视频、嵌入式微处理器、PCI、医疗系统设计,商业航空和asic原型。Steve和他的团队已为部分财富100强公司和小型创业者们成功地完成了众多项目。
目录
译者序
前言
第1章 高速度结构设计
1.1 高流量
1.2 低时滞
1.3 时序
1.3.1 添加寄存器层次
1.3.2 并行结构
1.3.3 展平逻辑结构
1.3.4 寄存器平衡
1.3.5 重新安排路径
1.4 小结
第2章 面积结构设计
2.1 折叠流水线
2.2 基于控制的逻辑复用
2.3 资源共享
2.4 复位对面积的影响
2.4.1 无复位的资源
2.4.2 无置位的资源
2.4.3 无同步复位的资源
2.4.4 复位RAM
2.4.5 利用置位/复位触发器引脚
2.5 小结
第3章 功耗结构设计
3.1 时钟控制
3.1.1 时钟偏移
3.1.2 控制偏移
3.2 输入控制
3.3 减少供电电压
3.4 双沿触发触发器
3.5 修改终端
3.6 小结
第4章 设计实例:高级加密标准
4.1 AES结构
4.1.1 一级字节代换
4.1.2 零级行间移位
4.1.3 两个流水线级列混合
4.1.4 一级轮密钥加
4.1.5 紧缩结构
4.1.6 部分流水线结构
4.1.7 完全流水线结构
4.2 性能与面积
4.3 其他的优化
第5章 高级设计
5.1 抽象设计技术
5.2 图形状态机
5.3 DSP设计
5.4 软硬件协同设计
5.5 小结
第6章 时钟区域
6.1 跨越时钟区域
6.1.1 准稳态
6.1.2 解决方案一:相位控制
6.1.3 解决方案二:双跳技术
6.1.4 解决方案三:fifo结构
6.1.5 分割同步模块
6.2 在ASIC样机中的门控时钟
6.2.1 时钟模块
6.2.2 选通移除
6.3 小结
第7章 设计实例:12S与SPDIF
7.1 I2S
7.1.1 协议
7.1.2 硬件结构
7.1.3 分析
7.2 SPDIF
7.2.1 协议
7.2.2 硬件结构
7.2.3 分析
第8章 实现数学函数
8.1 硬件除法
8.1.1 乘法和移位
8.1.2 迭代除法
8.1.3 Goldschmidt方法
8.2 泰勒和Mactaurin级数展开
8.3 CORDIC算法
8.4 小 结
第9章 设计实例:浮点单元
9.1 浮点格式
9.2 流水线结构
9.2.1 verilog实现
9.2.2 资源和性能
第10章 复位电路
10.1 同步和异步复位
10.1.1 完全异步复位的问题
10.1.2 完全同步复位
10.1.3 异步确立同步释放
10.2 混合复位类型
10.2.1 不可复位触发器
10.2.2 内部产生复位
10.3 多时钟区域
10.4 小结
第11章 高级仿真
11.1 测试台结构
11.1.1 测试台元件
11.1.2 测试台流程
11.2 系统激励
11.2.1 MATLAB
11.2.2 总线功能模型
11.3 编码覆盖范围
11.4 门级仿真
11.5 触发覆盖范围
11.6 运行时间陷阱
11.6.1 时间刻度
11.6.2 毛刺抑制
11.6.3 组合延时模型
11.7 小结
第12章 综合编码
12.1 判决树
12.1.1 特权与并行性
12.1.2 完全条件
12.1.3 多控制分支
12.2 陷阱
12.2.1 阻塞与非阻塞
12.2.2 for环路
12.2.3 组合环路
12.2.4 推论的锁存器
12.3 设计组织
12.3.1 分割
12.3.2 参数化
12.4 小结
第13章 设计实例:安全散列算法
13.1 SHA-1结构
13.2 实现结果
第14章 综合优化
14.1 速度与面积
14.2 资源共享
14.3 流水线、重新定时和寄存器平衡
14.3.1 复位对寄存器平衡的影响
14.3.2 重新同步寄存器
14.4 有限状态机编译
14.5 黑匣子
14.6 物理综合
14.6.1 前向注释和反向注释
14.6.2 基于图形的物理综合
14.7 小结
第15章 布图
15.1 设计分割
15.2 关键路径布图
15.3 布图风险
15.4 最佳布图
15.4.1 数据通道
15.4.2 高扇出
15.4.3 器件结构
15.4.4.可重用性
15.5 减小功耗
15.6 小结
第16章 布局布线优化
16.1 优化约束
16.2 布局和布线之间的关系
16.3 逻辑复制
16.4.跨层次优化
16.5 I/O寄存器
16.6 封装因子
16.7 映射逻辑到RAM
16.8 寄存器排序
16.9 布局种子
16.1 0指导布局和布线
16.1 1小结
第17章 设计实例:微处理器
17.1 SRC结构
17.2 综合优化
17.2.1 速度与面积
17.2.2 流水线
17.2.3 物理综合
17.3 布图优化
17.3.1 分割布图
17.3.2 关键路径布图:提取1
17.3.3 关键路径布图:提取2
第18章 静态时序分析
18.1 标准分析
18.2 锁存器
18.3 异步电路
18.4 小结
第19章 PCB的问题
19.1 电源供电
19.1.1 供电要求
19.1.2 稳压
19.2 去耦电容
19.2.1 概念
19.2.2 计算数值
19.2.3 电容器布局
19.3 小结
附录A AES密码的流水线级
附录B SRC处理器的顶层模块
参考文献
该帖子部分内容已隐藏
付费阅读
3积分
本文将分为四个部分:FPGA设计网论坛. {& y) ?5 s0 @0 \7 U2 D: D O4 _
1)UART IP介绍调试串口通信的需要的工具;
2)软件开发手册上的程序分析和两个最简单的例子;www.fpga-design.net! Z r) W3 M/ `! n5 b+ X& p# A
3)实战部分:我个人用这个IP调过的两个不同模块及部分程序分析;FPGA设计网论坛8 ], d) P7 `4 p+ u
4)关于仿真以及目前使用该IP发现的问题(---啊???做好心理准备去接受哦,呵呵)
(注:四个部分将分为两个part来介绍,本文是part 1 ,介绍前两个部分内容)
第1)部分:UART IP介绍及调试串口通信的工具
UART(Universal Asynchronous Receiver/Transmitter),通用异步收发器,是嵌入式系统上很常用的一个串行接口。这么说的原因是因为RS-232串口本身由于数据速率比较慢而且误码率相对偏高,正在从笔记本电脑的接口配置中慢慢消失,逐渐被USB接口所代替。但是另一方面,由于其方便、简单、易用等特性,它在嵌入式系统中依然扮演着十分重要的角色。所以Altera才把UART作为一个连接Nios/NosII和其相关外设的IP放在SOPCBuilder里面供用户使用。Nios一代调试甚至用的就是直接是串口。
该帖子部分内容已隐藏
付费阅读
3积分
有了上一讲HAL的基础,我们来关注一下DMA在NIOS 中的实现和编程。DMA是个老问题了,从8086/8088一直到现在,完成不需要CPU参与的数据搬家,源和目标可以是内存也可以是设备,在NIOS II中通过基于HAL编程完成。( ~) Y( h* L0 G$ y)
该帖子部分内容已隐藏
付费阅读
3积分
可编程软核处理器最大的特点是灵活,灵活到我们可以方便的增加指令,这在其他SOC系统中做不到的,增加用户指令可以把我们系统中用软件处理时耗费时间多的关键算法用硬逻辑电路来实现,大大提高系统的效率,更突出的一点是:我们通过下面的逐步操作会认识到,这是一个听起来高深,其实比较容易实现的功能(我们站在EDA工具这个巨人肩上,风光无限啊:),通过这一文档的介绍可以增强我们掌握NIOS II所有的技术手段的信心,这也是我把NIOS II 用户指令放在最前面的用意。
该帖子部分内容已隐藏
付费阅读
3积分
该指南将会使你熟悉niosII IDE和MicroC/OS-II开发流程。niosII IDE提供设计者一个充足的niosII开发平台。niosII IDE包含MicroC/OS-II实时操作系统,为设计者提供快速地搭建基于niosII处理器的MicroC/OS-II应用程序的能力。该指南提供了搭建一个基于MicroC/OS-II实时操作系统的简单程序的步骤说明。
基于niosII处理器的MicroC/OS-II操作系统的详细叙述请参阅the Nios II
Software Developer’s Handbook(niosII软件开发手册)的“MicroC/OS-II Real-Time Operating System”(MicroC/OS-II实时操作系统)章节。
该帖子部分内容已隐藏
付费阅读
3积分
设计一个LCD控制器,该控制器基于Altera的SOPC系统,通过SOPC中的Avalon总线接口与Nios II处理器和SDRAM控制器通信,使之能显示640*480分辨率,显示颜色深度达到16bit,输出接口兼容TFT LCD。
该帖子部分内容已隐藏
付费阅读
1积分
摘要:本文论述了使用FPGA器件,利用SOPC嵌入式开发技术,复用多种软CPU IP核,使用片内总线代替机群内的计算机网络,移植现有的软件开发方法,在片上构建包含WEB 服务器、业务逻辑应用服务器、数据库服务器的B/S系统的可行性及实现方法,并给出一个具体实现方案。
引言
B/S系统一直是基于大中小型服务器、台式机等通用计算机而设计的。为具体单个的B/S系统从芯片开始量身订做一整套计算机软硬件系统,使其安全、可靠、高效地运行,长期以来被认为是一件不现实的事情。
近年来, FPGA器件和SOPC嵌入式开发技术的迅速发展为多处理器片上系统的实现提供了灵活的解决方案。利用可配置处理器软核复用的多处理器片上系统,借以实现B/S系统软硬件一体化,已经成为一个值得研究的课题。
本文探讨使用FPGA器件,利用SOPC技术,复用多种软CPU IP核,移植现有的编程模式,在片上构建一个多处理器B/S系统的可行性及实现方法。这种系统不仅效率、处理事务的吞吐率与现有的以通用机为主的B/S系统相当,且其安全性、可靠性更好,成本更为低廉。
该帖子部分内容已隐藏
付费阅读
3积分
Nios嵌入式处理器是用户可配置的通用RISC嵌入式处理器,它是一个非常灵活和强大的处理器。Nios处理器的易用和灵活已经使它成为世界上最流行的嵌入式处理器。
嵌入式设计者利用SOPC Builder系统开发工具能够很容易地创建自己的处理器系统。SOPC Builder可用于集成一个或多个可配置的带有许多标准外围设备的Nios CPU,并利用自动形成的Avalon交换结构总线将这些系统连接在一起。
可配置Nios CPU是Nios处理器系统的核心,它能够被灵活配置而适用于各种各样的应用。例如一个16位Nios CPU,在片内ROM中运行一个小程序,可以制作成一个实际的序列发生器或控制器,并且能够代替固定编码的状态机。又如一个32位Nios CPU,与外围设备、硬件加速单位和自定义指令一起,构成一个功能强大的32位嵌入式处理器系统。
Nios嵌入式处理器的独特性(例如自定义指令和并行的多控制器Avalon交换结构总线)使它不同于市场上其他的处理器软核。这些特性允许Nios用户通过用简单的而非传统的方法加速和优化自己的设计。
该帖子部分内容已隐藏
付费阅读
3积分
本部门所承担的FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。编写本流程的目的是:
在于规范整个设计流程,实现开发的合理性、一致性、高效性。
形成风格良好和完整的文档。
实现在FPGA不同厂家之间以及从FPGA到ASIC的顺利移植。
便于新员工快速掌握本部门FPGA的设计流程。
由于目前所用到的FPGA器件以Altera的为主,所以下面的例子也以Altera为例,工具组合为 modelsim + LeonardoSpectrum/FPGACompilerII + Quartus,但原则和方法对于其他厂家和工具也是基本适用的。
该帖子部分内容已隐藏
付费阅读
3积分
NiosII 的开发环境提供了对符合 CFI 标准的 Flash 的支持,使用几个简单的函数,即
可以操作 Flash。本文介绍了 nios 中 flash 的使用。
关键词:EDA,Nios II,CFI 标准,Flash
在嵌入式系统中,Flash 是最常用组件之一。许多使用过 flash 的朋友都了解,Flash 的特点
是“读来容易写来难”。通常,可以直接读出 Flash 的内容;但如果要写入数据,就要发送一
长串命令,比如像:555 ,AA,2AA,55,555,A0 ,PA,PD 就表示对 PA 地址写入数据
PD,实际情况还要复杂一点,因为通常还要包含许多查询操作。
哎呀,这真是好繁琐呀,有没有省力的方法呢?现在好了,NiosII 的开发环境提供了对符合
CFI 标准的 Flash 的支持,使用几个简单的函数,就可以操作 Flash,真是方便了许多。
在这里,我粗略得介绍一下 nios 中 flash 的使用;更加详细的帮助信息请您参考 Altera 公司
提供的文档。如果本文能对您有一点点帮助,我都会感到非常高兴。
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
该帖子部分内容已隐藏
付费阅读
3积分
在数字电路的设计中,时序设计是一个系统性能的主要标志,在高层次设计方法中,
对时序控制的抽象度也相应提高,因此在设计中较难把握,但在理解 RTL 电路时序模型的
基础上,采用合理的设计方法在设计复杂数字系统是行之有效的,通过许多设计实例证明采
用这种方式可以使电路的后仿真通过率大大提高,并且系统的工作频率可以达到一个较高水
平。
该帖子部分内容已隐藏