
程式设计基础——以C为例
《程式设计基础——以C为例》是2012年清华大学出版社出版的图书,作者是虞歌。
基本介绍
- 中文名:程式设计基础——以C为例
- 作者:虞歌
- 定价:39.5
- 印次:1-1
- ISBN:9787302299622
- 装帧:平装
- 出版时间:2012-9-21
- 出版社:清华大学出版社
内容简介
本书是以C语言作为入门语言的程式设计的教材,以崭新的思路进行设计和编排。全书以程式设计零起点读者为主要对象,以培养程式设计能力为目标,简洁通俗、循序渐进,通过数百个例题,重点讲解程式设计思想和方法,力图将C语言基础知识介绍和程式设计能力培养完美结合。本书共9章,包括程式设计概述、C语言程式设计入门、语句和基本控制结构、函式、指针、数组、结构、档案以及编写多档案程式。
随着信息产业的迅速发展,软体人才的需求量越来越大。程式设计是软体人才必备的基础知识和技能。 程式设计基础是一门理论与实践密切相关、以培养学生程式设计能力为目标的课程。如何消除学生学习程式设计的畏难情绪,使学生顺利进入程式设计的大门,逐步掌握程式设计思想和方法,提高实践动手能力,是本课程教学的难点。 程式设计既是科学,又是艺术。学习程式设计是一件非常辛苦的事情,要有非常强的耐心和实践精神,需要花费大量的时间,不可能一蹴而就,必须从某个起点开始循序渐进地学习。
本书可作为高等学校学生学习程式设计课程的教材,也可供程式设计师和编程爱好者参考使用。
编辑推荐
随着信息产业的迅速发展,软体人才的需求量越来越大。程式设计是软体人才必备的基础知识和技能。
程式设计基础是一门理论与实践密切相关、以培养学生程式设计能力为目标的课程。如何消除学生学习程式设计的畏难情绪,使学生顺利进入程式设计的大门,逐步掌握程式设计思想和方法,提高实践动手能力,是本课程教学的难点。
程式设计既是科学,又是艺术。学习程式设计是一件非常辛苦的事情,要有非常强的耐心和实践精神,需要花费大量的时间,不可能一蹴而就,必须从某个起点开始循序渐进地学习。
本书就是一个很好的起点,以程式设计零起点读者为主要对象,採用标準C语言(C89)作为程式设计的描述语言。C语言是目前业界最广泛使用的程式设计语言,作者确信选用C语言作为程式设计基础课程的教学语言是正确的选择。在多年的教学实践中,作者深深感到C语言的灵活和高效,能够带给软体开发者无尽想像的空间,同时也深深感到讲授C语言过程中面临的困难和挑战,意识到在程式设计基础课程中讲授C语言并不那幺容易。C语言是一门複杂的程式设计语言,是为软体开发者设计的,而非为初学者设计的,向初学者讲授C语言时必须很好地控制其固有的複杂性。
儘管目前有关学习C语言的书籍很多,但学习C语言仍然让大多数初学者心存畏惧。作者一直从事程式设计方面的教学和科研工作,主讲过多门程式设计课程,积累了丰富的教学经验。结合自己学习和使用C语言的经验和感悟,以程式设计为主线,通过数百个例题,简洁通俗地讲解程式设计思想和方法,并穿插介绍相关的语言知识,循序渐进培养学生程式设计能力。本书对那些渴望掌握C语言而又心存畏惧的初学者是一个很好的选择。
教学改革的重点之一,就是要抓学生实践动手能力的培养,学生的能力是决定就业的根本,而就业率又是体现教育质量的重要指标。作为国内首家服务外包本科学院以及教育部、商务部在江苏、浙江两省开展地方高校计算机学院培养服务外包人才试点工作单位,我们实施了程式设计课程的教学改革,在教学内容、教学方法、教学手段和考核方式上,基本形成了比较完整的体系,目的就是培养学生的程式设计能力,适应社会对软体服务外包人才培养的需求。本书源于教学改革和教学实践,体现了程式设计教学改革的成果。
全书共有9章,各章内容安排如下:第1章程式设计概述,介绍计算机系统、程式设计基本概念和C语言的基础知识。第2章C语言程式设计入门,介绍基本数据类型及其运算、表达式的书写规则、标準函式馆的使用以及程式设计错误、程式设计风格。第3章语句和基本控制结构,介绍编写结构化程式的方法,内容包括语句和顺序、分支、循环等基本控制结构。第4章函式,内容包括函式的声明、定义和使用,递归函式,存储类别和作用域,预处理指令。第5章指针,内容包括指针的基本概念、指针的声明和使用,通用指针、指针和const的关係、指针作为函式参数和函式返回值类型以及函式指针。第6章数组,介绍组织和处理成组数据的方法,内容包括数组的基本概念、数组的声明和使用、数组作为函式参数、数组和指针的关係、排序和查找、字元串以及动态存储分配。第7章结构,介绍组织和处理複杂数据的方法,内容包括结构类型和结构变数、结构指针、结构数组,结构作为函式参数和函式返回值类型。还特别介绍了鍊表的概念和基本操作,以及联合、位运算、位域的基本知识。第8章档案,介绍数据永久性保存的方法,内容包括档案的基本概念、档案操作、档案输入输出以及档案定位。第9章编写多档案程式,介绍了编写大型程式的一些方法,内容包括模组、分块开发、利用项目实现程式的多档案组织。
写给教师
跟各位尊敬的老师一样,作者从事了多年的程式开发和教学工作,深知教学的艰辛,为教学方法费尽了心机,为教学效果伤透了脑筋,为学生的学习成绩摇头惋惜……所有这一切,从主观上说,与教师素质有关、与教学方法有关、与学生的学习态度有关;而在客观上,与教材和教学内容组织更有着重大的关联。编写本书的目的,就是试图从客观的角度,使教师的教学热情有更好的着力点,从而更顺利地完成既定的教学目标,让教师和学生的辛劳能得到应有的回报。
建议课堂授课学时为51学时(教学时间为17周,每周为3学时),实验另行安排学时。第1章3学时,第2章9学时,第3章6学时,第4章9学时,第5章3学时,第6章9学时,第7章6学时,第8章3学时,第9章3学时。
每章后面都有精心设计的实验题,可以据此来布置实验内容,使学生从第1周起就练习编程,并贯穿始终。许多实验题与例题有关联。实验题都有运行结果,较难的实验题有编程提示和程式代码,便于学生检验自己编写的程式。
实验所用作业系统可以是Windows、Mac OS X或UNIX/Linux,建议使用业界流行的C语言集成开发工具(例如,Visual Studio、Xcode或Code∷Blocks的较新版本),支持利用项目来实现程式的多档案组织。彻底抛弃非常陈旧的Visual C++ 6.0和Turbo C 2.0.
在讲授过程中,应该完全遵循C语言的标準版本(例如C89) ,避免程式依赖任何特定的计算机、作业系统和编译器。要注重培养学生养成良好的编码风格,强调程式的可读性。在编写程式时,採用一种统一的、良好的编码风格是非常重要的。本书程式全部採用一种符合业界规範的编码风格。
我们所面对的教学对象,绝大多数是第一次接触程式设计的学生,很多学生对学习程式设计还有较大的畏难情绪。培养学生程式设计能力不外乎三点: 兴趣、天赋和经验。经验可以通过实践加以积累,天赋不容易改变,所以程式设计课程教学唯一能起作用的就是提高学生对于编程的兴趣。
以往的程式设计教学多以讲授语法为主,没有引导学生如何合理优美地使用语言来解决实际问题。对初学者来说,语法内容讲得太多,难以在短时间内理解和消化。更何况,在课堂教学中,不可能把语法知识面面俱到地讲授。这就造成了学生学完后多数不会编程。这种只造砖、不盖房的教学方式,本身就造就了学生的学习态度,使学生感觉就是为了考试过关、为了学分而学习,所以学习的兴趣不大,主观能动性缺乏,学过的东西也很少能对将来的就业和工作有帮助,因此,真正能够达到课程期望目标的学生少之又少。
应该抛弃过多的语法细节和实际很少使用的语言特性,通过“例题→知识点说明→模仿编程→实践提高”的教学方式,让学生首先得到成功的经历,儘快体验成功的喜悦,逐渐喜爱看似枯燥的课程,增强学习的信心,激发求知慾。如果不仅会造砖,而且用造好的砖瓦亲手盖起了漂亮的房子,那幺,学生就不会轻易将它们丢弃,而且还会长期拥有、使用和维护它们。这样,学到的东西就会真正成为他们自己的财富,而他们也将由此长期受益。那幺,教师顺利、圆满地完成教学目标也就可以期待了。
写给学生
程式设计是一门实践性很强的学科,仅靠记概念、背原理是远远不够的。通常学生在上课时基本都能够听懂,可到了自己动手编程的时候,就会觉得无从下手。要解决这个问题没有捷径可走,只有增加实践的时间和数量,熟能生巧,经历得多了,就会慢慢理解程式设计的思想,用过的方法多了,遇到问题才有可能想到解决的思路。
刚开始可能会感觉程式设计很难、很痛苦,可是当第一次编写出了一个小程式,就会觉得无比欣喜,回头看看其实也并不是那幺难。解决了一个过去不能解决的问题,就是一种自我实现,就会有成就感,就会发觉自己原来这幺有潜力。反过来这种感觉会更加激发学习的热情,驱使自己去解决更多的难题,实现更多实用的任务,同时这些成果还可以作为提高自己工作效率的工具,岂不两全其美?这个过程也正是一条造就高手之路。所以学习程式设计一定要有信心、耐心和恆心,要实践、实践、再实践。
致谢
在本书写作过程中,参考了部分图书资料和网站资料,在此向其作者表示感谢。
本书的出版得到了清华大学出版社的大力支持,在此表示衷心的感谢。
徵求建议与批评
感谢读者选择本书。由于作者水平和经验有限,书中难免有不足之处,恳请读者提出宝贵意见和建议,使本书日臻完善。
程式设计基础是一门理论与实践密切相关、以培养学生程式设计能力为目标的课程。如何消除学生学习程式设计的畏难情绪,使学生顺利进入程式设计的大门,逐步掌握程式设计思想和方法,提高实践动手能力,是本课程教学的难点。
程式设计既是科学,又是艺术。学习程式设计是一件非常辛苦的事情,要有非常强的耐心和实践精神,需要花费大量的时间,不可能一蹴而就,必须从某个起点开始循序渐进地学习。
本书就是一个很好的起点,以程式设计零起点读者为主要对象,採用标準C语言(C89)作为程式设计的描述语言。C语言是目前业界最广泛使用的程式设计语言,作者确信选用C语言作为程式设计基础课程的教学语言是正确的选择。在多年的教学实践中,作者深深感到C语言的灵活和高效,能够带给软体开发者无尽想像的空间,同时也深深感到讲授C语言过程中面临的困难和挑战,意识到在程式设计基础课程中讲授C语言并不那幺容易。C语言是一门複杂的程式设计语言,是为软体开发者设计的,而非为初学者设计的,向初学者讲授C语言时必须很好地控制其固有的複杂性。
儘管目前有关学习C语言的书籍很多,但学习C语言仍然让大多数初学者心存畏惧。作者一直从事程式设计方面的教学和科研工作,主讲过多门程式设计课程,积累了丰富的教学经验。结合自己学习和使用C语言的经验和感悟,以程式设计为主线,通过数百个例题,简洁通俗地讲解程式设计思想和方法,并穿插介绍相关的语言知识,循序渐进培养学生程式设计能力。本书对那些渴望掌握C语言而又心存畏惧的初学者是一个很好的选择。
教学改革的重点之一,就是要抓学生实践动手能力的培养,学生的能力是决定就业的根本,而就业率又是体现教育质量的重要指标。作为国内首家服务外包本科学院以及教育部、商务部在江苏、浙江两省开展地方高校计算机学院培养服务外包人才试点工作单位,我们实施了程式设计课程的教学改革,在教学内容、教学方法、教学手段和考核方式上,基本形成了比较完整的体系,目的就是培养学生的程式设计能力,适应社会对软体服务外包人才培养的需求。本书源于教学改革和教学实践,体现了程式设计教学改革的成果。
全书共有9章,各章内容安排如下:第1章程式设计概述,介绍计算机系统、程式设计基本概念和C语言的基础知识。第2章C语言程式设计入门,介绍基本数据类型及其运算、表达式的书写规则、标準函式馆的使用以及程式设计错误、程式设计风格。第3章语句和基本控制结构,介绍编写结构化程式的方法,内容包括语句和顺序、分支、循环等基本控制结构。第4章函式,内容包括函式的声明、定义和使用,递归函式,存储类别和作用域,预处理指令。第5章指针,内容包括指针的基本概念、指针的声明和使用,通用指针、指针和const的关係、指针作为函式参数和函式返回值类型以及函式指针。第6章数组,介绍组织和处理成组数据的方法,内容包括数组的基本概念、数组的声明和使用、数组作为函式参数、数组和指针的关係、排序和查找、字元串以及动态存储分配。第7章结构,介绍组织和处理複杂数据的方法,内容包括结构类型和结构变数、结构指针、结构数组,结构作为函式参数和函式返回值类型。还特别介绍了鍊表的概念和基本操作,以及联合、位运算、位域的基本知识。第8章档案,介绍数据永久性保存的方法,内容包括档案的基本概念、档案操作、档案输入输出以及档案定位。第9章编写多档案程式,介绍了编写大型程式的一些方法,内容包括模组、分块开发、利用项目实现程式的多档案组织。
写给教师
跟各位尊敬的老师一样,作者从事了多年的程式开发和教学工作,深知教学的艰辛,为教学方法费尽了心机,为教学效果伤透了脑筋,为学生的学习成绩摇头惋惜……所有这一切,从主观上说,与教师素质有关、与教学方法有关、与学生的学习态度有关;而在客观上,与教材和教学内容组织更有着重大的关联。编写本书的目的,就是试图从客观的角度,使教师的教学热情有更好的着力点,从而更顺利地完成既定的教学目标,让教师和学生的辛劳能得到应有的回报。
建议课堂授课学时为51学时(教学时间为17周,每周为3学时),实验另行安排学时。第1章3学时,第2章9学时,第3章6学时,第4章9学时,第5章3学时,第6章9学时,第7章6学时,第8章3学时,第9章3学时。
每章后面都有精心设计的实验题,可以据此来布置实验内容,使学生从第1周起就练习编程,并贯穿始终。许多实验题与例题有关联。实验题都有运行结果,较难的实验题有编程提示和程式代码,便于学生检验自己编写的程式。
实验所用作业系统可以是Windows、Mac OS X或UNIX/Linux,建议使用业界流行的C语言集成开发工具(例如,Visual Studio、Xcode或Code∷Blocks的较新版本),支持利用项目来实现程式的多档案组织。彻底抛弃非常陈旧的Visual C++ 6.0和Turbo C 2.0.
在讲授过程中,应该完全遵循C语言的标準版本(例如C89) ,避免程式依赖任何特定的计算机、作业系统和编译器。要注重培养学生养成良好的编码风格,强调程式的可读性。在编写程式时,採用一种统一的、良好的编码风格是非常重要的。本书程式全部採用一种符合业界规範的编码风格。
我们所面对的教学对象,绝大多数是第一次接触程式设计的学生,很多学生对学习程式设计还有较大的畏难情绪。培养学生程式设计能力不外乎三点: 兴趣、天赋和经验。经验可以通过实践加以积累,天赋不容易改变,所以程式设计课程教学唯一能起作用的就是提高学生对于编程的兴趣。
以往的程式设计教学多以讲授语法为主,没有引导学生如何合理优美地使用语言来解决实际问题。对初学者来说,语法内容讲得太多,难以在短时间内理解和消化。更何况,在课堂教学中,不可能把语法知识面面俱到地讲授。这就造成了学生学完后多数不会编程。这种只造砖、不盖房的教学方式,本身就造就了学生的学习态度,使学生感觉就是为了考试过关、为了学分而学习,所以学习的兴趣不大,主观能动性缺乏,学过的东西也很少能对将来的就业和工作有帮助,因此,真正能够达到课程期望目标的学生少之又少。
应该抛弃过多的语法细节和实际很少使用的语言特性,通过“例题→知识点说明→模仿编程→实践提高”的教学方式,让学生首先得到成功的经历,儘快体验成功的喜悦,逐渐喜爱看似枯燥的课程,增强学习的信心,激发求知慾。如果不仅会造砖,而且用造好的砖瓦亲手盖起了漂亮的房子,那幺,学生就不会轻易将它们丢弃,而且还会长期拥有、使用和维护它们。这样,学到的东西就会真正成为他们自己的财富,而他们也将由此长期受益。那幺,教师顺利、圆满地完成教学目标也就可以期待了。
写给学生
程式设计是一门实践性很强的学科,仅靠记概念、背原理是远远不够的。通常学生在上课时基本都能够听懂,可到了自己动手编程的时候,就会觉得无从下手。要解决这个问题没有捷径可走,只有增加实践的时间和数量,熟能生巧,经历得多了,就会慢慢理解程式设计的思想,用过的方法多了,遇到问题才有可能想到解决的思路。
刚开始可能会感觉程式设计很难、很痛苦,可是当第一次编写出了一个小程式,就会觉得无比欣喜,回头看看其实也并不是那幺难。解决了一个过去不能解决的问题,就是一种自我实现,就会有成就感,就会发觉自己原来这幺有潜力。反过来这种感觉会更加激发学习的热情,驱使自己去解决更多的难题,实现更多实用的任务,同时这些成果还可以作为提高自己工作效率的工具,岂不两全其美?这个过程也正是一条造就高手之路。所以学习程式设计一定要有信心、耐心和恆心,要实践、实践、再实践。
致谢
在本书写作过程中,参考了部分图书资料和网站资料,在此向其作者表示感谢。
本书的出版得到了清华大学出版社的大力支持,在此表示衷心的感谢。
徵求建议与批评
感谢读者选择本书。由于作者水平和经验有限,书中难免有不足之处,恳请读者提出宝贵意见和建议,使本书日臻完善。
2012年8月
图书目录
第1章 程式设计概述 /1
1.1 计算机系统 /1
1.1.1 计算机硬体系统 /1
1.1.2 计算机软体系统 /2
1.1.3 计算机中的信息表示 /3
1.2 程式设计基础 /5
1.2.1 程式 /5
1.2.2 程式设计语言 /5
1.2.3 程式设计 /6
1.3 C语言的发展历史与特点 /7
1.3.1 C语言的历史 /7
1.3.2 C语言的特点 /9
1.4 初识C语言 /10
1.4.1 基本术语 /10
1.4.2 C程式的开发过程 /10
1.4.3 第一个C程式 /11
1.4.4 计算圆面积的程式 /12
1.5 实验 /13
1.5.1 实验目的 /13
1.5.2 实验环境 /13
1.5.3 实验内容 /13
1.5.4 实验主要步骤 /15
1.5.5 评分标準 /15
1.5.6 实验报告 /16
小结 /16
习题 /16
1.1 计算机系统 /1
1.1.1 计算机硬体系统 /1
1.1.2 计算机软体系统 /2
1.1.3 计算机中的信息表示 /3
1.2 程式设计基础 /5
1.2.1 程式 /5
1.2.2 程式设计语言 /5
1.2.3 程式设计 /6
1.3 C语言的发展历史与特点 /7
1.3.1 C语言的历史 /7
1.3.2 C语言的特点 /9
1.4 初识C语言 /10
1.4.1 基本术语 /10
1.4.2 C程式的开发过程 /10
1.4.3 第一个C程式 /11
1.4.4 计算圆面积的程式 /12
1.5 实验 /13
1.5.1 实验目的 /13
1.5.2 实验环境 /13
1.5.3 实验内容 /13
1.5.4 实验主要步骤 /15
1.5.5 评分标準 /15
1.5.6 实验报告 /16
小结 /16
习题 /16
第2章 C语言程式设计入门 /18
2.1 编写简单的程式 /18
2.1.1 两个整数的加法程式 /18
2.1.2 华氏温度转换为摄氏温度的程式 /19
2.2 标识符 /19
2.2.1 C语言中的基本记号 /19
2.2.2 标识符 /20
2.2.3 关键字 /21
2.2.4 变数和常量 /21
2.3 数据类型 /23
2.3.1 数据类型的基本概念 /23
2.3.2 整型 /23
2.3.3 浮点型 /24
2.3.4 字元型 /26
2.3.5 类型定义 /28
2.4 运算符和表达式 /29
2.4.1 运算符和表达式的基本概念 /29
2.4.2 算术运算符和算术表达式 /29
2.4.3 赋值运算符和赋值表达式 /32
2.4.4 自增和自减运算符 /34
2.4.5 关係运算符和关係表达式 /35
2.4.6 逻辑运算符和逻辑表达式 /37
2.4.7 条件运算符和条件表达式 /38
2.4.8 逗号运算符和逗号表达式 /40
2.4.9 长度运算符 /41
2.5 类型之间的关係 /42
2.5.1 隐式(自动)类型转换 /42
2.5.2 显式(强制)类型转换 /43
2.6 标準库的使用 /44
2.6.1 标準库概述 /44
2.6.2 常用数学函式 /45
2.6.3 格式化输入输出函式 /48
2.6.4 字元输入输出函式 /54
2.6.5 常用字元处理函式 /54
2.6.6 整型的大小 /56
2.6.7 浮点型的特性 /58
2.7 程式设计错误 /60
2.7.1 语法错误 /60
2.7.2 运行时错误 /60
2.7.3 逻辑错误 /61
2.7.4 测试和调试 /61
2.8 程式设计风格 /62
2.8.1 适当的注释 /62
2.8.2 命名习惯 /62
2.8.3 程式编排 /63
2.9 实验 /64
2.9.1 实验目的 /64
2.9.2 实验环境 /64
2.9.3 实验内容 /65
2.9.4 实验主要步骤 /71
2.9.5 评分标準 /71
2.9.6 实验报告 /71
小结 /71
习题 /72
2.1 编写简单的程式 /18
2.1.1 两个整数的加法程式 /18
2.1.2 华氏温度转换为摄氏温度的程式 /19
2.2 标识符 /19
2.2.1 C语言中的基本记号 /19
2.2.2 标识符 /20
2.2.3 关键字 /21
2.2.4 变数和常量 /21
2.3 数据类型 /23
2.3.1 数据类型的基本概念 /23
2.3.2 整型 /23
2.3.3 浮点型 /24
2.3.4 字元型 /26
2.3.5 类型定义 /28
2.4 运算符和表达式 /29
2.4.1 运算符和表达式的基本概念 /29
2.4.2 算术运算符和算术表达式 /29
2.4.3 赋值运算符和赋值表达式 /32
2.4.4 自增和自减运算符 /34
2.4.5 关係运算符和关係表达式 /35
2.4.6 逻辑运算符和逻辑表达式 /37
2.4.7 条件运算符和条件表达式 /38
2.4.8 逗号运算符和逗号表达式 /40
2.4.9 长度运算符 /41
2.5 类型之间的关係 /42
2.5.1 隐式(自动)类型转换 /42
2.5.2 显式(强制)类型转换 /43
2.6 标準库的使用 /44
2.6.1 标準库概述 /44
2.6.2 常用数学函式 /45
2.6.3 格式化输入输出函式 /48
2.6.4 字元输入输出函式 /54
2.6.5 常用字元处理函式 /54
2.6.6 整型的大小 /56
2.6.7 浮点型的特性 /58
2.7 程式设计错误 /60
2.7.1 语法错误 /60
2.7.2 运行时错误 /60
2.7.3 逻辑错误 /61
2.7.4 测试和调试 /61
2.8 程式设计风格 /62
2.8.1 适当的注释 /62
2.8.2 命名习惯 /62
2.8.3 程式编排 /63
2.9 实验 /64
2.9.1 实验目的 /64
2.9.2 实验环境 /64
2.9.3 实验内容 /65
2.9.4 实验主要步骤 /71
2.9.5 评分标準 /71
2.9.6 实验报告 /71
小结 /71
习题 /72
第3章 语句和基本控制结构 /75
3.1 程式的基本控制结构 /75
3.1.1 简单语句 /75
3.1.2 单入口单出口的控制结构 /76
3.2 分支结构 /77
3.2.1 if语句 /77
3.2.2 switch语句 /84
3.2.3 枚举 /91
3.3 循环结构 /94
3.3.1 while语句 /94
3.3.2 do-while语句 /98
3.3.3 for语句 /100
3.3.4 使用哪种循环 /106
3.3.5 退出循环 /106
3.3.6 多重循环 /108
3.4 实例学习 /112
3.5 实验 /121
3.5.1 实验目的 /121
3.5.2 实验环境 /122
3.5.3 实验内容 /122
3.5.4 实验主要步骤 /131
3.5.5 评分标準 /132
3.5.6 实验报告 /132
小结 /132
习题 /133
3.1 程式的基本控制结构 /75
3.1.1 简单语句 /75
3.1.2 单入口单出口的控制结构 /76
3.2 分支结构 /77
3.2.1 if语句 /77
3.2.2 switch语句 /84
3.2.3 枚举 /91
3.3 循环结构 /94
3.3.1 while语句 /94
3.3.2 do-while语句 /98
3.3.3 for语句 /100
3.3.4 使用哪种循环 /106
3.3.5 退出循环 /106
3.3.6 多重循环 /108
3.4 实例学习 /112
3.5 实验 /121
3.5.1 实验目的 /121
3.5.2 实验环境 /122
3.5.3 实验内容 /122
3.5.4 实验主要步骤 /131
3.5.5 评分标準 /132
3.5.6 实验报告 /132
小结 /132
习题 /133
第4章 函式 /137
4.1 函式的定义和调用 /137
4.1.1 使用函式编写程式 /137
4.1.2 函式定义 /143
4.1.3 函式调用 /144
4.1.4 函式声明 /148
4.1.5 程式终止 /150
4.1.6 用计算机生成随机数 /151
4.2 递归函式 /155
4.2.1 什幺是递归 /155
4.2.2 运用递归求解问题 /157
4.2.3 递归和循环 /160
4.3 函式设计的基本规则 /163
4.3.1 函式头的设计规则 /163
4.3.2 函式体的设计规则 /164
4.4 存储类别和作用域 /164
4.4.1 内部变数和外部变数 /164
4.4.2 动态存储变数和静态存储变数 /165
4.4.3 作用域和生命期 /167
4.5 预处理指令 /169
4.5.1 什幺是预处理指令 /169
4.5.2 宏定义 /170
4.5.3 条件编译 /173
4.6 实例学习 /174
4.7 实验 /179
4.7.1 实验目的 /179
4.7.2 实验环境 /179
4.7.3 实验内容 /179
4.7.4 实验主要步骤 /183
4.7.5 评分标準 /183
4.7.6 实验报告 /183
小结 /183
习题 /184
4.1 函式的定义和调用 /137
4.1.1 使用函式编写程式 /137
4.1.2 函式定义 /143
4.1.3 函式调用 /144
4.1.4 函式声明 /148
4.1.5 程式终止 /150
4.1.6 用计算机生成随机数 /151
4.2 递归函式 /155
4.2.1 什幺是递归 /155
4.2.2 运用递归求解问题 /157
4.2.3 递归和循环 /160
4.3 函式设计的基本规则 /163
4.3.1 函式头的设计规则 /163
4.3.2 函式体的设计规则 /164
4.4 存储类别和作用域 /164
4.4.1 内部变数和外部变数 /164
4.4.2 动态存储变数和静态存储变数 /165
4.4.3 作用域和生命期 /167
4.5 预处理指令 /169
4.5.1 什幺是预处理指令 /169
4.5.2 宏定义 /170
4.5.3 条件编译 /173
4.6 实例学习 /174
4.7 实验 /179
4.7.1 实验目的 /179
4.7.2 实验环境 /179
4.7.3 实验内容 /179
4.7.4 实验主要步骤 /183
4.7.5 评分标準 /183
4.7.6 实验报告 /183
小结 /183
习题 /184
第5章 指针 /188
5.1 指针的基本概念 /188
5.1.1 什幺是指针 /188
5.1.2 声明指针变数 /189
5.1.3 取地址运算符和解引用运算符 /190
5.1.4 指向指针的指针 /192
5.2 指针赋值 /194
5.3 通用指针 /196
5.4 使用const修饰指针 /197
5.5 指针和函式 /199
5.5.1 指针作为函式的参数 /199
5.5.2 指针作为函式的返回值 /203
5.5.3 指向函式的指针 /204
5.6 实例学习 /208
5.7 实验 /211
5.7.1 实验目的 /211
5.7.2 实验环境 /212
5.7.3 实验内容 /212
5.7.4 实验主要步骤 /213
5.7.5 评分标準 /213
5.7.6 实验报告 /213
小结 /213
习题 /215第6章 数组 /217
6.1 一维数组 /217
6.1.1 使用一维数组编写程式 /217
6.1.2 声明和处理一维数组 /220
6.1.3 一维数组和函式 /227
6.2 二维数组 /230
6.2.1 使用二维数组编写程式 /230
6.2.2 声明和处理二维数组 /233
6.2.3 二维数组和函式 /237
6.3 指针和数组 /240
6.3.1 指针的运算 /240
6.3.2 指针和一维数组 /243
6.3.3 指针和二维数组 /246
6.4 排序和查找 /247
6.4.1 排序 /247
6.4.2 查找 /249
6.4.3 qsort函式和bsearch函式 /253
6.5 字元串 /257
6.5.1 字元串的基本概念 /257
6.5.2 字元串的基本操作 /259
6.5.3 常用字元串处理函式 /263
6.6 动态存储分配 /267
6.7 实例学习 /270
6.8 实验 /276
6.8.1 实验目的 /276
6.8.2 实验环境 /277
6.8.3 实验内容 /277
6.8.4 实验主要步骤 /283
6.8.5 评分标準 /283
6.8.6 实验报告 /284
小结 /284
习题 /284第7章 结构 /288
7.1 结构 /288
7.1.1 使用结构编写程式 /288
7.1.2 结构类型和结构变数 /292
7.1.3 结构和指针 /296
7.1.4 结构和数组 /297
7.1.5 结构和函式 /301
7.2 鍊表 /303
7.2.1 什幺是鍊表 /303
7.2.2 鍊表的基本操作 /304
7.2.3 有序鍊表 /306
7.3 联合 /309
7.4 底层程式设计 /311
7.4.1 位运算符 /311
7.4.2 结构中的位域 /314
7.5 实例学习 /315
7.6 实验 /322
7.6.1 实验目的 /322
7.6.2 实验环境 /322
7.6.3 实验内容 /322
7.6.4 实验主要步骤 /326
7.6.5 评分标準 /326
7.6.6 实验报告 /326
小结 /326
习题 /327
5.1 指针的基本概念 /188
5.1.1 什幺是指针 /188
5.1.2 声明指针变数 /189
5.1.3 取地址运算符和解引用运算符 /190
5.1.4 指向指针的指针 /192
5.2 指针赋值 /194
5.3 通用指针 /196
5.4 使用const修饰指针 /197
5.5 指针和函式 /199
5.5.1 指针作为函式的参数 /199
5.5.2 指针作为函式的返回值 /203
5.5.3 指向函式的指针 /204
5.6 实例学习 /208
5.7 实验 /211
5.7.1 实验目的 /211
5.7.2 实验环境 /212
5.7.3 实验内容 /212
5.7.4 实验主要步骤 /213
5.7.5 评分标準 /213
5.7.6 实验报告 /213
小结 /213
习题 /215第6章 数组 /217
6.1 一维数组 /217
6.1.1 使用一维数组编写程式 /217
6.1.2 声明和处理一维数组 /220
6.1.3 一维数组和函式 /227
6.2 二维数组 /230
6.2.1 使用二维数组编写程式 /230
6.2.2 声明和处理二维数组 /233
6.2.3 二维数组和函式 /237
6.3 指针和数组 /240
6.3.1 指针的运算 /240
6.3.2 指针和一维数组 /243
6.3.3 指针和二维数组 /246
6.4 排序和查找 /247
6.4.1 排序 /247
6.4.2 查找 /249
6.4.3 qsort函式和bsearch函式 /253
6.5 字元串 /257
6.5.1 字元串的基本概念 /257
6.5.2 字元串的基本操作 /259
6.5.3 常用字元串处理函式 /263
6.6 动态存储分配 /267
6.7 实例学习 /270
6.8 实验 /276
6.8.1 实验目的 /276
6.8.2 实验环境 /277
6.8.3 实验内容 /277
6.8.4 实验主要步骤 /283
6.8.5 评分标準 /283
6.8.6 实验报告 /284
小结 /284
习题 /284第7章 结构 /288
7.1 结构 /288
7.1.1 使用结构编写程式 /288
7.1.2 结构类型和结构变数 /292
7.1.3 结构和指针 /296
7.1.4 结构和数组 /297
7.1.5 结构和函式 /301
7.2 鍊表 /303
7.2.1 什幺是鍊表 /303
7.2.2 鍊表的基本操作 /304
7.2.3 有序鍊表 /306
7.3 联合 /309
7.4 底层程式设计 /311
7.4.1 位运算符 /311
7.4.2 结构中的位域 /314
7.5 实例学习 /315
7.6 实验 /322
7.6.1 实验目的 /322
7.6.2 实验环境 /322
7.6.3 实验内容 /322
7.6.4 实验主要步骤 /326
7.6.5 评分标準 /326
7.6.6 实验报告 /326
小结 /326
习题 /327
第8章 档案 /331
8.1 档案的基本概念 /331
8.1.1 流和档案指针 /331
8.1.2 文本档案和二进制档案 /332
8.1.3 档案缓冲区 /332
8.2 档案操作 /333
8.2.1 打开档案 /333
8.2.2 关闭档案 /333
8.2.3 设定档案缓冲区 /334
8.2.4 临时档案 /335
8.2.5 删除档案和重命名档案 /335
8.2.6 检测档案末尾和错误条件 /336
8.3 档案输入输出 /337
8.3.1 格式化输入输出 /337
8.3.2 字元输入输出 /338
8.3.3 行输入输出 /340
8.3.4 块输入输出 /341
8.4 档案定位 /342
8.5 实例学习 /346
8.6 实验 /353
8.6.1 实验目的 /353
8.6.2 实验环境 /353
8.6.3 实验内容 /354
8.6.4 实验主要步骤 /355
8.6.5 评分标準 /355
8.6.6 实验报告 /355
小结 /355
习题 /356
8.1 档案的基本概念 /331
8.1.1 流和档案指针 /331
8.1.2 文本档案和二进制档案 /332
8.1.3 档案缓冲区 /332
8.2 档案操作 /333
8.2.1 打开档案 /333
8.2.2 关闭档案 /333
8.2.3 设定档案缓冲区 /334
8.2.4 临时档案 /335
8.2.5 删除档案和重命名档案 /335
8.2.6 检测档案末尾和错误条件 /336
8.3 档案输入输出 /337
8.3.1 格式化输入输出 /337
8.3.2 字元输入输出 /338
8.3.3 行输入输出 /340
8.3.4 块输入输出 /341
8.4 档案定位 /342
8.5 实例学习 /346
8.6 实验 /353
8.6.1 实验目的 /353
8.6.2 实验环境 /353
8.6.3 实验内容 /354
8.6.4 实验主要步骤 /355
8.6.5 评分标準 /355
8.6.6 实验报告 /355
小结 /355
习题 /356
第9章 编写多档案程式 /359
9.1 模组 /359
9.2 分块开发 /360
9.2.1 程式物理组织 /360
9.2.2 头档案 /361
9.2.3 单一头档案结构和多头档案结构 /363
9.2.4 项目 /363
9.3 实例学习 /364
9.4 实验 /367
9.4.1 实验目的 /367
9.4.2 实验环境 /367
9.4.3 实验内容 /367
9.4.4 实验主要步骤 /370
9.4.5 评分标準 /370
9.4.6 实验报告 /370
小结 /371
习题 /371
第1章 逻辑电路导论 /1
1.1 开关电路数学表示方法初步 /1
1.1.1 真值表 /1
1.1.2 二进制编码 /2
1.1.3 真值表的常见形式 /3
1.1.4 分析与综合 /3
1.2 逻辑代数 /4
1.2.1 逻辑代数的基本运算 /4
1.2.2 逻辑函式 /6
1.2.3 逻辑代数的基本公式和运算规则 /6
1.3 用与门、或门和非门进行逻辑综合 /9
1.4 公式法化简逻辑函式 /10
1.5 卡诺图 /12
1.5.1 卡诺图是真值表的图形表示 /12
1.5.2 用卡诺图化简逻辑函式 /12
1.5.3 概念提升 /16
1.6 逻辑函式的标準形式 /18
1.6.1 函式的“积之和”表达式 /18
1.6.2 函式的“和之积”表达式 /18
1.6.3 两种表达形式的互换 /19
1.6.4 包含无关项的逻辑函式的化简 /20
?*1.7 表格法化简逻辑函式 /22
?*1.7.1 求质蕴含项集合 /23
?*1.7.2 求最小覆盖 /25
1.7.3 表格法小结 /31
1.8 解题示例 /32
【本章小结】 /33
【习题】 /34
9.1 模组 /359
9.2 分块开发 /360
9.2.1 程式物理组织 /360
9.2.2 头档案 /361
9.2.3 单一头档案结构和多头档案结构 /363
9.2.4 项目 /363
9.3 实例学习 /364
9.4 实验 /367
9.4.1 实验目的 /367
9.4.2 实验环境 /367
9.4.3 实验内容 /367
9.4.4 实验主要步骤 /370
9.4.5 评分标準 /370
9.4.6 实验报告 /370
小结 /371
习题 /371
第1章 逻辑电路导论 /1
1.1 开关电路数学表示方法初步 /1
1.1.1 真值表 /1
1.1.2 二进制编码 /2
1.1.3 真值表的常见形式 /3
1.1.4 分析与综合 /3
1.2 逻辑代数 /4
1.2.1 逻辑代数的基本运算 /4
1.2.2 逻辑函式 /6
1.2.3 逻辑代数的基本公式和运算规则 /6
1.3 用与门、或门和非门进行逻辑综合 /9
1.4 公式法化简逻辑函式 /10
1.5 卡诺图 /12
1.5.1 卡诺图是真值表的图形表示 /12
1.5.2 用卡诺图化简逻辑函式 /12
1.5.3 概念提升 /16
1.6 逻辑函式的标準形式 /18
1.6.1 函式的“积之和”表达式 /18
1.6.2 函式的“和之积”表达式 /18
1.6.3 两种表达形式的互换 /19
1.6.4 包含无关项的逻辑函式的化简 /20
?*1.7 表格法化简逻辑函式 /22
?*1.7.1 求质蕴含项集合 /23
?*1.7.2 求最小覆盖 /25
1.7.3 表格法小结 /31
1.8 解题示例 /32
【本章小结】 /33
【习题】 /34
第2章 数字积体电路的基本元件--门电路 /37
2.1 概述 /37
2.2 TTL集成门电路 /40
2.2.1 TTL与非门简介 /40
2.2.2 TTL与非门的外特性及其参数 /41
2.2.3 集电极开路的与非门 /44
2.2.4 TTL三态门 /45
2.3 MOS场效应电晶体 /46
2.4 MOS门电路 /50
2.4.1 NMOS门电路 /50
2.4.2 CMOS门电路 /52
2.4.3 其他类型的CMOS门电路 /54
2.4.4 CMOS逻辑门电性能分析 /56
2.4.5 不同类型逻辑门的配合问题 /58
2.5 74系列中小规模积体电路晶片 /58
2.6 可程式逻辑器件 /58
2.6.1 可程式逻辑阵列PLA /59
2.6.2 可程式阵列逻辑PAL和GAL /59
2.6.3 複杂可程式器件 /60
2.6.4 现场可程式门阵列 /60
2.6.5 可程式开关的物理实现 /61
2.6.6 CPLD和FPGA特点比较 /63
【本章小结】 /63
【习题】 /64
2.1 概述 /37
2.2 TTL集成门电路 /40
2.2.1 TTL与非门简介 /40
2.2.2 TTL与非门的外特性及其参数 /41
2.2.3 集电极开路的与非门 /44
2.2.4 TTL三态门 /45
2.3 MOS场效应电晶体 /46
2.4 MOS门电路 /50
2.4.1 NMOS门电路 /50
2.4.2 CMOS门电路 /52
2.4.3 其他类型的CMOS门电路 /54
2.4.4 CMOS逻辑门电性能分析 /56
2.4.5 不同类型逻辑门的配合问题 /58
2.5 74系列中小规模积体电路晶片 /58
2.6 可程式逻辑器件 /58
2.6.1 可程式逻辑阵列PLA /59
2.6.2 可程式阵列逻辑PAL和GAL /59
2.6.3 複杂可程式器件 /60
2.6.4 现场可程式门阵列 /60
2.6.5 可程式开关的物理实现 /61
2.6.6 CPLD和FPGA特点比较 /63
【本章小结】 /63
【习题】 /64
第3章 组合逻辑电路的最佳化实现 /66
3.1 组合逻辑电路的特点与最佳化实现 /66
3.2 单输出函式和多输出函式 /67
3.2.1 多输出函式的化简 /67
3.2.2 多输出函式的最佳化实现 /71
3.2.3 用EDA工具最佳化实现组合逻辑
电路示例 /72
3.3 多级逻辑电路的综合 /74
3.3.1 提取公因子 /74
3.3.2 功能分解 /75
3.4 组合逻辑电路积木块 /76
3.4.1 多路选择器 /76
3.4.2 用LUT构建更大规模的组合逻辑
电路 /78
3.4.3 编码器 /78
3.4.4 解码器 /81
3.4.5 数值比较器 /82
3.4.6 算术逻辑运算电路 /83
3.5 组合逻辑电路中的竞争和险象 /83
3.5.1 险象的分析 /83
3.5.2 险象的消除 /86
3.6 解题示例 /87
【本章小结】 /90
【习题】 /90
3.1 组合逻辑电路的特点与最佳化实现 /66
3.2 单输出函式和多输出函式 /67
3.2.1 多输出函式的化简 /67
3.2.2 多输出函式的最佳化实现 /71
3.2.3 用EDA工具最佳化实现组合逻辑
电路示例 /72
3.3 多级逻辑电路的综合 /74
3.3.1 提取公因子 /74
3.3.2 功能分解 /75
3.4 组合逻辑电路积木块 /76
3.4.1 多路选择器 /76
3.4.2 用LUT构建更大规模的组合逻辑
电路 /78
3.4.3 编码器 /78
3.4.4 解码器 /81
3.4.5 数值比较器 /82
3.4.6 算术逻辑运算电路 /83
3.5 组合逻辑电路中的竞争和险象 /83
3.5.1 险象的分析 /83
3.5.2 险象的消除 /86
3.6 解题示例 /87
【本章小结】 /90
【习题】 /90
第4章 数的表示方法和算术运算电路 /94
4.1 数制和编码 /94
4.1.1 数的位置表示法 /94
4.1.2 二进制数和十进制数的相互转换 /95
4.1.3 八进制数的二进制编码 /97
4.1.4 十六进制数的二进制编码 /97
4.1.5 十进制数的二进制编码 /98
4.1.6 格雷码 /100
4.1.7 字元编码 /100
4.1.8 奇偶校验码 /102
4.2 无符号数的加法运算 /104
4.2.1 二进制整数的加法运算 /104
4.2.2 BCD码形式的十进制数加法运算 /107
4.3 有符号数的表示方法和算术运算 /110
4.3.1 二进制定点数的原码錶示形式 /110
4.3.2 二进制定点数的补码錶示形式和
加减运算 /110
4.3.3 二进制定点数的反码錶示形式和
加减运算 /114
4.4 用EDA工具设计算术运算电路示例 /116
【本章小结】 /121
【习题】 /121
4.1 数制和编码 /94
4.1.1 数的位置表示法 /94
4.1.2 二进制数和十进制数的相互转换 /95
4.1.3 八进制数的二进制编码 /97
4.1.4 十六进制数的二进制编码 /97
4.1.5 十进制数的二进制编码 /98
4.1.6 格雷码 /100
4.1.7 字元编码 /100
4.1.8 奇偶校验码 /102
4.2 无符号数的加法运算 /104
4.2.1 二进制整数的加法运算 /104
4.2.2 BCD码形式的十进制数加法运算 /107
4.3 有符号数的表示方法和算术运算 /110
4.3.1 二进制定点数的原码錶示形式 /110
4.3.2 二进制定点数的补码錶示形式和
加减运算 /110
4.3.3 二进制定点数的反码錶示形式和
加减运算 /114
4.4 用EDA工具设计算术运算电路示例 /116
【本章小结】 /121
【习题】 /121
第5章 锁存器、触发器和暂存器 /124
5.1 锁存器 /124
5.1.1 基本R-S锁存器 /124
5.1.2 选通D锁存器 /125
5.2 D触发器 /128
5.2.1 从总体的角度观察D触发器 /128
5.2.2 D触发器和D锁存器的比较 /131
5.2.3 带使能控制的D触发器 /131
5.3 主从D触发器 /133
5.4 其他类型的触发器 /134
5.4.1 T触发器 /134
5.4.2 JK触发器 /135
5.5 暂存器 /136
5.6 设计示例 /138
【本章小结】 /142
【习题】 /142
5.1 锁存器 /124
5.1.1 基本R-S锁存器 /124
5.1.2 选通D锁存器 /125
5.2 D触发器 /128
5.2.1 从总体的角度观察D触发器 /128
5.2.2 D触发器和D锁存器的比较 /131
5.2.3 带使能控制的D触发器 /131
5.3 主从D触发器 /133
5.4 其他类型的触发器 /134
5.4.1 T触发器 /134
5.4.2 JK触发器 /135
5.5 暂存器 /136
5.6 设计示例 /138
【本章小结】 /142
【习题】 /142
第6章 同步时序电路 /144
6.1 同步时序电路概述 /144
6.2 同步时序电路的设计 /146
6.2.1 状态图和状态表 /147
6.2.2 状态分配 /149
6.2.3 确定激励函式和输出函式 /150
6.2.4 VHDL行为描述与使用EDA工具
设计 /150
6.3 状态化简 /152
6.3.1 完全规定的有限状态机和不完全规定
的有限状态机 /152
6.3.2 状态化简算法 /152
6.4 同步时序电路中的竞争和险象 /154
6.4.1 状态变迁序列与险象的关係 /154
6.4.2 在VHDL行为描述中指定状态
编码 /156
6.5 算法状态机图 /157
6.6 解题示例 /158
【本章小结】 /168
【习题】 /169
6.1 同步时序电路概述 /144
6.2 同步时序电路的设计 /146
6.2.1 状态图和状态表 /147
6.2.2 状态分配 /149
6.2.3 确定激励函式和输出函式 /150
6.2.4 VHDL行为描述与使用EDA工具
设计 /150
6.3 状态化简 /152
6.3.1 完全规定的有限状态机和不完全规定
的有限状态机 /152
6.3.2 状态化简算法 /152
6.4 同步时序电路中的竞争和险象 /154
6.4.1 状态变迁序列与险象的关係 /154
6.4.2 在VHDL行为描述中指定状态
编码 /156
6.5 算法状态机图 /157
6.6 解题示例 /158
【本章小结】 /168
【习题】 /169
第7章 异步时序电路 /173
7.1 异步时序电路的特点 /173
?*7.2 脉冲异步时序电路 /173
?*7.2.1 脉冲异步时序电路的分析 /174
?*7.2.2 脉冲异步时序电路的综合 /176
?*7.3 电位异步时序电路 /180
?*7.3.1 电位异步时序电路的分析 /181
?*7.3.2 电位异步时序电路的综合 /183
?*7.4 电位异步时序电路综合中防範险象的
措施 /188
?*7.5 解题示例 /195
【本章小结】 /204
【习题】 /204
7.1 异步时序电路的特点 /173
?*7.2 脉冲异步时序电路 /173
?*7.2.1 脉冲异步时序电路的分析 /174
?*7.2.2 脉冲异步时序电路的综合 /176
?*7.3 电位异步时序电路 /180
?*7.3.1 电位异步时序电路的分析 /181
?*7.3.2 电位异步时序电路的综合 /183
?*7.4 电位异步时序电路综合中防範险象的
措施 /188
?*7.5 解题示例 /195
【本章小结】 /204
【习题】 /204
第8章 数字系统设计 /207
8.1 数字系统的特点和设计方法 /207
8.2 交通灯控制器设计 /208
8.3 求最大值电路的设计 /214
8.4 数字系统中某些技术细节 /219
8.4.1 减少时钟偏移的布线网路 /220
8.4.2 触发器的异步输入 /220
8.4.3 消除机械开关抖动的电路 /220
【本章小结】 /221
【习题】 /221
8.1 数字系统的特点和设计方法 /207
8.2 交通灯控制器设计 /208
8.3 求最大值电路的设计 /214
8.4 数字系统中某些技术细节 /219
8.4.1 减少时钟偏移的布线网路 /220
8.4.2 触发器的异步输入 /220
8.4.3 消除机械开关抖动的电路 /220
【本章小结】 /221
【习题】 /221
附录A EDA工具 QuartusII简介 /224
A.1 QuartusII的安装与运行 /224
A.2 设计流程 /227
A.3 项目的建立与版本管理 /229
A.3.1 建立一个新项目 /229
A.3.2 QuartusII项目的版本管理 /231
A.4 设计的原理图描述 /233
A.4.1 进入原理图编辑器 /233
A.4.2 从元件库中调入元件符号 /234
A.4.3 绘製原理图 /235
A.5 设计的VHDL描述 /236
A.5.1 进入文本编辑器 /236
A.5.2 在文本编辑器中编辑VHDL
档案 /237
A.5.3 发现并纠正VHDL代码中的
错误 /239
A.5.4 保存档案 /239
A.6 综合和编译 /240
A.6.1 进入编译器 /240
A.6.2 发现并纠正原理图中的错误 /242
A.7 模拟验证 /242
A.7.1 使用波形编辑器绘製测试向量
波形 /243
A.7.2 执行模拟 /246
A.8 层次化设计实例 /248
A.8.1 在原理图编辑器中实现层次化
设计 /248
A.8.2 VHDL设计描述与原理图混合使用的
层次化设计 /251
A.9 时序分析器 /254
A.10 调用带参数的库元件 /256
A.10.1 在原理图编辑器中创建一个存
储器 /256
A.10.2 初始化存储器的内容 /261
A.10.3 存储器的模拟实例 /262
A.11 可程式器件的物理实现 /263
A.11.1 引脚分配 /263
A.11.2 对目标器件编程 /266
A.12 用SignalTapII实时测试FPGA中的信号
波形 /271
A.1 QuartusII的安装与运行 /224
A.2 设计流程 /227
A.3 项目的建立与版本管理 /229
A.3.1 建立一个新项目 /229
A.3.2 QuartusII项目的版本管理 /231
A.4 设计的原理图描述 /233
A.4.1 进入原理图编辑器 /233
A.4.2 从元件库中调入元件符号 /234
A.4.3 绘製原理图 /235
A.5 设计的VHDL描述 /236
A.5.1 进入文本编辑器 /236
A.5.2 在文本编辑器中编辑VHDL
档案 /237
A.5.3 发现并纠正VHDL代码中的
错误 /239
A.5.4 保存档案 /239
A.6 综合和编译 /240
A.6.1 进入编译器 /240
A.6.2 发现并纠正原理图中的错误 /242
A.7 模拟验证 /242
A.7.1 使用波形编辑器绘製测试向量
波形 /243
A.7.2 执行模拟 /246
A.8 层次化设计实例 /248
A.8.1 在原理图编辑器中实现层次化
设计 /248
A.8.2 VHDL设计描述与原理图混合使用的
层次化设计 /251
A.9 时序分析器 /254
A.10 调用带参数的库元件 /256
A.10.1 在原理图编辑器中创建一个存
储器 /256
A.10.2 初始化存储器的内容 /261
A.10.3 存储器的模拟实例 /262
A.11 可程式器件的物理实现 /263
A.11.1 引脚分配 /263
A.11.2 对目标器件编程 /266
A.12 用SignalTapII实时测试FPGA中的信号
波形 /271
附录B 硬体描述语言VHDL简介 /277
B.1 VHDL的产生与发展 /277
B.2 用VHDL建立电路模型 /278
B.2.1 电路模型 /278
B.2.2 实体声明与结构体 /279
B.2.3 结构体的描述方式 /281
B.2.4 标识符 /281
B.3 面向模拟器的某些特性 /282
B.3.1 模拟周期 /283
B.3.2 延迟时间 /283
B.4 VHDL中的对象 /284
B.5 数据类型 /285
B.5.1 标量类型 /286
B.5.2 複合类型 /287
B.5.3 子类型 /289
B.5.4 档案类型 /289
B.5.5 类型转换 /289
B.6 VHDL的词法单元 /291
B.6.1 注释 /291
B.6.2 数字 /291
B.6.3 字元 /292
B.6.4 字元串 /292
B.6.5 位串 /292
B.7 属性 /293
B.8 表达式与运算符 /295
B.9 子程式--过程与函式 /299
B.10 程式包与设计库 /300
B.10.1 程式包--设计中的数据共享 /300
B.10.2 设计库 /302
B.10.3 VHDL中名字的可见性 /302
B.10.4 library语句和use语句 /303
B.11 行为描述 /304
B.11.1 进程语句 /304
B.11.2 行为模型的顺序性 /305
B.11.3 行为模型的并行性 /312
B.12 结构描述 /316
B.12.1 连线埠的基本特徵 /316
B.12.2 元件例化语句 /317
B.12.3 配置指定 /318
B.12.4 规则结构 /319
B.12.5 无连线连线埠 /320
B.13 重载 /321
B.14 VHDL保留字和预定义程式包 /322
B.14.1 VHDL保留字 /322
B.14.2 标準程式包STANDARD /323
B.14.3 IEEE多值逻辑系统程式包
std_logic_1164 /330
B.1 VHDL的产生与发展 /277
B.2 用VHDL建立电路模型 /278
B.2.1 电路模型 /278
B.2.2 实体声明与结构体 /279
B.2.3 结构体的描述方式 /281
B.2.4 标识符 /281
B.3 面向模拟器的某些特性 /282
B.3.1 模拟周期 /283
B.3.2 延迟时间 /283
B.4 VHDL中的对象 /284
B.5 数据类型 /285
B.5.1 标量类型 /286
B.5.2 複合类型 /287
B.5.3 子类型 /289
B.5.4 档案类型 /289
B.5.5 类型转换 /289
B.6 VHDL的词法单元 /291
B.6.1 注释 /291
B.6.2 数字 /291
B.6.3 字元 /292
B.6.4 字元串 /292
B.6.5 位串 /292
B.7 属性 /293
B.8 表达式与运算符 /295
B.9 子程式--过程与函式 /299
B.10 程式包与设计库 /300
B.10.1 程式包--设计中的数据共享 /300
B.10.2 设计库 /302
B.10.3 VHDL中名字的可见性 /302
B.10.4 library语句和use语句 /303
B.11 行为描述 /304
B.11.1 进程语句 /304
B.11.2 行为模型的顺序性 /305
B.11.3 行为模型的并行性 /312
B.12 结构描述 /316
B.12.1 连线埠的基本特徵 /316
B.12.2 元件例化语句 /317
B.12.3 配置指定 /318
B.12.4 规则结构 /319
B.12.5 无连线连线埠 /320
B.13 重载 /321
B.14 VHDL保留字和预定义程式包 /322
B.14.1 VHDL保留字 /322
B.14.2 标準程式包STANDARD /323
B.14.3 IEEE多值逻辑系统程式包
std_logic_1164 /330
参考文献 /333
第1章 逻辑电路导论 /1
1.1 开关电路数学表示方法初步 /1
1.1.1 真值表 /1
1.1.2 二进制编码 /2
1.1.3 真值表的常见形式 /3
1.1.4 分析与综合 /3
1.2 逻辑代数 /4
1.2.1 逻辑代数的基本运算 /4
1.2.2 逻辑函式 /6
1.2.3 逻辑代数的基本公式和运算规则 /6
1.3 用与门、或门和非门进行逻辑综合 /9
1.4 公式法化简逻辑函式 /10
1.5 卡诺图 /12
1.5.1 卡诺图是真值表的图形表示 /12
1.5.2 用卡诺图化简逻辑函式 /12
1.5.3 概念提升 /16
1.6 逻辑函式的标準形式 /18
1.6.1 函式的“积之和”表达式 /18
1.6.2 函式的“和之积”表达式 /18
1.6.3 两种表达形式的互换 /19
1.6.4 包含无关项的逻辑函式的化简 /20
?*1.7 表格法化简逻辑函式 /22
?*1.7.1 求质蕴含项集合 /23
?*1.7.2 求最小覆盖 /25
1.7.3 表格法小结 /31
1.8 解题示例 /32
【本章小结】 /33
【习题】 /34
第1章 逻辑电路导论 /1
1.1 开关电路数学表示方法初步 /1
1.1.1 真值表 /1
1.1.2 二进制编码 /2
1.1.3 真值表的常见形式 /3
1.1.4 分析与综合 /3
1.2 逻辑代数 /4
1.2.1 逻辑代数的基本运算 /4
1.2.2 逻辑函式 /6
1.2.3 逻辑代数的基本公式和运算规则 /6
1.3 用与门、或门和非门进行逻辑综合 /9
1.4 公式法化简逻辑函式 /10
1.5 卡诺图 /12
1.5.1 卡诺图是真值表的图形表示 /12
1.5.2 用卡诺图化简逻辑函式 /12
1.5.3 概念提升 /16
1.6 逻辑函式的标準形式 /18
1.6.1 函式的“积之和”表达式 /18
1.6.2 函式的“和之积”表达式 /18
1.6.3 两种表达形式的互换 /19
1.6.4 包含无关项的逻辑函式的化简 /20
?*1.7 表格法化简逻辑函式 /22
?*1.7.1 求质蕴含项集合 /23
?*1.7.2 求最小覆盖 /25
1.7.3 表格法小结 /31
1.8 解题示例 /32
【本章小结】 /33
【习题】 /34
第2章 数字积体电路的基本元件--门电路 /36
2.1 概述 /36
2.2 TTL集成门电路 /39
2.2.1 TTL与非门简介 /39
2.2.2 TTL与非门的外特性及其参数 /40
2.2.3 集电极开路的与非门 /43
2.2.4 TTL三态门 /44
2.3 MOS场效应电晶体 /45
2.4 MOS门电路 /49
2.4.1 NMOS门电路 /49
2.4.2 CMOS门电路 /51
2.4.3 其他类型的CMOS门电路 /53
2.4.4 CMOS逻辑门电性能分析 /55
2.4.5 不同类型逻辑门的配合问题 /57
2.5 74系列中小规模积体电路晶片 /57
2.6 可程式逻辑器件 /57
2.6.1 可程式逻辑阵列PLA /58
2.6.2 可程式阵列逻辑PAL和GAL /58
2.6.3 複杂可程式器件 /59
2.6.4 现场可程式门阵列 /59
2.6.5 可程式开关的物理实现 /60
2.6.6 CPLD和FPGA特点比较 /62
【本章小结】 /62
【习题】 /63
2.1 概述 /36
2.2 TTL集成门电路 /39
2.2.1 TTL与非门简介 /39
2.2.2 TTL与非门的外特性及其参数 /40
2.2.3 集电极开路的与非门 /43
2.2.4 TTL三态门 /44
2.3 MOS场效应电晶体 /45
2.4 MOS门电路 /49
2.4.1 NMOS门电路 /49
2.4.2 CMOS门电路 /51
2.4.3 其他类型的CMOS门电路 /53
2.4.4 CMOS逻辑门电性能分析 /55
2.4.5 不同类型逻辑门的配合问题 /57
2.5 74系列中小规模积体电路晶片 /57
2.6 可程式逻辑器件 /57
2.6.1 可程式逻辑阵列PLA /58
2.6.2 可程式阵列逻辑PAL和GAL /58
2.6.3 複杂可程式器件 /59
2.6.4 现场可程式门阵列 /59
2.6.5 可程式开关的物理实现 /60
2.6.6 CPLD和FPGA特点比较 /62
【本章小结】 /62
【习题】 /63
第3章 组合逻辑电路的最佳化实现 /65
3.1 组合逻辑电路的特点与最佳化实现 /65
3.2 单输出函式和多输出函式 /66
3.2.1 多输出函式的化简 /66
3.2.2 多输出函式的最佳化实现 /69
3.2.3 用EDA工具最佳化实现组合逻辑电路示
例 /70
3.3 多级逻辑电路的综合 /72
3.3.1 提取公因子 /72
3.3.2 功能分解 /73
3.4 组合逻辑电路积木块 /74
3.4.1 多路选择器 /74
3.4.2 用LUT构建更大规模的组合逻辑电路
/76
3.4.3 编码器 /76
3.4.4 解码器 /79
3.4.5 数值比较器 /80
3.4.6 算术逻辑运算电路 /81
3.5 组合逻辑电路中的竞争和险象 /81
3.5.1 险象的分析 /81
3.5.2 险象的消除 /84
3.6 解题示例 /85
【本章小结】 /88
【习题】 /88
3.1 组合逻辑电路的特点与最佳化实现 /65
3.2 单输出函式和多输出函式 /66
3.2.1 多输出函式的化简 /66
3.2.2 多输出函式的最佳化实现 /69
3.2.3 用EDA工具最佳化实现组合逻辑电路示
例 /70
3.3 多级逻辑电路的综合 /72
3.3.1 提取公因子 /72
3.3.2 功能分解 /73
3.4 组合逻辑电路积木块 /74
3.4.1 多路选择器 /74
3.4.2 用LUT构建更大规模的组合逻辑电路
/76
3.4.3 编码器 /76
3.4.4 解码器 /79
3.4.5 数值比较器 /80
3.4.6 算术逻辑运算电路 /81
3.5 组合逻辑电路中的竞争和险象 /81
3.5.1 险象的分析 /81
3.5.2 险象的消除 /84
3.6 解题示例 /85
【本章小结】 /88
【习题】 /88
第4章 数的表示方法和算术运算电路 /91
4.1 数制和编码 /91
4.1.1 数的位置表示法 /91
4.1.2 二进制数和十进制数的相互转换 /92
4.1.3 八进制数的二进制编码 /94
4.1.4 十六进制数的二进制编码 /94
4.1.5 十进制数的二进制编码 /95
4.1.6 格雷码 /97
4.1.7 字元编码 /97
4.1.8 奇偶校验码 /99
4.2 无符号数的加法运算 /101
4.2.1 二进制整数的加法运算 /101
4.2.2 BCD码形式的十进制数加法运算 /104
4.3 有符号数的表示方法和算术运算 /107
4.3.1 二进制定点数的原码錶示形式 /107
4.3.2 二进制定点数的补码錶示形式和加减运
算 /107
4.3.3 二进制定点数的反码錶示形式和加减运
算 /111
4.4 用EDA工具设计算术运算电路示例 /113
【本章小结】 /118
【习题】 /118
4.1 数制和编码 /91
4.1.1 数的位置表示法 /91
4.1.2 二进制数和十进制数的相互转换 /92
4.1.3 八进制数的二进制编码 /94
4.1.4 十六进制数的二进制编码 /94
4.1.5 十进制数的二进制编码 /95
4.1.6 格雷码 /97
4.1.7 字元编码 /97
4.1.8 奇偶校验码 /99
4.2 无符号数的加法运算 /101
4.2.1 二进制整数的加法运算 /101
4.2.2 BCD码形式的十进制数加法运算 /104
4.3 有符号数的表示方法和算术运算 /107
4.3.1 二进制定点数的原码錶示形式 /107
4.3.2 二进制定点数的补码錶示形式和加减运
算 /107
4.3.3 二进制定点数的反码錶示形式和加减运
算 /111
4.4 用EDA工具设计算术运算电路示例 /113
【本章小结】 /118
【习题】 /118
第5章 锁存器、触发器和暂存器 /121
5.1 锁存器 /121
5.1.1 基本R-S锁存器 /121
5.1.2 选通D锁存器 /122
5.2 D触发器 /125
5.2.1 从总体的角度观察D触发器 /125
5.2.2 D触发器和D锁存器的比较 /128
5.2.3 带使能控制的D触发器 /128
5.3 主从D触发器 /130
5.4 其他类型的触发器 /131
5.4.1 T触发器 /131
5.4.2 JK触发器 /132
5.5 暂存器 /133
5.6 设计示例 /135
【本章小结】 /139
【习题】 /139
5.1 锁存器 /121
5.1.1 基本R-S锁存器 /121
5.1.2 选通D锁存器 /122
5.2 D触发器 /125
5.2.1 从总体的角度观察D触发器 /125
5.2.2 D触发器和D锁存器的比较 /128
5.2.3 带使能控制的D触发器 /128
5.3 主从D触发器 /130
5.4 其他类型的触发器 /131
5.4.1 T触发器 /131
5.4.2 JK触发器 /132
5.5 暂存器 /133
5.6 设计示例 /135
【本章小结】 /139
【习题】 /139
第6章 同步时序电路 /141
6.1 同步时序电路概述 /141
6.2 同步时序电路的设计 /143
6.2.1 状态图和状态表 /144
6.2.2 状态分配 /146
6.2.3 确定激励函式和输出函式 /147
6.2.4 VHDL行为描述与使用EDA工具设计
/147
6.3 状态化简 /149
6.3.1 完全规定的有限状态机和不完全规定的
有限状态机 /149
6.3.2 状态化简算法 /149
6.4 同步时序电路中的竞争和险象 /151
6.4.1 状态变迁序列与险象的关係 /151
6.4.2 在VHDL行为描述中指定状态编码
/153
6.5 算法状态机图 /154
6.6 解题示例 /155
【本章小结】 /163
【习题】 /163
6.1 同步时序电路概述 /141
6.2 同步时序电路的设计 /143
6.2.1 状态图和状态表 /144
6.2.2 状态分配 /146
6.2.3 确定激励函式和输出函式 /147
6.2.4 VHDL行为描述与使用EDA工具设计
/147
6.3 状态化简 /149
6.3.1 完全规定的有限状态机和不完全规定的
有限状态机 /149
6.3.2 状态化简算法 /149
6.4 同步时序电路中的竞争和险象 /151
6.4.1 状态变迁序列与险象的关係 /151
6.4.2 在VHDL行为描述中指定状态编码
/153
6.5 算法状态机图 /154
6.6 解题示例 /155
【本章小结】 /163
【习题】 /163
第7章 异步时序电路 /167
7.1 异步时序电路的特点 /167
?*7.2 脉冲异步时序电路 /167
?*7.2.1 脉冲异步时序电路的分析 /168
?*7.2.2 脉冲异步时序电路的综合 /170
?*7.3 电位异步时序电路 /174
?*7.3.1 电位异步时序电路的分析 /175
?*7.3.2 电位异步时序电路的综合 /177
?*7.4 电位异步时序电路综合中防範险象的措施
/182
?*7.5 解题示例 /189
【本章小结】 /198
【习题】 /198
7.1 异步时序电路的特点 /167
?*7.2 脉冲异步时序电路 /167
?*7.2.1 脉冲异步时序电路的分析 /168
?*7.2.2 脉冲异步时序电路的综合 /170
?*7.3 电位异步时序电路 /174
?*7.3.1 电位异步时序电路的分析 /175
?*7.3.2 电位异步时序电路的综合 /177
?*7.4 电位异步时序电路综合中防範险象的措施
/182
?*7.5 解题示例 /189
【本章小结】 /198
【习题】 /198
第8章 数字系统设计 /201
8.1 数字系统的特点和设计方法 /201
8.2 交通灯控制器设计 /202
8.3 求最大值电路的设计 /208
8.4 数字系统中某些技术细节 /213
8.4.1 减少时钟偏移的布线网路 /214
8.4.2 触发器的异步输入 /214
8.4.3 消除机械开关抖动的电路 /214
【本章小结】 /215
【习题】 /215
8.1 数字系统的特点和设计方法 /201
8.2 交通灯控制器设计 /202
8.3 求最大值电路的设计 /208
8.4 数字系统中某些技术细节 /213
8.4.1 减少时钟偏移的布线网路 /214
8.4.2 触发器的异步输入 /214
8.4.3 消除机械开关抖动的电路 /214
【本章小结】 /215
【习题】 /215
附录A EDA工具 QuartusII简介 /218
A.1 QuartusII的安装与运行 /218
A.1.1 QuartusII的首次安装 /219
A.1.2 申请授权档案 /220
A.1.3 改变QuartusII主界面的样式 /220
A.2 设计流程 /222
A.3 项目的建立与版本管理 /223
A.3.1 建立一个新项目 /223
A.3.2 QuartusII项目的版本管理 /225
A.4 设计的原理图描述 /227
A.4.1 进入原理图编辑器 /227
A.4.2 从元件库中调入元件符号 /228
A.4.3 绘製原理图 /229
A.5 设计的VHDL描述 /230
A.5.1 进入文本编辑器 /231
A.5.2 在文本编辑器中编辑VHDL档案
/231
A.5.3 发现并纠正VHDL代码中的错误
/232
A.5.4 保存档案 /234
A.6 综合和编译 /234
A.6.1 进入编译器 /234
A.6.2 发现并纠正原理图中的错误 /236
A.7 模拟验证 /236
A.7.1 使用波形编辑器绘製测试向量波形
/237
A.7.2 执行模拟 /240
A.8 层次化设计实例 /242
A.8.1 在原理图编辑器中实现层次化设计
/242
A.8.2 VHDL设计描述与原理图混合使用的
层次化设计 /245
A.9 时序分析器 /248
A.10 调用带参数的库元件 /250
A.10.1 在原理图编辑器中创建一个存储器
/250
A.10.2 初始化存储器的内容 /255
A.10.3 存储器的模拟实例 /256
A.11 可程式器件的物理实现 /257
A.11.1 引脚分配 /257
A.11.2 对目标器件编程 /260
A.12 用SignalTapII实时测试FPGA中的信号波形
/265
A.1 QuartusII的安装与运行 /218
A.1.1 QuartusII的首次安装 /219
A.1.2 申请授权档案 /220
A.1.3 改变QuartusII主界面的样式 /220
A.2 设计流程 /222
A.3 项目的建立与版本管理 /223
A.3.1 建立一个新项目 /223
A.3.2 QuartusII项目的版本管理 /225
A.4 设计的原理图描述 /227
A.4.1 进入原理图编辑器 /227
A.4.2 从元件库中调入元件符号 /228
A.4.3 绘製原理图 /229
A.5 设计的VHDL描述 /230
A.5.1 进入文本编辑器 /231
A.5.2 在文本编辑器中编辑VHDL档案
/231
A.5.3 发现并纠正VHDL代码中的错误
/232
A.5.4 保存档案 /234
A.6 综合和编译 /234
A.6.1 进入编译器 /234
A.6.2 发现并纠正原理图中的错误 /236
A.7 模拟验证 /236
A.7.1 使用波形编辑器绘製测试向量波形
/237
A.7.2 执行模拟 /240
A.8 层次化设计实例 /242
A.8.1 在原理图编辑器中实现层次化设计
/242
A.8.2 VHDL设计描述与原理图混合使用的
层次化设计 /245
A.9 时序分析器 /248
A.10 调用带参数的库元件 /250
A.10.1 在原理图编辑器中创建一个存储器
/250
A.10.2 初始化存储器的内容 /255
A.10.3 存储器的模拟实例 /256
A.11 可程式器件的物理实现 /257
A.11.1 引脚分配 /257
A.11.2 对目标器件编程 /260
A.12 用SignalTapII实时测试FPGA中的信号波形
/265
附录B 硬体描述语言VHDL简介 /271
B.1 VHDL的产生与发展 /271
B.2 用VHDL建立电路模型 /272
B.2.1 电路模型 /272
B.2.2 实体声明与结构体 /273
B.2.3 结构体的描述方式 /275
B.2.4 标识符 /275
B.3 面向模拟器的某些特性 /276
B.3.1 模拟周期 /277
B.3.2 延迟时间 /277
B.4 VHDL中的对象 /278
B.5 数据类型 /279
B.5.1 标量类型 /280
B.5.2 複合类型 /281
B.5.3 子类型 /283
B.5.4 档案类型 /283
B.5.5 类型转换 /283
B.6 VHDL的词法单元 /285
B.6.1 注释 /285
B.6.2 数字 /285
B.6.3 字元 /286
B.6.4 字元串 /286
B.6.5 位串 /286
B.7 属性 /287
B.8 表达式与运算符 /289
B.9 子程式--过程与函式 /293
B.10 程式包与设计库 /294
B.10.1 程式包--设计中的数据共享 /294
B.10.2 设计库 /296
B.10.3 VHDL中名字的可见性 /296
B.10.4 library语句和use语句 /297
B.11 行为描述 /298
B.11.1 进程语句 /298
B.11.2 行为模型的顺序性 /299
B.11.3 行为模型的并行性 /306
B.12 结构描述 /310
B.12.1 连线埠的基本特徵 /310
B.12.2 元件例化语句 /311
B.12.3 配置指定 /312
B.12.4 规则结构 /313
B.12.5 无连线连线埠 /314
B.13 重载 /315
B.14 VHDL保留字和预定义程式包 /316
B.14.1 VHDL保留字 /316
B.14.2 标準程式包STANDARD /317
B.14.3 IEEE多值逻辑系统程式包std_logic_
1164 /324
B.1 VHDL的产生与发展 /271
B.2 用VHDL建立电路模型 /272
B.2.1 电路模型 /272
B.2.2 实体声明与结构体 /273
B.2.3 结构体的描述方式 /275
B.2.4 标识符 /275
B.3 面向模拟器的某些特性 /276
B.3.1 模拟周期 /277
B.3.2 延迟时间 /277
B.4 VHDL中的对象 /278
B.5 数据类型 /279
B.5.1 标量类型 /280
B.5.2 複合类型 /281
B.5.3 子类型 /283
B.5.4 档案类型 /283
B.5.5 类型转换 /283
B.6 VHDL的词法单元 /285
B.6.1 注释 /285
B.6.2 数字 /285
B.6.3 字元 /286
B.6.4 字元串 /286
B.6.5 位串 /286
B.7 属性 /287
B.8 表达式与运算符 /289
B.9 子程式--过程与函式 /293
B.10 程式包与设计库 /294
B.10.1 程式包--设计中的数据共享 /294
B.10.2 设计库 /296
B.10.3 VHDL中名字的可见性 /296
B.10.4 library语句和use语句 /297
B.11 行为描述 /298
B.11.1 进程语句 /298
B.11.2 行为模型的顺序性 /299
B.11.3 行为模型的并行性 /306
B.12 结构描述 /310
B.12.1 连线埠的基本特徵 /310
B.12.2 元件例化语句 /311
B.12.3 配置指定 /312
B.12.4 规则结构 /313
B.12.5 无连线连线埠 /314
B.13 重载 /315
B.14 VHDL保留字和预定义程式包 /316
B.14.1 VHDL保留字 /316
B.14.2 标準程式包STANDARD /317
B.14.3 IEEE多值逻辑系统程式包std_logic_
1164 /324
参考文献 /327
转载请注明出处海之美文 » 程式设计基础——以C为例