注册 登录 进入教材巡展
#

出版时间:2022-12

出版社:电子工业出版社

以下为《敏捷硬件开发语言Chisel与数字系统设计》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 电子工业出版社
  • 9787121434129
  • 1-2
  • 454679
  • 48253598-6
  • 平塑
  • 16开
  • 2022-12
  • 429
  • 268
  • 电子信息与电气
  • 本科 研究生及以上
目录
第一篇 敏捷硬件开发语言Chisel__eol__第1章 新型敏捷硬件开发语言——Chisel和Scala 2__eol__1.1 最好的宿主——什么是Scala 2__eol__1.2 敏捷开发——什么是Chisel 2__eol__1.3 Scala入门——让你的代码跑起来 4__eol__1.3.1 Scala的安装方法 4__eol__1.3.2 使用Scala解释器 4__eol__1.3.3 运行Scala脚本 4__eol__1.3.4 编译非脚本文件 5__eol__1.3.5 使用IDEA开发Scala项目 5__eol__1.3.6 总结 7__eol__1.4 章节安排 7__eol__1.5 参考文献 8__eol__1.6 课后练习 8__eol__第2章 Chisel入门及数据类型 9__eol__2.1 Chisel开发环境的安装步骤 9__eol__2.1.1 安装步骤 9__eol__2.1.2 开发环境测试 10__eol__2.1.3 小结 11__eol__2.2 Chisel的常见问题 11__eol__2.3 Chisel的变量与数据类型 12__eol__2.3.1 数据字面量与数据类型 13__eol__2.3.2 数据宽度 14__eol__2.3.3 类型转换 14__eol__2.3.4 向量 15__eol__2.3.5 混合向量 16__eol__2.3.6 包裹 16__eol__2.3.7 Chisel的内建操作符 17__eol__2.3.8 位宽推断 18__eol__2.3.9 Chisel泛型 19__eol__2.4 总结 19__eol__2.5 课后练习 19__eol__第3章 模块与硬件类型 20__eol__3.1 Chisel是如何赋值的 20__eol__3.2 端口(IO) 21__eol__3.2.1 定义端口列表 21__eol__3.2.2 翻转端口列表的方向 21__eol__3.2.3 整体连接 22__eol__3.2.4 动态修改端口 23__eol__3.3 模块 24__eol__3.3.1 模块分类 24__eol__3.3.2 定义模块 26__eol__3.3.3 例化模块 27__eol__3.3.4 例化多个模块 28__eol__3.4 线网 28__eol__3.4.1 Wire 28__eol__3.4.2 WireDefault 29__eol__3.4.3 未驱动的线网 30__eol__3.5 寄存器 31__eol__3.5.1 Reg 31__eol__3.5.2 RegNext 32__eol__3.5.3 RegInit 32__eol__3.5.4 RegEnable 33__eol__3.5.5 ShiftRegister 34__eol__3.5.6 寄存器实例 34__eol__3.5.7 异步寄存器 39__eol__3.6 寄存器组 41__eol__3.7 用when给电路赋值 42__eol__3.8 总结 44__eol__3.9 参考文献 45__eol__3.10 课后练习 46__eol__第4章 Chisel常用的硬件原语 47__eol__4.1 多路选择器 47__eol__4.2 优先编码器 48__eol__4.3 仲裁器 48__eol__4.4 队列 51__eol__4.5 ROM 54__eol__4.6 RAM 55__eol__4.7 带写掩码的RAM 57__eol__4.8 从文件读取数据到RAM 58__eol__4.9 计数器 62__eol__4.10 线性反馈移位寄存器 66__eol__4.11 状态机 70__eol__4.12 总结 73__eol__4.13 参考文献 73__eol__4.14 课后练习 73__eol__第5章 生成Verilog HDL代码与基本测试 74__eol__5.1 生成Verilog HDL代码 74__eol__5.1.1 execute 74__eol__5.1.2 emitVerilog 76__eol__5.2 增加参数的方法 77__eol__5.2.1 Firrtl传递参数 77__eol__5.2.2 给主函数传递参数 78__eol__5.3 编写chisel-iotesters测试 79__eol__5.4 运行chisel-iotesters测试 81__eol__5.5 使用chiseltest进行测试 82__eol__5.6 总结 85__eol__5.7 课后练习 85__eol__第6章 黑盒 86__eol__6.1 例化黑盒 86__eol__6.2 复制Verilog文件 88__eol__6.3 内联Verilog文件 90__eol__6.4 inout端口 91__eol__6.5 总结 92__eol__6.6 课后练习 92__eol__第7章 多时钟域设计 94__eol__7.1 没有隐式端口的模块 94__eol__7.2 定义一个时钟域和复位域 95__eol__7.2.1 withClockAndReset 95__eol__7.2.2 withClock和withReset 96__eol__7.2.3 复位信号的三种类型 103__eol__7.3 使用时钟负沿和低有效的复位信号 103__eol__7.4 示例:异步FIFO 105__eol__7.5 总结 108__eol__7.6 参考文献 108__eol__7.7 课后练习 108__eol__第8章 函数的应用 109__eol__8.1 用函数抽象组合逻辑 109__eol__8.2 用工厂方法简化模块的例化 110__eol__8.3 用Scala的函数简化代码 113__eol__8.4 Chisel的打印函数 114__eol__8.4.1 Scala风格 114__eol__8.4.2 C风格 116__eol__8.5 使用打印函数实例 116__eol__8.6 Chisel的对数函数 119__eol__8.7 与硬件相关的函数 119__eol__8.8 隐式类的应用 122__eol__8.9 递归函数的应用 123__eol__8.10 总结 125__eol__8.11 参考文献 125__eol__8.12 课后练习 125__eol__第9章 其他议题 126__eol__9.1 重命名模块名称 126__eol__9.2 命名规则 127__eol__9.3 重命名模块内信号名称 131__eol__9.3.1 前缀 131__eol__9.3.2 suggestName 132__eol__9.3.3 forceName 133__eol__9.4 参数化的Bundle 135__eol__9.5 FixedPoint 137__eol__9.6 assert 138__eol__9.7 总结 140__eol__9.8 参考文献 140__eol__9.9 课后练习 140__eol__第10章 riscv-mini 141__eol__10.1 riscv-mini简介 141__eol__10.2 数据通路 141__eol__10.3 riscv-mini的子模块 142__eol__10.3.1 ALU模块 142__eol__10.3.2 BrCond模块 143__eol__10.3.3 Cache模块 144__eol__10.3.4 Control模块 145__eol__10.3.5 CSR模块 146__eol__10.3.6 ImmGen模块 147__eol__10.3.7 Instructions模块 147__eol__10.3.8 RegFile模块 148__eol__10.3.9 Datapath模块 148__eol__10.3.10 Core模块 149__eol__10.4 riscv-mini参数化机制 149__eol__10.4.1 Field[T]类 149__eol__10.4.2 View类 150__eol__10.4.3 Parameters类及其伴生对象 151__eol__10.4.4 Config类 152__eol__10.5 参数化机制的应用 152__eol__10.6 总结 157__eol__10.7 参考文献 157__eol__10.8 课后练习 158__eol__第二篇 Scala语言编程基础知识__eol__第11章 Scala的变量及函数 160__eol__11.1 变量定义与基本类型 160__eol__11.1.1 定义一个变量 160__eol__11.1.2 Scala的基本类型 161__eol__11.1.3 小结 164__eol__11.2 函数及其几种形式 164__eol__11.2.1 定义一个函数 164__eol__11.2.2 方法 166__eol__11.2.3 嵌套函数 166__eol__11.2.4 函数字面