System C入门(第2版)(内附光盘1张)
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: (美)巴斯克(Bhasker,J)著;夏宁,甘伟译
出 版 社:
出版时间: 2008-9-1字数: 370000版次: 1页数: 239印刷时间: 2008/09/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787811242492包装: 平装编辑推荐
“这是一本透过普通数字系统的概念,循序渐进地向读者介绍SystemC复杂编程技术的入门书。”
Stanley Krolikoski、开放SystemC提案委员会(OSCI)主席
“本书非常适合作为学生的教科书,对于想开始学习SystemC的硬件设计师有巨大的价值。”
Bernhard Niemann、Fraunhofer集成电路研究院
“对手想学习RTL级SystemC的设计者而言,本书无疑是一本很值得读的参考书,书中的许多例子可以引导读者全面地理解这种语言。本书对SystemC更高级的特性也作了介绍,没有置之不理、总而言之,这是一本介绍SystemC的好书。”
Yves Vanderperren,Alcatel微电子公司
“本书为SystemC提供了极好的介绍,书中许多实际例子清晰地介绍和说明了SystemC的概念。对SystemC建模感兴趣的读者而言,本书是一本必读的好书。”
Abhijit Ghosh,Synopsys公司
“对于使用SystemC进行硬件设计感兴趣的读者而言,本书是一本非常有用的好书。书中的许多实际例子对于用RTL综合可以做些什么工作提出了注重实效的建议。”
Grant Martin。Cadence实验室研究员
“我非常欣赏这本书,真心诚意地把本书推荐给学习SystemC建模和综合的设计师们。本书将受到研究生和高年级本科生课程的欢迎。”
David Long,Doulos公司
内容简介
SystemC既是系统级语言,也是硬件描述语言。本书介绍的是systemC 2.O标准,主要介绍systemC有关硬件建模方面的语法特性,换言之,是介绍systemC的RTL可综合子集。其主要内容包括:SystemC数据类型、组合逻辑建模、同步逻辑建模、三态驱动器建模、常用的设计函数模型、测试平台的编写及系统级建模的功能等。随书附带1张光盘,内含本书所有例子的代码。本书所有例子都经过Systemc 2.0.1的验证。
本书可作为想要了解和学习SystemC的设计工程师和系统工程师的参考书,也可用做大学讲授体系结构、数字设计或系统设计课程的教材。
作者简介
Bhasker,Bhasker是eSilicon公司的体系结构设计师。他曾是朗讯技术公司和贝尔实验室技术部门的杰出成员,并在朗讯科技公司教授VHDL和Verilog HDL课程四年多。他还编写了四本其他有关硬件描述语言和综合的书籍,其中包括最畅销的书A VHDL Primer和Verilog HDL Synthesis,A Practical Primer。Bhasker拥有美国明尼苏达大学计算机科学系的博士学位和计算机技术学院的技术硕士学位,以及新德里印度技术学院电子工程系的学士学位。
目录
第1章 绪论
1.1 什么是SystemC?
1.2 为什么使用SystemC?
1.3 设计方法学
1.4 SystemC的功能
1.5 SystemCRTL
1.6 本书的组织
1.7 练习题
第2章 起步
2.1 基础知识
2.2 再举一个例子
2.3 描述的层次
2.4 功能的验证
2.5 练习题
第3章 数据类型
3.1 值保持器
3.2 类型的总结
3.3 位类型
3.4 任意位宽类型
3.5 逻辑类型
3.6 任意位宽的逻辑类型
3.7 有符号的整数类型
3.8 无符号的整数类型
3.9 任意精度有符号的整数类型
3.1 0任意精度无符号的整数类型
3.1 1判断类型
3.1 2用户定义的数据类型
3.1 3推荐的数据类型
3.1 4练习题
第4章 组合逻辑建模
4.1 SC—MODULE
4.2 一个例子
4.3 端口和信号的读/写
4.4 逻辑操作符
4.5 算术操作符
4.5.1 无符号的算术运算
4.5.2 有符号的算术运算
4.6 关系操作符
4.7 向量和范围
4.7.1 常数索引
4.7.2 非常数索引
4.8 条件语句
4.9 开关语句
4.1 0循环
4.1 1方法
4.1 2结构
4.1 3多进程和△延迟
4.1 4小结
4.1 5练习题
第5章 同步逻辑建模
5.1 触发器建模
5.2 多进程
5.3 带异步置位和清零端的触发器
5.4 带同步置位和清零端的触发器
5.5 多时钟和多相位时钟
5.6 锁存器建模
5.6.1 条件语句
5.6.2 开关语句
5.6.3 避免生成锁存器
5.7 小结
5.8 练习题
第6章 各色各样的逻辑
6.1 三态驱动器
6.2 多个驱动源
6.3 无关项的处理
6.4 层次
6.5 模块的参数化
6.6 变量和信号的赋值
6.7 练习题
第7章 建模示例
7.1 具有三态输出的参数化寄存器
7.2 存储器模型
7.3 有限状态机的建模
7.3.1 摩尔型有限状态机
7.3.2 米利型有限状态机
7.4 通用移位寄存器
7.5 计数器
7.5.1 模N计数器
7.5.2 Johnson计数器
7.5.3 格雷码双向计数器
7.6 Johnson译码器
7.7 阶乘的模型
7.8 只读存储器(ROM)的建模
7.9 练习题
第8章 测试平台的编写
8.1 编写测试平台
8.2 仿真控制
8.2.1 scclock
8.2.2 sctrace
8.2.3 scstart
8.2.4 scstop
8.2.5 sctime—stamp
8.2.6 scsimulaLion_time
8.2.7 sccycle和scinitialize
8.2.8 sctime
8.3 波形
8.3.1 任意类型的波形
8.3.2 复杂的重复波形
8.3.3 生成一个衍生的时钟
8.3.4 从文件中读取激励
8.3.5 响应性激励
8.4 监视行为
8.4.1 判断仿真结果是否正确
8.4.2 把结果保存到文本文件中
8.5 更多示例
8.5.1 触发器
8.5.2 带同步输出的多路选择器
8.5.3 全加器
8.5.4 周期节拍级仿真
8.6 在sc—main内的语句顺序
8.7 跟踪记录集合类型
8.8 跟踪记录枚举类型
8.9 练习题
第9章 系统级建模
9.1 SC—THREAD进程
9.2 动态敏感性
9.3 构造函数的参数
9.4 更多示例
9.4.1 求最大公约数
9.4.2 滤波器
9.5 端口、接口和通道
9.6 高级话题
9.6.1 共享的数据成员
9.6.2 定点类型
9.6.3 模块
9.6.4 其他方法
9.7 仿真算法
9.8 练习题
附录A 运行环境
A.1 软件的安装
A.2 设计的编译
A.3 设计的仿真
A.4 设计的调试
附录B SystemCRTL:SystemC的可综合子集
B.1 SystemC的特性
B.2 C++的特性
参考文献
索引
书摘插图
第1章 绪论
1.2为什么使用SystemC?
设计正在变得越来越大,运行速度变得越来越快,复杂程度也变得越来越高,因此有必要在更高的抽象层次上对设计进行描述,以便能进行:
①更高速度的仿真;
②硬件/软件的协同仿真;
③体系架构的探索。
为了管理大型设计的复杂度,以便所有的设计优化和探索工作都可以在系统级上实现,在系统级上的描述设计变得十分重要。此外,硬件和软件的复杂程度也日益提高,这意味着相对于硬件而言,设计的更多功能将由软件来解决。为了确定哪些功能应由硬件来解决,哪些功能应由软件来解决,就必须进行至关重要的功能划分工作。
系统级设计提供了一种可以很快得到其可执行规范的方法,使用该规范可以确认设计概念的可行性。该行为规范使得设计人员在设计实现之前,就有了该设计的总体指标,以确保所设计系统能够与周围环境(即该系统设计的所有外部块)正确地交互。系统设计使得设计的早期验证成为可能,这是因为在开发过程的初期,就可以通过总线一周期精确模型来进行快速仿真。
当设计被表达为系统级模型时,选用不同的算法对设计进行多次尝试是很容易做到的,换用不同的结构进行试验也能很快地完成;倘若使用寄存器传输级或门级模型来表达设计,则完成上述试验就很麻烦。图1-2展示了设计的大小。设计模型使用芯片级描述,规模通常相当大;若要试探不同的设计结构或者做一些改动,即使不是太困难,也相当费时费力。然而,设计模型若使用系统级描述,则规模一般不会很大且容易管理,并且尝试设计不同的架构和对设计做一些改动等都可以很快地完成。
……