【文档说明】计算机组成与结构课件(全)第12章计算机硬件设计和实现导论-.ppt,共(69)页,304.012 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-76249.html
以下为本文档部分文字说明:
第12章计算机硬件设计和实现导论12.1计算机硬件的总体设计12.2专用集成电路ASIC设计概述习题•通用计算机一般是用高级语言编写程序的,因此从面向用户的观点出发,一台新机器的交付使用,至少要达到高级语言编程的最低要求,也就是说应具有必要的硬件和软件。新机器的设计有两种情况:•(1)系列机
扩充新机型。设计本系列新档次的计算机以满足不同用户的需要,或者由于元器件的改进而需要设计新机器,以求得更好的性能价格比。这种机器的特点是软件兼容,硬件重新设计。•(2)设计全新的计算机或系列机。这时硬件和软件都要重新设计。其中软件又
分为系统软件和应用软件,系统软件指的是高级语言的编译程序、汇编语言的汇编程序、操作系统、调试程序和编辑程序等。这些软件应该由研制单位或计算机厂家提供。然后可随着应用的逐步推广不断充实、不断改进。很多应用
软件是由第三方(用户)提供的。•计算机硬件设计与软件不同,一旦机器制造出来以后,就不容易改动。12.1计算机硬件的总体设计12.1.1计算机硬件设计过程•计算机的设计指标首先决定于对计算机性能,即运算速度的要求。性能价格比高的计算机具有较强的生
命力。对现有计算机性能作出全面评价可为新计算机的设计提供依据。计算机硬件设计过程如图12.1所示。•为了加快设计过程,提高设计水平及设计自动化程度,应尽量使用计算机进行辅助设计,为此,要有描述语言来说明要求,并有实现此要求的软件包。下面将对硬件设计中的每一步进行简单介绍。图12.1硬件设计过程•
1.对现有计算机的测试和评价•新机器的设计是一项复杂工程,它要求有可靠的科学依据,严谨的工作作风,并吸取现有计算机的设计经验。为此,应结合实际应用的需要,对现有计算机进行评价,必要时通过基准程序或实际应用程序进行测试。通过测试可获得计算机实际运行速度。也可以通过对程序执行过程的跟踪,统
计出各条指令的执行频率和cache命中率对性能的影响等,为新机器的设计提供科学依据。•2.提出新机器的设计指标•根据实际应用的需要、测试结果、器件供应情况以及价格等诸因素,提出新机器的硬件设计指标。•机
器运算速度。•数据字长度、地址长度。•存储器容量及存储体系。•外部设备的种类和速度。•上述指标均与指令系统的设计密切相关。•当前,新机器的设计指标还不能由计算机直接得出,但是计算机能辅助进行测试与统计等
工作。•3.指令系统的设计和模拟•根据指令系统的复杂程度将计算机分成两类:复杂指令系统计算机(CISC)和精简指令系统计算机(RISC)。•设计指令系统的主要依据是:•(1)计算机的应用范围:主要应用于科学计算、数据处理还是通用等等,这对确定计算机指令类型有很大影响。•(2)计算机性能
与价格的综合考虑,希望在竞争中占有哪些优势?•(3)指令系统兼容性的考虑,采用RISC技术还是CISC技术。•(4)如何有利于操作系统的执行效率和系统软件、应用软件的编译处理。•新机器的设计(包括指令系统在内)一般总是继承或
吸取某些成功机器的设计经验,完全“从零开始”不值得提倡。•如何验证指令系统的完整性、合理性及功能描述的正确性,为硬件设计提供正确依据,通常采取在计算机上进行模拟的方法。对于每一条指令的功能,用计算机语言进行描述,
并在另一台计算机上进行模拟,这样在新机器还没有制造出来以前就能在已有的计算机上验证指令功能的正确性。如有错误或不满足要求,可对指令系统进行修改。•下面是SunSPARC结构中的一条加法指令,用指令系统处理机
(ISP)描述语言进行描述的例子。AddInstruction的ISP描述,checkinterrupt(检查中断,如有中断trap←—1,ISP语言描述略)next;if(trap=1)thenexecute_trap(如有trap,则执行trap。trap可能是由故障或中断引起的,按优先级排队
处理,ISP语言描述略)next;instruction←—memory_read(addr_space,PC)(从存储器读出指令,括号内为指令地址,在32位PC的前面加8位地址空间)next;if(bp_
memory-exception=1)then(trap←—1instruction_access_exception←—1);else(dispatch_instructionPC←—npcnpc←—n
pc+4)(如存储器有异常,设置异常标志,如无异常传送指令到执行部件:IU,FPU或CP协处理器,并准备好下一条指令的地址)next;(以下执行加法操作)Operand2:=ifi=0thenr[rs2]elsesign-extend(simm13);if(ADDorADDcc
)thenresult←—r[rs1]+operand2;elseif(ADDxorADDxcc)thenresult←—r[rsl]+operand2+C;(如i=0,第2个源操作数在rs2所指定的寄存器中,否则是扩充符号的立即数simm13。然后执行加法操作
。)next;if(rd<>0)thenr[rd]←—result;if(ADDccorADDxcc)then(N←—result<31>;Z←—ifresult=0then1else0V←—(r[rs1]<31>andoperand2<31>andnotresult<31>)or(notr[r
sl]<31>andnotoperand2<31>andresult<31>);C←—(r[rsl]<31>andoperand2<31>)or(notresult<31>and(r[rsl]<31>oroperand2<31>));(根据运算结果置标志位N,Z
,V和C。式中<31>表示第31位,即最高位)•加法指令的运算结果送rd(当rd≠0时)。当rd=0时,由于SPARC规定该寄存器的内容恒为0,因此运算结果将不再保留。但根据运算结果分别置N,Z,V和C的
操作仍需进行。•对计算机的每一条指令都编写了相应的ISP描述语言程序以后,可通过专门为之编写的测试程序或实际应用程序验证指令功能的正确性。具体方法是每当取出测试程序或应用程序中的一条指令时,就转到对应于这条指令的ISP语言入口,执行完
成返回到原程序,再取出下一条指令,又转到对应这条指令的ISP语言入口,……,如此重复,直到执行完程序。然后检查结果,并与预先估计的结果比较。如相等,说明执行这一程序时,指令的功能是正确的,但并不说明在执行其他程序时,这些
指令的功能一定正确,因为测试可能还不全面,因此需要编写一个能全面模拟功能的测试程序。另外为了便于查出错误,执行测试程序时应该允许设置断点。•4.系统设计和系统模拟•这一阶段对计算机的硬件结构及组成进行设计,并模
拟其功能,验证其正确性。也是对前面几个阶段的工作进行考核,在机器运算速度、硬件复杂程度及成本之间进行衡量,如感到不满意,则有可能重新修改机器的设计指标,或修改指令系统。•5.系统实现及测试模式的形成•系统实现包括逻辑设计及电路的设计与选择,对于逻辑电路的设计和模拟(逻辑模拟、电路模拟)有专门的软件
包可供使用。•6.工程设计•画逻辑图、进行插件划分、印制板布线等。可以利用计算机进行辅助设计。•7.生产、测试、试运行•这一阶段的工作主要在工厂的生产线上进行。测试与试运行的目的是要验证本系统是否达到预期的功能要求。•8.性能评价•对产品进
行最后的测试,以验证是否达到预期的性能要求。12.1.2指令系统的模拟与仿真•在研制一台新机器时,有两个问题要考虑:•(1)新机器的结构(包括指令系统及机器组成等各方面)与原有机器是否兼容,也就是说,原有机器上的程序是否能不加修改就在新机器上运行,假如不行
,则采用何种策略?重新编制所有软件还是设法用新计算机的程序解释执行原有计算机指令的操作,后者就称为模拟。这是为了保护用户在原有机器上的软件投资而采取的措施,新编写的程序当然是适合于新机器的结构的。•(2)在研制新计算机
时,新机器的指令系统可以在别的计算机上用程序来执行,以验证设计的正确性,这种方法也称为模拟。•由此可见所谓模拟即是在一台计算机上用程序来实现为另一台不同的计算机所编制的程序。模拟方法效率很低,但通用性强。模拟方法经常应用于设计、研究
、分析计算机的性能及其正确性上,这时解决问题的速度不是主要的。在模拟程序中可以附加一些功能。•假如在一台机器上采用微程序控制方法来实现另一台完全不同的机器的指令系统,就叫做“仿真”。这台机器相当于有两套指令系统,通过内部切换,在某一时刻执行其中一套指令系统的指令。仿真速度比模拟速度高得多,通
常用在新设计的计算机上,来运行与其兼容的另一台不同指令系统机器的程序。12.1.3微程序设计自动化•在采用微程序控制的计算机中,微程序的编写工作不容忽视,微指令的格式有各种各样,从直接控制的水平型方式到接近机器语言的垂
直型方式,变化很大。微指令与机器的指令一样,在机器内是用一串二进制码来表示的,而且微指令的长度一般都比机器指令长,因此假如依靠人工来编写二进制微程序,对于设计复杂的计算机来讲几乎是不可能的。图12.2是在计算机上编制微程序的
过程。图12.2微程序的编制过程•微程序的描述方式有两种:•(1)面向汇编语言的描述方式,称为微汇编语言,它具有与微指令一一对应的关系。用它写出的微程序,要经过微汇编程序的编译,转换成用二进制码表示的机器微码,其过程与用汇编语言编写的程序转换成机器语言相类似。•(2)面向高级语言的描述方式
。假如机器内有可改写控存,能实现动态微程序的设计,那么编制微程序的已不限于硬件设计人员,还有软件人员,甚至用户。这样就需要有易于编制微程序且理解其内容的描述方式,并希望有描述微程序用的微高级语言,摆脱对机器的依赖。•可是微程序和硬件结构有密切关系,它在本质上就是描述硬件的控制顺序,必须有良好的执
行效率,因此要设计不依赖于机器的用以描述微程序的微高级语言及其处理系统实际上是非常困难的。这也是为什么可改写控存长期以来得不到发展的原因。而且对用高级语言编写程序的用户来讲,经过编译后的执行程序只能用已有的指令,而根本不可能用到这种利用可改写控存来扩充的指令,除非用户用汇编语言编程。
•微程序的编制对指令执行速度影响极大,所以硬件人员一般不用微高级语言来编制微程序。12.1.4逆向工程的概念•上面介绍的计算机的设计过程称为正向设计过程。采用的是从上到下(或从顶到底)的设计方法。•在设计计算机时,
为了参考、借鉴或仿制的目的,有时需要根据实际机器画出印制电路板布线图,逻辑图,进而推导出设计资料,这一过程称为逆向工程。在微程序控制计算机中,要将微程序从控制存储器中读出,最好还能将它翻译成容易理解的微汇编语言(微反汇编程序完成这项工作)就比较困
难了。因为微指令格式一般是不向用户透露的,所以微反汇编比指令级的反汇编要困难得多。12.2专用集成电路ASIC设计概述•近年来,计算机朝着小型化和高性能方向发展迅速,专用集成电路的设计与应用已成为不可缺少的手段。
利用ASIC技术后,可将原来若干个芯片的功能集成在一个芯片上,从而减少了构成计算机系统的芯片数。也可以根据需要设计新的专用芯片或将若干个中、小规模电路的功能集成在一个芯片上。为了使设计者能在短期内开发出高质量的ASIC,电子设计自动化(EDA)系统已有很大发展,它允许在实际制作芯片
前,对相当规模的系统进行认真的详细的分析,以期达到一次设计投片成功的目标。•目前有下列部门参与ASIC设计工作:•(1)电子设计自动化(EDA)开发部门。主要开发EDA软件,提供ASIC设计工具,利用此工具对系统、逻辑和电路进行模拟,验证设计的正确性,并自动形成测试模式,最终形
成版图。功能齐全的EDA软件价格很高。•(2)整机系统设计部门(用户)。提出ASIC实现的具体目标,利用EDA部门提供的ASIC设计工具进行逻辑设计和电路设计,并与ASIC生产厂家联系,根据生产厂家提供的单元库进行设计。一般不做到版图。其后续设计工作由ASIC设计中心或生产厂家完成。•(3
)ASIC设计中心。对于自己无设计能力的用户,可委托ASIC设计中心进行设计。设计中心的设计工作可以从头做起,也可从中间做起,一般都做完版图。ASIC设计中心可能设有生产线,也可能没有生产线,后者需与ASIC
生产厂家联系,由ASIC生产厂家完成生产工作。各ASIC生产厂家单元库中单元的复杂程度不一,从简单的逻辑门到微处理器。12.2.1专用集成电路的设计过程•1.设计过程简介•ASIC设计过程将根据是否采用电子设计自
动化(EDA)工具、逻辑的复杂程度、采用的工艺以及设计者的经验而变化。一般ASIC的设计过程如图12.3所示。•图12.4是可供设计人员选择的设计方式,该图说明用户与ASIC厂家之间的工作关系是可协调的,可根据各方的设计经验
、设计水平、如何从节省费用、提高效率和早出成果等方面进行考虑。图12.3一般ASIC设计过程图12.4可供选择的设计方式•20万门水平的ASIC,需要使用EDA方面的最新成果来协助设计师进行复杂的ASIC设计。一般采取自上而下的多层次设计方
法,即从最高层的系统功能开始进行设计与模拟,为方便起见,可以先不考虑下一层次(如功能块内部结构)。完成本层次工作后再依次在功能块内部、子功能块和门级等层次上进行设计。究竟分多少层,由电路的复杂程度和使用的软件工具决定。在后面将选择高级硬
件描述语言VHDL来进行分析。•通常对ASIC设计的描述分成以下三个方面:•(1)行为描述:高级结构,用语言来描述;•(2)构造(structural)描述:逻辑线路;•(3)几何图形描述:版图结构。•每一方面自上而
下分成几个层次,如图12.5所示。•例如,有一个两输入端(IN1,IN2)的或非门(在图12.5的逻辑层),其行为描述与构造描述如图12.6所示,其几何图形描述如图2.45所示。•在进行行为级描述时,可不考虑许多具体细节,而着重注意主要模块在这一层次上将如何工作。图
12.5ASIC设计的三种描述:行为、构造与几何图形图12.6两输入端或非门的行为描述和构造描述•2.逻辑模拟的必要性•逻辑模拟的主要目的是帮助设计者验证ASIC设计的正确性。过去在产品正式投产以前,往往先建立一个实际模型(或称为样机),当通过实验确认正确后,再正式投产。而现在由于将系统建
立在芯片上,已不可能依靠实际模型进行实验或测试。假如不进行逻辑模拟,则很可能由于ASIC未能达到设计要求而返工,这要花费极高的一次性工程费用。现今逻辑模拟已足够成熟,可以在软件模拟环境下,进行与实际模型一致的验证工作。•模型是ASIC模拟成功的关键。模拟能否成
功,很大程度上取决于模型与实际系统的吻合程度。模型一般由二要素构成:功能和时序。功能要素描述了模型的输入(称为激励)和根据输入而获得的输出结果。时序要素则描述上述结果在何时发生。现在的模拟器具有比较完善的不同的输入激励方法,这些方法包括图形波形输入及各
种描述激励的语言,模拟结果输出有列表和图形波形显示等方式。但是仍需注意即使ASIC模拟正确,仍不能保证ASIC一定能按设计要求工作,这是因为有些因素未能考虑周到,例如温度变化、电压变化、工艺波动、负载影响和电磁干扰等会影响电路工作。•时序
问题是已开发的ASIC产品不能正常工作的主要原因之一。电路的延迟与器件工艺、负载数目、温度、电压以及连线长度等因素有关。现在的模拟软件允许在逻辑模拟时考虑上述影响。•对ASIC芯片进行测试也是一项很重要的工作。近年
来ASIC设计师越来越深入地参与测试程序的开发,这些程序用来验证ASIC的设计质量。这个发展趋势是很自然的,因为设计师本人最有条件来设计测试程序。另外为便于测试,在芯片内部往往增加一些电路专门用于测试。12.2.2硬件描述语言(VHDL)•VHDL是美国国防部颁布的超高速集成电路(VH
SIC)计划所确定的硬件描述语言,并于1987年被IEEE批准为标准设计语言,命名为IEEE-1076-1987。美国国防部鼓励设计语言格式标准化,它要求所有与政府项目有关的ASIC设计必须符合IEEE-1076标准。设计者用VHDL可对整个ASIC进行从系统级(对电路结
构的高层次抽象)到门级硬件的描述。对被模拟系统的模型可混合使用高层次行为描述和低层次(逻辑和门)的详细描述。•VHDL是一种标准语言,VHDL模型可以在与此标准相一致的任一计算机系统上运行,并产生相同的模拟结果。•VHDL模型以使用离散值的“激励—响应”形式为基础。•对一个器件,常常会问两个最基
本的问题:它由什么组成?它如何工作?这两个问题提出了硬件描述的基本方面:结构与行为。VHDL描述的对象是数字设备,是离散系统,即将离散的输入值(激励)进行一系列计算和转换,最后产生离散的输出值(响应)。从某输入点数值的变化(从“0”到“1”或从“1”到“0”)到输出端得
到响应,总存在一定的时间延迟。•在对电路进行逻辑模拟时,一般要经历以下步骤:•定义电路的端口(输入端、输出端),端口是电路与外界的连接点。•电路的行为描述和结构描述。•编写对电路进行激励模拟的命令文件,进行逻辑模拟。•1.电路的VHDL描述•在
VHDL中,被模拟的电路由实体定义,实体由说明部分与结构部分组成。今将半加器的VHDL描述作一介绍(其中“--”为注释符,一行中“--”后面的任何字符都为注释,在程序中不起作用)。描述工具是Viewlogic公司提供的Workview软件。•-
-下面是半加器的实体说明ENTITYhalf-adderisport(X:invlbit;Y:invlbit;Sum:outvlbit;Carry:outvlbit);endhalf-adder;--端口定义结束,in表示输入数据,out表示输出数据。--VHDL有三
种基本数据类型:整数、浮点数和枚举类型,ulbit为二值(0、1)枚举类型。--X、Y是半加器的输入,Sum为和(输出),Carry为进位(输出)。--下面为结构体描述ARCHITECTUREbehavioral-des
criptionofhalf-adderisbeginprocessbeginSum<=XxorYafter5ns;Carry<=XandYafter5ns;WaitonX,Y;endprocess;--进程
描述结束endbehavioral-description;--结构体描述结束•现将结构体描述简单说明如下:•在VHDL中,常用进程process进行行为描述。在该进程中,表示Sum和Carry的值要比信号X,Y延迟5ns时间才能形成。Wait语句将进程挂起,直到信号X
或Y中的任一个发生了变化时,进程就从进程语句的顶端开始重新执行一遍,也可将进程改写如下,此时不再需要Wait语句,而作用与有Wait语句的进程相同。process(X、Y)beginSum<=Xxor
Yafter5ns;Carry<=XandYafter5ns;endprocess;•下面再举一个移位器的例子。该移位器可对32位数据A<31∶0>进行任意位(31位~0位)移位,移位次数由B<4∶0>给出,移位
器的功能由5级门完成,如图12.7所示。•该移位器可进行逻辑左移、逻辑右移、算术左移和算术右移四种操作。逻辑左移和算术左移,空出来的低位补0;所以这两种操作没有区别,统称为左移;逻辑右移空出的高位补0;算术右移,空出的高位全部补入符号位。SR为移位结果。
图12.7移位器的结构•在本例中,首先对移位器进行行为描述,定义了三个函数(function):左移shiftl,逻辑右移shiftr-logic,算术右移shiftr-maths,并一起归入Extend.Vhd程序包中。•
图12.8是左移示意图。•左移的VHDL描述:functionshiftl(A:vlbit-1d(31downto0);i:integer)returnvlbit-1disvariableSR:vlb
it-1d(31downto0);beginSR(31+idowntoi):=A;图12.8左移示意图forjini-1downto0loopSR(j):=0;endloopreturnSR(31downto0);end;•程序中的vlbit-1d表示一维数
组。•在VHDL中有两种赋值符号“<=”和“:=”。前者表示赋值需经过一段延迟时间才能完成;后者则可立即赋值。当给变量置初始化值或给常量赋值时使用“:=”符号。•逻辑右移的VHDL描述:functionshiftr-logic(A:vlbit-1d(31downto0);i:int
eger)returnvlbit-1disvariableSR:vlbit-ld(31downto0);beginforjin31downto32-iloopSR(j):=0endloopSR(31-idownto-i):=AreturnSR
(31downto0);end;•下面给出移位器的实体说明与结构体描述。文件名:shifter.vhdusework.extend.all:--use语句允许本实体引用extend.vhd程序包,内有3个移位函数ENTITYshifterisg
eneric(SR-DELAY:time:=10ns);--属性定义,从输入A、B到输出SR的延迟prot(A:invlbit-ld(31downto00);B:invlbit-ld(4downto0);SR:out
vlbit-ld(31downto00);CLR,CAL:invlbit);--端口定义,A为32位一维向量,B为5位一维向量。--CLR为左右移控制信号,CLR=“0”为左移,CLR=“1”,为右移--CAL为算术移位和逻辑移位的
控制信号,CAL=“0”,为算术移位,CAL=“1”,为逻辑移位。endshifter;--实体说明结束,以下为结构体描述ARCHITECTUREbehaviorOFshifterISbeginprocess(A,B,CLR,CAL)variabletmp1,tmp2,tmp3,tmp4,tmp5
:vlbit-ld(31downto00)beginifB(0)=0thentmp1:=A;elsifCLR=0thentmp1:=(shiftl(A,1));elsifCAL=0thentmp1:=(shiftr-maths(A,1)
;elsetmp1:=(shiftr-logic(A,1)):endif--shiftl,shiftr-logic及shiftr-maths在extend.vhd中定义。ifB(1)=0then…endif--得出tmp2ifB(2)=0then…endififB(3)=0then
…endif--得出tmp3,tmp4ifB(4)=0thentmp5:=(tmp4);elsifCLR=0thentmp5:=(shiftl(tmp4,16));elsifCAR=0thentmp5:=(shiflr-maths(tmp4,16));el
setmp5:=(shiftr-logic(tmp4,16));endifSR<=tmp5afterSR-DELAY;--输出结果SRendprocess;--进程描述结束endbehavior;•2.逻辑模拟及验证•在workview环境下,逻辑模拟可根据屏幕提
示和菜单进行操作。•下面以shifter的模拟过程为例进行说明。•第一步,把VHDL的逻辑描述(shifter.VHD)转换为网表文件,这是因为模拟器只能对网表进行模拟,用命令•C>VHDLshifter-v•可生
成shifter.VLI及shifter.VSM网表文件(其中VHDL为编译命令,-v为命令的参数,表示需要生成网表文件)。•第二步,进入模拟器,并把模拟对象的网表文件加载到模拟器中。•在workview集
成环境中,模拟器为viewsim。进入viewsim中后,模拟器会问用户加载网表的名称,输入shifter即可。•第三步,对输入端口施加激励并进行模拟。所谓激励,对应于实际电路的输入端输入信号,一般通过逻辑值1和0
的组合来表达。•在shifter中,输入端口有A<31∶0>,B<4∶0>,CLR及CAL。为这些输入端口设计激励时,要注意尽可能全面地测试移位器的功能。表12.1为shifter的七组激励端口激励值激励
值A0000FFFFHFFFF0000HB00000000010001000100010001000011111CLR0001111CAL0110011SR0000FFFFH0001FFFEH0003FFFCHFFFFF000HFFFFFF00H0000FFFF
H00000000H•表12.1的最后一行是每组激励下的输出端口的理论值,由人工推出,以供模拟结果的比较验证。•在viewsim中对shifter的网表施加表12.1所示的七组激励需要通过一系列模拟命令来控制。•可用以下一组命令把第一组激励加在shifter网
表上,并进行一个周期模拟。命令|注释stepsize400|模拟周期40ns,每步0.1nsvectorAA[31∶0]|A表示的是向量A[31∶0]vectorBB[4∶0]|B表示的是向量B[4∶0]assignA0000FFFF/h|给向量A赋值000
0FFFF/hassignB00000|给向量B赋值00000LCLRCAL|给CLR、CAL赋值为0cycle|模拟一个周期•其他各组激励可按类似命令施加,并进行模拟。assignB00001|A不变
,给B赋值00001hCAL|CLR不变,CAL赋值为1cycle|…|assignAFFFF0000/h|assignB11111|hCLRCAL|cycle|•第四步,显示模拟结果,设计简单的列表方式及图形显示方式等。•在vi
ewsim中,若用列表方式观看结果,可在模拟结束后,用命令displaySR•仅显示模拟的最后结果•而若在施加激励之前用命令waveshifter.wfmABCLRCALSR•则在模拟过程中,模拟器会把端口A,B,CLR,CAL及SR的变化情况用波形
记录在shifter.wfm中,模拟结束后,通过观看shifter.wfm便可详细了解shifter在这七组激励下的运行情况,并可把SR模拟结果与表12.1中的理论值比较,以验证shifter的设计正确与否。•图12.9是shifte
r.wfm的波形图。•一般ASIC的逻辑模拟均经过这几个步骤,若在结果观察中发现错误,便修改VHDL的逻辑描述,重新进行模拟。图12.9shifter.wfm的波形图习题•12.1选择填入()中的正确答案:•(1)指令系
统设计主要由(A)进行。设计兼容机或同一系列不同型号的计算机时,新机器应包括原有机器的(B)指令。•(2)目前以下这些工作主要依靠计算机自动完成(当能提供适当的软硬件环境时):(C)(D)(E)•供选择的答案:•A:①硬
件设计人员②软件设计人员③软硬件设计人员共同参加•B:①全部②部分•C、D、E:①指令系统设计②指令系统模拟③从指令系统到硬件实现④逻辑模拟⑤印制板布线•12.2从以下叙述中选择出正确的条目:•(1)指令系统模拟是在一台机器上用
程序模拟另一台不同计算机所编制的程序,但因其效率太低,因此这项模拟工作没有任何实用意义。•(2)某公司设计一台新指令系统计算机,但仍想运行该公司在原来机器上运行的程序,通常可采用下面方法:•i)如有高级语言编程的源程序,可在新机器上重新编译一次。•ii)如要运
行原二进制代码程序,则新机器应具有执行旧机器指令系统的功能,一般在机器内设置一套能执行旧指令的微码控制器。•(3)微程序的编制工作直接与硬件有关,而且其编制的好坏程度与机器运行速度影响极大,因此需要由人
工进行微程序的二进制编码工作。•12.3设有一全加器,其输入信号为IN1、IN2和C。已知该全加器由两个半加器组成,请用VHDL语言进行描述。•如要测试该电路的正确性,应如何确定其激励信号?•12.4举例说明ASIC芯片的应用。•12.5逆向工程与正向工程的差别
。