内容简介
第1章 嵌入式系统概述
1.1 引言
1.1.1 嵌入式系统定义
1.1.2 示例系统
1.2 系统设计需求
1.3 嵌入式SoPC系统
1.4 本书结构
1.5 文献注释
第1部分 基本数字电路开发
第2章 门级组合电路
2.1 引言
2.2 总则
2.3 基本词法元素和数据类型
2.4 数据类型
2.4.1 四值系统
2.4.2 数据类型组
2.4.3 数字的表示方法
2.4.4 运算符
2.5 程序框架
2.5.1 端口声明
2.5.2 程序主体
2.5.3 信号声明
2.5.4 另一个实例
2.6 结构描述
2.7 测试平台
2.8 文献注释
2.9 推荐实验
2.9.1 门级greater-than电路代码
2.9.2 门级二进制译码器代码
第3章 FPGA和EDA软件概述
3.1 FPGA
3.1.1 通用FPGA器件概述
3.1.2 Altera Cyclone Ⅱ系列器件概述
3.2 Altera DE1和DE2开发板概述
3.3 开发流程
3.4 Quartus Ⅱ概述
3.5 Quartus Ⅱ简易教程
3.5.1 创建设计工程
3.5.2 建立测试平台进行RTL仿真
3.5.3 编译工程
3.5.4 时序分析
3.5.5 编程FPGA器件
3.6 ModelSim HDL仿真器的简易教程
3.7 文献注释
3.8 推荐实验
3.8.1 门级greater-than电路
3.8.2 门级二进制译码器
第4章 RTL组合电路
4.1 运算符
4.1.1 算术运算符
4.1.2 移位运算符
4.1.3 关系运算符和等式运算符
4.1.4 位运算符、缩减运算符和逻辑运算符
4.1.5 拼接运算符和复制运算符
4.1.6 条件运算符
4.1.7 运算符优先级
4.1.8 表达式位长调整
4.1.9 z和x的综合
4.2 组合逻辑电路的always语句块
4.2.1 基本语法和行为
4.2.2 进程赋值语句
4.2.3 变量数据类型
4.2.4 简单实例
4.3 if语句
4.3.1 语法
4.3.2 实例
4.4 case语句
4.4.1 语法
4.4.2 实例
4.4.3 casez和casex语句
4.4.4 全case语句和并行case语句
4.5 条件控制结构的路由结构
4.5.1 优先级路由网络
4.5.2 多路选择网络
4.6 always块的一般编码原则
4.6.1 组合逻辑电路代码的常见错误
4.6.2 指南
4.7 参数和常数
4.7.1 常数
4.7.2 参数
4.7.3 Verilog-1995中参数的使用
4.8 设计实例
4.8.1 十六进制数的七段LED译码器
4.8.2 符号幅值加法器
4.8.3 桶形移位器
4.8.4 简易浮点数加法器
4.9 文献注释
4.10 推荐实验
4.10.1 多功能桶形移位器
4.10.2 双优先级编码器
4.10.3 BCD码增量器
4.10.4 浮点数greater-than电路
4.10.5 浮点数和有符号整数间的转换电路
4.10.6 加强的浮点数加法器
第5章 常规时序电路
5.1 引言
5.1.1 D触发器和寄存器
5.1.2 同步系统
5.1.3 代码开发
5.2 触发器和寄存器的HDL代码
5.2.1 D触发器
5.2.2 寄存器
5.2.3 寄存器文件
5.2.4 SRAM
5.3 简单的设计实例
5.3.1 移位寄存器
5.3.2 二进制计数器及其变形
5.4 时序电路的测试平台
5.5 时序分析
5.5.1 时序参数
5.5.2 Quartus Ⅱ中的时序考虑
5.6 案例研究
5.6.1 秒表
5.6.2 FIFO缓存器
5.7 Cyclone Ⅱ器件的嵌入式存储器模块
5.7.1 DE1开发板上的存储器选项概述
5.7.2 嵌入式M4K模块概述
5.7.3 添加嵌入式存储器模块的方法
5.7.4 导出同步单口RAM的HDL模块
5.7.5 导出同步简单双口RAM的HDL模块
5.7.6 导出同步真双口RAM的HDL模块
5.7.7 导出同步ROM的HDL模块
5.7.8 指定RAM初始值的HDL模块
5.7.9 FIFO缓存器的再仿真
5.8 文献注释
5.9 推荐实验
5.9.1 可编程方波发生器
5.9.2 脉宽调制电路
5.9.3 旋转方块电路
5.9.4 心跳电路
5.9.5 旋转的LED标语电路
5.9.6 增强型秒表
5.9.7 数据宽度可变的FIFO
5.9.8 堆栈
5.9.9 基于ROM的符号幅值加法器
5.9.10 基于ROM的温度转换
第6章 FSM
6.1 简介
6.1.1 Mealy和Moore输出
6.1.2 FSM的表示方法
6.2 FSM代码开发
6.3 设计实例
6.3.1 上升沿检测器
6.3.2 去抖电路
6.3.3 测试电路
6.4 文献注释
6.5 推荐实验
6.5.1 双边沿检测器
6.5.2 另一种去抖电路
6.5.3 停车场占用情况计数器
第7章 FSMD
7.1 引言
7.1.1 单一RT操作
7.1.2 ASMD图
7.1.3 含寄存器的选择框
7.2 FSMD代码开发
7.2.1 基于RT方法的去抖电路
7.2.2 含显示描述数据通路组件的代码
7.2.3 含隐式描述数据通路组件的代码
7.2.4 比较
7.3 设计实例
7.3.1 斐波那契数电路
7.3.2 除法电路
7.3.3 二进制—BCD码转换电路
7.3.4 周期计数器
7.3.5 精确的低频计数器
7.4 文献注释
7.5 推荐实验
7.5.1 另一种去抖电路
7.5.2 BCD—二进制码转换电路
7.5.3 含BCD I/O的斐波那契数生成电路:设计方法1
7.5.4 含BCD I/O的斐波那契数生成电路:设计方法2
7.5.5 自动进位制的低频计数器
7.5.6 反应计时器
7.5.7 Babbage差分机模拟电路
第8章 Verilog精选主题
8.1 阻塞赋值语句和非阻塞赋值语句
8.1.1 概述
8.1.2 组合电路
8.1.3 存储器单元
8.1.4 混合阻塞和非阻塞两种赋值语句的时序电路
8.2 时序电路的另一种编码方式
8.2.1 二进制计数器
8.2.2 FSM
8.2.3 FSMD
8.2.4 总结
8.3 有符号数据类型的使用
8.3.1 概述
8.3.2 Verilog-1995中的有符号数
8.3.3 Verilog-2001中的有符号数
8.4 综合中函数的使用
8.4.1 概述
8.4.2 例子
8.5 附加的测试平台开发结构
8.5.1 always块和initial块
8.5.2 进程语句
8.5.3 时序控制
8.5.4 延时控制
8.5.5 事件控制
8.5.6 wait语句
8.5.7 timescale指令
8.5.8 系统函数和系统任务
8.5.9 用户自定义的函数和任务
8.5.10 完备的测试平台的实例
8.6 文献注释
8.7 推荐实验
8.7.1 使用阻塞赋值语句和非阻塞赋值语句的移位寄存器
8.7.2 BCD计数器的另一种编码风格
8.7.3 FIFO缓存器的另一种编码方式
8.7.4 斐波那契数生成电路的另一种编码方式
8.7.5 双模式比较器
8.7.6 增强型二进制计数器的监测器
8.7.7 FIFO缓存器的测试平台
第2部分 基本Nios Ⅱ软件开发
第9章 Nios Ⅱ处理器概述
9.1 引言
9.2 寄存器文件和ALU
9.2.1 寄存器文件
9.2.2 ALU
9.3 存储器和I/O结构
9.3.1 Nios Ⅱ的存储器接口
9.3.2 存储器层次结构概述
9.3.3 虚拟存储器
9.3.4 存储器保护
9.3.5 高速缓冲存储器
9.3.6 紧密耦合存储器
9.3.7 I/O结构
9.3.8 互连结构
9.4 异常和中断处理
9.5 JTAG调试模块
9.6 文献注释
9.7 推荐实验
9.7.1 Nios Ⅱ和MIPS的比较
第10章 Nios Ⅱ系统的引用和底层访问
10.1 开发流程的再介绍
10.1.1 硬件开发
10.1.2 软件开发
10.1.3 闪烁LED系统
10.2 Nios Ⅱ硬件生成教程
10.2.1 在Quartus Ⅱ中创建一个硬件工程
10.2.2 创建Nios Ⅱ系统,生成HDL代码
10.2.3 创建顶层HDL文件用于实例化Nios Ⅱ系统
10.2.4 编译和下载程序
10.3 Nios Ⅱ SBT GUI教程
10.3.1 创建BSP库
10.3.2 使用BSP编辑器配置BSP
10.3.3 创建用户应用目录并添加应用程序文件
10.3.4 生成和运行软件
10.3.5 检查代码大小
10.4 针对软硬件一致性的系统id核
10.5 底层I/O直接访问
10.5.1 C语言指针的复习
10.5.2 I/O寄存器的C指针
10.6 鲁棒的底层I/O访问
10.6.1 system.h
10.6.2 alt_types.h
10.6.3 io.h
10.7 一些关于底层I/O操作的C语言技巧
10.7.1 位处理
10.7.2 打包和拆包
10.8 软件开发
10.8.1 基本的嵌入式程序框架
10.8.2 主程序和任务程序
10.9 文献注释
10.10 推荐实验
10.10.1 追赶LED电路
10.10.2 碰撞LED电路
10.10.3 脉宽调制电路
10.10.4 旋转方块电路
10.10.5 心跳电路
10.11 完整程序清单
第11章 预先设计的Nios Ⅱ I/O外设
11.1 概述
11.2 PIO核
11.2.1 配置
11.2.2 寄存器映射
11.2.3 用户可见寄存器
11.3 JTAG UART核
11.3.1 配置
11.3.2 寄存器映射
11.4 内部定时器核
11.4.1 配置
11.4.2 寄存器映射
11.5 增强型闪烁LEDNiosⅡ系统
11.5.1 SOPC设计
11.5.2 顶层HDL文件
11.6 增强型闪烁LED系统软件开发
11.6.1 设备驱动介绍
11.6.2 增强型闪烁LED系统程序结构
11.6.3 主程序
11.6.4 函数命名习惯
11.7 设备驱动程序
11.7.1 PIO外设驱动
11.7.2 JATA UART
11.7.3 定时器
11.8 任务程序
11.8.1 函数flashsys_init_v1()
11.8.2 函数sw_get_command_v1()
11.8.3 函数jtaguart_disp_msg_v1()
11.8.4 函数sseg_disp_msg_v1()
11.8.5 函数led_flash_v1()
11.9 软件构建和测试
11.10 文献注释
11.11 推荐实验
11.11.1 闪烁LED系统的“Uptime”特性
11.11.2 不同定时器模式的计数
11.11.3 JTAGUART输入
11.11.4 增强型冲撞LED电路
11.11.5 旋转LED标语电路
11.11.6 改进的秒表
11.11.7 停车场占用情况计数器
11.11.8 带按钮开关控制的反应时间定时器
11.11.9 带键盘控制的反应时间定时器
11.11.10 串行端口通信
11.12 完整程序清单
第12章 预先设计的Nios Ⅱ I/O驱动和HAL API
12.1 HAL概述
12.1.1 桌面式嵌入式系统和准系统嵌入式系统
12.1.2 HAL范式
12.1.3 设备类别
12.1.4 遵从HAL的设备驱动
12.1.5 _regs.h文件
12.1.6 基于HAL的初始化序列
12.2 BSP
12.2.1 概述
12.2.2 BSP文件结构
12.2.3 BSP配置
12.3 基于HAL的闪烁LED程序
12.3.1 使用通用I/O设备的函数
12.3.2 使用非通用I/O设备的函数
12.3.3 初始化程序和主程序
12.3.4 软件构建和测试
12.4 设备驱动程序考虑
12.4.1 I/O访问法
12.4.2 比较
12.4.3 本书中的驱动程序
12.5 文献注释
12.6 推荐实验
12.6.1 闪烁LED系统的“Uptime”特性
12.6.2 改进的碰撞LED电路
12.6.3 停车场使用情况计数器
12.6.4 带键盘控制的反应定时器
12.6.5 数字闹钟
12.7 完整程序清单
第13章 中断及中断服务程序
13.1 HAL框架中的中断处理
13.1.1 概述
13.1.2 Nios Ⅱ处理器的中断控制器
13.1.3 顶层异常处理程序
13.1.4 中断服务程序
13.2 基于中断的闪烁LED程序
13.2.1 定时器核的中断
13.2.2 定时器核的驱动
13.2.3 中断服务程序(版本1)
13.2.4 中断服务程序(版本2)
13.3 中断和调度
13.3.1 调度
13.3.2 性能
13.4 文献注释
13.5 推荐实验
13.5.1 含按钮开关ISR程序的闪烁LED系统
13.5.2 ISR驱动的闪烁LED系统
13.5.3 闪烁LED系统中的“Uptime”特性
13.5.4 带键盘控制的反应时间定时器
13.5.5 数字闹钟
13.6 完整程序清单
第3部分 用户I/O外设开发
第14章 带PIO核的用户I/O外设
14.1 引言
14.2 集成除法电路到Nios Ⅱ系统
14.2.1 PIO模块
14.2.2 集成
14.3 测试
14.4 推荐实验
14.4.1 除法核的ISR
14.4.2 8位数据的除法核
14.4.3 64位数据的除法核
14.4.4 斐波那契数电路
14.4.5 周期计数器
第15章 Avalon互连与SOPC组件
15.1 引言
15.2 Avalon MM接口
15.2.1 Avalon MM从设备接口信号
15.2.2 Avalon MM从设备接口性质
15.2.3 Avalon MM从设备时序
15.3 Avalon接口的系统互连结构
15.4 SOPC I/O组件封装电路
15.4.1 接口I/O缓存器
15.4.2 内存对齐
15.4.3 Avalon MM主设备的输出译码
15.4.4 Avalon MM主设备的输入多路选择
15.4.5 实际考虑
15.5 SOPC组件构建指南
15.5.1 Avalon接口
15.5.2 寄存器映射
15.5.3 封装的除法电路
15.5.4 SOPC组件创建
15.5.5 SOPC组件实例化
15.6 测试
15.7 文献注释
15.8 推荐实验
15.8.1 除法核的ISR
15.8.2 除法核的另一种缓存方案
15.8.3 8位数据的除法核
15.8.4 64位数据的除法核
15.8.5 斐波那契数电路
15.8.6 周期计数器
第16章 SRAM和SDRAM控制器
16.1 DE1开发板存储器资源
16.2 时序和时钟管理的概述
16.2.1 时钟分配网络
16.2.2 片外访问的时序问题
16.2.3 PLL
16.3 SRAM概述
16.3.1 SRAM单元
16.3.2 基本结构
16.3.3 时序
16.3.4 IS61LV25616AL SRAM芯片
16.4 SRAM控制器IP核
16.4.1 Avalon接口
16.4.2 控制器电路
16.4.3 SOPC组件的创建
16.5 DRAM概述
16.5.1 DRAM单元
16.5.2 基本的DRAM结构
16.5.3 DRAM时序
16.6 SDRAM概述
16.6.1 基本的SDRAM结构
16.6.2 SDRAM时序
16.6.3 ICSI IS42S16400 SDRAM芯片
16.7 SDRAM控制器和PLL
16.7.1 基本的SDRAM控制器
16.7.2 SDRAM控制器IP核
16.7.3 SOPC PLL IP核
16.8 测试系统
16.8.1 测试硬件配置
16.8.2 测试软件
16.9 文献注释
16.10 推荐实验
16.10.1 没有I/O寄存器的SRAM控制器
16.10.2 SRAM控制器速度测试
16.10.3 带Avalon MM三态接口的SRAM控制器
16.10.4 SDRAM控制器时钟偏斜测试
16.10.5 存储器性能比较
16.10.6 锁存器的影响
16.10.7 从零构建SDRAM控制器
16.11 完整程序清单
第17章 PS2键盘和鼠标
17.1 引言
17.2 PS2接收子系统
17.2.1 PS2设备到主机的通信协议
17.2.2 设计和代码
17.3 PS2传送子系统
17.3.1 主机到PS2设备的通信协议
17.3.2 设计和代码
17.4 完整的PS2系统
17.5 PS2控制器IP核开发
17.5.1 Avalon接口
17.5.2 寄存器映射
17.5.3 封装的PS2系统
17.5.4 SOPC组件创建
17.6 PS2驱动
17.6.1 寄存器映射
17.6.2 写操作程序
17.6.3 读操作程序
17.7 键盘驱动
17.7.1 扫描码概述
17.7.2 与主机的交互
17.7.3 驱动程序
17.8 鼠标驱动
17.8.1 PS2鼠标协议概述
17.8.2 与主机的交互
17.8.3 驱动程序
17.9 测试
17.10 书中用户IP核的使用
17.10.1 文件组织结构
17.10.2 SOPC库集成
17.10.3 综合的Nios Ⅱ测试系统
17.11 文献注释
17.12 推荐实验
17.12.1 带看门狗定时器的PS2接收子系统
17.12.2 软件接收FIFO
17.12.3 软件PS2控制器
17.12.4 键盘控制的LED闪烁电路
17.12.5 增强型键盘驱动程序Ⅰ
17.12.6 增强型键盘驱动程序Ⅱ
17.12.7 遥控模式鼠标驱动
17.12.8 滚轮鼠标驱动
17.13 完整程序清单
第18章 VGA控制器
18.1 引言
18.1.1 CRT显示器的基本操作
18.1.2 DE1板上的VGA端口
18.1.3 视频控制器
18.2 VGA同步
18.2.1 水平同步
18.2.2 垂直同步
18.2.3 VGA同步信号时序计算
18.2.4 HDL实现
18.3 基于SRAM的视频RAM控制器
18.3.1 视频存储器概述
18.3.2 DE1开发板的存储器问题
18.3.3 Ad Hoc SRAM控制器
18.3.4 HDL代码
18.4 调色板电路
18.5 视频控制器IP核的开发
18.5.1 完整的视频控制器
18.5.2 Avalon接口
18.5.3 寄存器映射
18.5.4 封装的视频控制器
18.5.5 SOPC组件创建
18.6 视频驱动
18.6.1 视频内存访问程序
18.6.2 几何模型程序
18.6.3 位图处理函数
18.6.4 位映射文本程序
18.7 鼠标处理程序
18.8 测试程序
18.8.1 图形绘制程序
18.8.2 通用绘图程序
18.8.3 竖条交换程序
18.8.4 鼠标演示程序
18.8.5 位映射文本程序
18.9 位图文件处理
18.9.1 BMP格式概述
18.9.2 BMP文件的生成
18.9.3 基于子画面的设计
18.9.4 BMP文件访问
18.9.5 基于主机的文件系统
18.9.6 位图文件获取程序
18.10 文献注释
18.11 推荐实验
18.11.1 基于PLL的VGA控制器
18.11.2 使用16位内存配置的VGA控制器
18.11.3 三位色彩深度的VGA控制器
18.11.4 一位颜色深度的VGA控制器
18.11.5 带双缓存的VGA控制器
18.11.6 分辨率为320×240的VGA控制器
18.11.7 含垂直模式操作的VGA控制器
18.11.8 几何模型函数
18.11.9 位图处理函数
18.11.10 模拟“神奇画板”玩具
18.11.11 调色板查找表电路
18.11.12 虚拟LED闪烁系统控制板
18.11.13 虚拟模拟挂钟
18.12 推荐工程
18.12.1 可配置的VGA控制器
18.12.2 使用系统SDRAM的VGA控制器
18.12.3 绘图程序
18.12.4 视频游戏
18.13 完整程序清单
第19章 音频编解码控制器
19.1 引言
19.1.1 编解码器概述
19.1.2 WM8731芯片简介
19.1.3 WM8731芯片寄存器
19.2 I2C控制器
19.2.1 I2C接口概述
19.2.2 HDL实现
19.3 编解码器数据访问控制器
19.3.1 数字音频接口概述
19.3.2 HDL实现
19.4 音频编解码控制器IP核开发
19.4.1 完整的音频编解码控制器
19.4.2 Avalon接口
19.4.3 寄存器映射
19.4.4 封装的音频编解码控制器
19.4.5 SOPC组件创建
19.5 编解码驱动
19.5.1 I2C命令程序
19.5.2 数据源选择程序
19.5.3 芯片初始化程序
19.5.4 音频数据访问程序
19.6 测试程序
19.7 音频文件处理
19.7.1 WAV格式概述
19.7.2 音频格式转换程序
19.7.3 音频数据读取程序
19.8 文献注释
19.9 推荐实验
19.9.1 软件I2C控制器
19.9.2 使用主设备时钟模式设计硬件数据访问控制器
19.9.3 使用从设备时钟模式的软件数据访问控制器
19.9.4 使用主设备时钟模式的软件数据访问控制器
19.9.5 可配置的数据访问控制器
19.9.6 语音录音机
19.9.7 实时正弦波发生器
19.9.8 实时音频波形显示
19.9.9 回音效果
19.10 推荐工程
19.10.1 完整的I2C控制器
19.10.2 数字均衡器
19.10.3 数字音频示波器
19.11 完整程序清单
第20章 SD卡控制器
20.1 SD卡概述
20.2 SPI控制器
20.2.1 SPI接口概述
20.2.2 HDL实现
20.3 SPI控制器IP核开发
20.3.1 Avalon接口
20.3.2 寄存器映射
20.3.3 封装的SPI控制器
20.3.4 SOPC组件创建
20.4 SD卡协议
20.4.1 SD卡的命令和响应格式
20.4.2 初始化和辨识过程
20.4.3 数据读和写过程
20.5 SPI与SD卡驱动程序
20.5.1 SPI驱动程序
20.5.2 SD卡驱动程序
20.6 文件访问
20.6.1 FAT16结构概述
20.6.2 只读FAT16文件访问驱动程序
20.7 测试程序
20.8 SD卡的数据传输性能
20.9 文献注释
20.10 推荐实验
20.10.1 SD卡的数据传输性能测试
20.10.2 鲁棒性强的SD卡驱动程序
20.10.3 SD卡存取的专用处理器
20.10.4 基于硬件的SD卡的读写操作
20.10.5 SD卡信息读取
20.10.6 MMC卡支持
20.10.7 多扇区读写操作
20.10.8 带CRC校验的SD卡驱动程序
20.10.9 数字音乐播放器
20.10.10 数字相框
20.10.11 附加的FAT功能
20.11 推荐工程
20.11.1 HAL API文件访问集成
20.12 完整程序清单
第4部分 硬件加速器实例研究
第21章 GCD加速器
21.1 引言
21.2 软件实现
21.3 硬件实现
21.3.1 ASMD图
21.3.2 HDL实现
21.4 时间测量
21.4.1 HAL时间戳驱动
21.4.2 定制的硬件计数器
21.5 GCD加速器IP核开发
21.5.1 Avalon接口
21.5.2 寄存器映射
21.5.3 封装的GCD加速器
21.6 测试程序
21.6.1 GCD程序
21.6.2 主程序
21.7 性能比较
21.8 文献注释
21.9 推荐实验
21.9.1 使用其他处理器配置的性能
21.9.2 最小规模的GCD加速器
21.9.3 带后补零电路的GCD加速器
21.9.4 64位数据的GCD加速器
21.9.5 128位数据的GCD加速器
21.9.6 欧拉算法的GCD
21.10 完整程序清单
第22章 Mandelbrot集合分形加速器
22.1 引言
22.1.1 Mandelbrot集合的概述
22.1.2 Mandelbrot集合点的确定
22.1.3 配色方案
22.1.4 分形图像的生成
22.2 定点运算
22.3 函数calc_frac_point()的软件实现
22.4 函数calc_frac_point()的硬件实现
22.4.1 ASMD图
22.4.2 HDL实现
22.5 Mandelbrot集合分形加速器IP核开发
22.5.1 Avalon接口
22.5.2 寄存器映射
22.5.3 封装的Mandelbrot集合分形加速器
22.6 测试程序
22.6.1 分形图形用户接口
22.6.2 分形硬件加速器引擎控制程序
22.6.3 分形绘图程序
22.6.4 文本区显示程序
22.6.5 鼠标处理程序
22.6.6 主程序
22.7 讨论
22.8 文献注释
22.9 推荐实验
22.9.1 含一个乘法器的硬件加速器
22.9.2 逃逸条件修改的硬件加速器
22.9.3 使用Q4.1 2格式的硬件加速器
22.9.4 多个分形引擎的硬件加速器
22.9.5 “Burning-ship”分形
22.9.6 改进的测试程序
22.10 推荐工程
22.10.1 浮点硬件加速器
22.10.2 通用画分形图平台
22.11 完整程序清单
第23章 直接数字频率合成
23.1 引言
23.2 设计和实现
23.2.1 数字波形的直接合成
23.2.2 未调制的模拟波形的直接合成
23.2.3 调制的模拟波形的直接合成
23.2.4 HDL实现
23.3 DDFS IP核开发
23.3.1 Avalon接口
23.3.2 寄存器映射
23.3.3 封装的DDFS电路
23.3.4 编解码器的DAC集成
23.4 DDFS驱动
23.4.1 配置程序
23.4.2 初始化程序
23.5 测试
23.5.1 音符的概括和合成
23.5.2 测试程序
23.6 文献注释
23.7 推荐实验
23.7.1 正交相位载波生成
23.7.2 缩减的相位—幅度查找表
23.7.3 合成音乐播放器
23.7.4 键盘钢琴
23.7.5 键盘记录仪
23.7.6 硬件包络发生器
23.7.7 谐波叠加合成器
23.7.8 采样合成器
23.8 推荐工程
23.8.1 声音发生器
23.8.2 函数发生器
23.8.3 完整的电子合成器
23.9 完整程序清单
参考文献