0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >行业趋势 > 基于EDA技术的FPGA设计探究_基于EDA技术的8051单片机指令系统剖析

基于EDA技术的FPGA设计探究_基于EDA技术的8051单片机指令系统剖析

2017-08-03
类别:行业趋势
eye 250
文章创建人 拍明


集成电路技术和计算机技术的蓬勃发展。让电子产品设计有了更好的应用市场。实现方法也有了更多的选择。传统电子产品设计方案是一种基于电路板的设计方法。该方法需要选用大量的固定功能器件.然后通过这些器件的配合设计从而模拟电子产品的功能,其工作集中在器件的选用及电路板的设计上。

随着计算机性价比的提高及可编程逻辑器件的出现。对传统的数字电子系统设计方法进行了解放性的革命。现代电子系统设计方法是设计师自己设计芯片来实现电子系统的功能.将传统的固件选用及电路板设计工作放在芯片设计中进行。进人新世纪电子产品设计系统日趋数字化、复杂化和大规模集成化,各种电子系统的设计软件应运而生。在这些专业化软件中,EDA(Electronic Design Automation)具有一定的代表性。EDA技术是一种基于芯片的现代电子系统设计方法。它的优势主要集中在能用HDL语言进行输入、进行PEn(可编程器件)的设计与仿真等系统设计。现在EDA技术已向模拟可编程器件的设计与仿真方向发展.并占据市场的一定份额。

EDA技术主要包括大规模可编程逻辑器件、硬件描述语言、开发软件工具及实验开发系统4个方面。其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体硬件.描述语言是利用EDA技术进行电子系统设计的主要表达手段。开发软件工具是利用EDA技术进行电子系统设计的智能化与自动化设计工具。实验开发系统则是提供芯片下载电路及EDA实验、开发的外围资源。

一、FPGA结构概述

现场可编程门阵列FPGA作为集成度和复杂程度最高的可编程ASIC。是ASIC的一种新型门类,它建立在创新的发明构思和先进的EDA技术之上。运算器、乘法器、数字滤波器、二维卷积器等具有复杂算法的逻辑单元和信号处理单元的逻辑设计都町选用FPGA实现。以Xilinx的FPGA器件为例,它的结构可以分为3个部分:可编程逻辑块CLB(Configurable Losic Blocks)、可编程I/O模块IOB(Input/OutputBlock)和可编程内部连接PI(Programmable Interconnect)。CLB在器件中排列为阵列,周围环形内部连线,10B分布在四局的管脚上。Xilinx的CLB功能很强。不仅能够实现逻辑函数。还可以配置成R^M等复杂的形式。

现场可编程门阵列FPGA是含有大规模数字电路的通用性器件。这些数字电路之间的互联网络是由用户使用更高级的软件来定义的。FFCA可以进行无限次的重复编程,从一个电路到另一个电路的变化是通过简单的卸载互联文件来实现的,极大地推动了复杂数字电路的设计,缩短了故障检查的时间。

传统的数字逻辑设计使用TTL电平和小规模的数字集成电路来完成逻辑电路图。使用这些标准的逻辑器件已经被证实是最 便宜的手段。但是要求做一些布线和复杂的电路集成板(焊接调试)等工作,如果出现错误。改动起来特别麻烦。因此,采用传统电子设计方案人员的很大一部分工作主要集中在设备器件之间物理连接、调试以及故障解决方面。正是因为FPGA的EDA技术使用r更高级的计算机语言。电路的生成基本上是由计算机来完成,将使用户能较快地完成更复杂的数字电路设计,由于没有器件之间的物理连接。因此调试及故障排除更迅速、有效。

二、FPGA对复杂电路设计

FPGA能进行无限次的重复编程。因此能够在相同的器件上进行修改和卸载已经完成好的设计。在一个FPGA芯片上的基本部件数量增加了很多,这使得在FPGA上实现非常复杂的电子电路设计变成比较现实。由于采用FPGA的EDA技术所产生的性价比更高一些,从而使得非常多的单位越来越多的采用这项技术.并且这种增长趋势仍旧在继续。

FPGA中的逻辑块是CLB.逻辑块是指PLD(Programmable bgicDevice)芯片中按结构划分的功能模块,它有相对独立的组合逻辑单元。块问靠互连系统联系。FPGA的逻辑块粒度小,输入变量为4-8,输出变量为1-2,每块芯片中有几十到上千个这样的单元.使用时非常灵活。FPGA内部互连结构是靠可编程互联PI实现逻辑块之间的联接。它的互联是分布式的,它的延时与系统布局有关,不同的布局.互联延时不同。根据FPGA的不同类型,可采用开关矩阵或反熔线丝技术将金属线断的端点连接起来,从而使信号可以交换于任意两逻辑单元之间。

采用FPGA技术集成设计数字电路产品最大的特点就是可以使设计和实现相统一。无须前期风险投资,而且设计实现均在实验室的EDA开发系统上进行,周期很短,大大有利于产品的市场竞争需求,所以FPGA的应用设计。特别适应于电子新产品的小批量开发。科研项目的样机试制以及ASIC产品设计的验证,能够进行现场设计实现、现场仿真及现场修改。

三、FPGA的应用领域

FPGA所具有的无限次可重复编程能力,灵活的体系结构,丰富的触发器及布线资源等一系列的特点使得它可以满足电子产品设计的多种需求。FPGA的应用领域主要集中在替换通用逻辑和复杂逻辑、重复编程使用、板极设计集成、高速计数器、加减法器、累加器和比较器的实现、总线接口逻辑等方面。

应用和开发FPGA必须对器件的性能有一个全面了解.例如对器件的容量、速度、功耗、接El要求和引脚数目等进行综合考虑,同时还要注意以下几个细节问题:

●时序电路应用“上电”复位电路.保证开机加电后,置时序电路于初始状态:

●器件的电源与地引脚必须并接一只0.1μF的无感电容,起滤波和去耦作用:

●不能采用熬目是偶数的反向器串联的方法构成“延时电路”,一则延时的时间不准确.二则自动编译时会作为冗余电路被简化掉;

●主要的全局缓冲器必须由半专用的焊盘驱动,次要的全局缓冲器可以来源于半专用的焊盘或内部网线;

●引脚之间严禁短路,忌用万用表直接测量器件引脚;

●器件的I/O口如被定义为输出端,忌对该端加信号,否则将损坏芯片:

●低功耗的器件如揍负载过大时,不仅会使所用器件的工作效率显著降低,甚至会损伤芯片。

四、结束语

基于EDA技术的现场可编程门阵列FPGA集成度高.结构灵活。设计方法多样,开发周期短,调试方便,修改容易,应用领域广泛。面对科学技术高速发展,熟练的掌握EDA设计技术,灵活巧妙的使用FPGA至关重要。


EDA是什么?

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

EDA是什么.jpg

EDA技术的概念

EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

应用

现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。

EDA设计可分为系统级、电路级和物理实现级。


EDA技术的概念及范畴

EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。EDA 设计可分为系统级、电路级和物理实现级。


EDA常用软件

EDA 工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:EWB、PSPICE、OrCAD、PCAD、Protel、Viewlogic、 Mentor、Graphics、Synopsys、LSIlogic、Cadence、MicroSim等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时以可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。下面按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、IC设计软件、PLD设计工具及其它EDA软件,进行简单介绍。

1、电子电路设计与仿真工具

电子电路设计与仿真工具包括SPICE/PSPICE;EWB;Matlab;SystemView;MMICAD等。下面简单介绍前三个软件。

(1)SPICE(Simulation Program with Integrated Circuit Emphasis)是由美国加州大学推出的电路分析仿真软件,是20世纪80年代世界上应用最广的电路设计软件,1998年被定为美国国家标准。1984年,美国 MicroSim公司推出了基于SPICE的微机版PSPICE(Personal—SPICE)。现在用得较多的是PSPICE6.2,可以说在同类产品中,它是功能最为强大的模拟和数字电路混合仿真EDA软件,在国内普遍使用。最新推出了PSPICE9.1版本。它可以进行各种各样的电路仿真、激励建立、温度与噪声分析、模拟控制、波形输出、数据输出、并在同一窗口内同时显示模拟与数字的仿真结果。无论对哪种器件哪些电路进行仿真,都可以得到精确的仿真结果,并可以自行建立元器件及元器件库。

(2)EWB(Electronic Workbench)软件 是Interactive ImageTechnologies Ltd 在20世纪90年代初推出的电路仿真软件。目前普遍使用的是EWB5.2,相对于其它EDA软件,它是较小巧的软件(只有16M)。但它对模数电路的混合仿真功能却十分强大,几乎100%地仿真出真实电路的结果,并且它在桌面上提供了万用表、示波器、信号发生器、扫频仪、逻辑分析仪、数字信号发生器、逻辑转换器和电压表、电流表等仪器仪表。它的界面直观,易学易用。它的很多功能模仿了SPICE的设计,但分析功能比PSPICE稍少一些。

(3) MATLAB产品族它们的一大特性是有众多的面向具体应用的工具箱和仿真块,包含了完整的函数集用来对图像信号处理、控制系统设计、神经网络等特殊应用进行分析和设计。它具有数据采集、报告生成和MATLAB语言编程产生独立C/C++代码等功能。MATLAB产品族具有下列功能:数据分析;数值和符号计算;工程与科学绘图;控制系统设计;数字图像信号处理;财务工程;建模、仿真、原型开发;应用开发;图形用户界面设计等。MATLAB产品族被广泛地应用于信号与图像处理、控制系统设计、通讯系统仿真等诸多领域。开放式的结构使MATLAB产品族很容易针对特定的需求进行扩充,从而在不断深化对问题的认识同时,提高自身的竞争力。

2、PCB设计软件

PCB(Printed—Circuit Board)设计软件种类很多,如Protel; OrCAD;Viewlogic; PowerPCB; Cadence PSD;MentorGraphices的Expedition PCB;Zuken CadStart; Winboard/Windraft/Ivex-SPICE;PCB Studio; TANGO等等。目前在我国用得最多应属Protel,下面仅对此软件作一介绍。

Protel是PROTEL公司在20世纪80年代末推出的 CAD工具,是PCB设计者的首选软件。它较早在国内使用,普及率最高,有些高校的电路专业还专门开设Protel课程,几乎所在的电路公司都要用到它。早期的Protel主要作为印刷板自动布线工具使用,现在普遍使用的是Protel99SE,它是个完整的全方位电路设计系统,包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印刷电路板设计(包含印刷电路板自动布局布线),可编程逻辑器件设计、图表生成、电路表格生成、支持宏操作等功能,并具有Client/Server(客户/服务器体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD、 PSPICE、EXCEL等。使用多层印制线路板的自动布线,可实现高密度PCB的100%布通率。Protel软件功能强大、界面友好、使用方便,但它最具代表性的是电路设计和PCB设计。

3、IC设计软件

IC 设计工具很多,其中按市场所占份额排行为Cadence、Mentor Graphics和Synopsys。这三家都是ASIC设计领域相当有名的软件供应商。其它公司的软件相对来说使用者较少。中国华大公司也提供ASIC 设计软件(熊猫2000);另外近来出名的Avanti公司,是原来在Cadence的几个华人工程师创立的,他们的设计工具可以全面和Cadence公司的工具相抗衡,非常适用于深亚微米的IC设计。下出按用途对IC设计软件作一些介绍。

(1)设计输入工具这是任何一种EDA软件必须具备的基本功能。像Cadence的composer,viewlogic的viewdraw,硬件描述语言VHDL、 Verilog HDL是主要设计语言,许多设计输入工具都支持HDL。另外像Active—HDL和其它的设计输入方法,包括原理和状态机输入方法,设计FPGA/CPLD的工具大都可作为IC设计的输入手段,如Xilinx、Altera等公司提供的开发工具,Modelsim FPGA等。

(2)设计仿真工作我们使用EDA工具的一个最大好处是可以验证设计是否正确,几乎每个公司的EDA 产品都有仿真工具。Verilog—XL、NC—verilog用于Verilog仿真,Leapfrog用于VHDL仿真,Analog Artist用于模拟电路仿真。Viewlogic的仿真器有:viewsim门级电路仿真器,speedwaveVHDL仿真器,VCS— verilog仿真器。Mentor Graphics有其子公司Model Tech 出品的VHDL和Verilog双仿真器:Model Sim。Cadence、Synopsys用的是VSS(VHDL仿真器)。现在的趋势是各大EDA公司都逐渐用HDL仿真器作为电路验证的工具。

(3)综合工具 综合工具可以把HDL变成门级网表。这方面Synopsys工具占有较大的优势,它的Design Compile是作综合的工业标准,它还有另外一个产品叫Behavior Compiler,可以提供更高级的综合。另外最近美国又出了一家软件叫Ambit,说是比Synopsys的软件更有效,可以综合50万门的电路,速度更快。今年初Ambit被Cadence公司收购,为此Cadence放弃了它原来的综合软件Synergy。随着FPGA设计的规模越来越大,各EDA 公司又开发了用于FPGA设计的综合软件,比较有名的有:Synopsys的FPGA Express,Cadence的Synplity,Mentor的Leonardo,这三家的FPGA综合软件占了市场的绝大部分。

(4)布局和布线 在IC设计的布局布线工具中,Cadence软件是比较强的,它有很多产品,用于标准单元、门阵列已可实现交互布线。最有名的是Cadence spectra,它原来是用于PCB布线的,后来Cadence把它用来作IC的布线。其主要工具有:Cell3,Silicon Ensemble—标准单元布线器;Gate Ensemble—门阵列布线器;Design Planner—布局工具。其它各EDA软件开发公司也提供各自的布局布线工具。

(5)物理验证工具 物理验证工具包括版图设计工具、版图验证工具、版图提取工具等等。这方面Cadence也是很强的,其Dracula、Virtuso、Vampire等物理工具有很多的使用者。

(6)模拟电路仿真器前面讲的仿真器主要是针对数字电路的,对于模拟电路的仿真工具,普遍使用SPICE,这是唯一的选择。只不过是选择不同公司的SPICE,像 MiceoSim的PSPICE、Meta Soft的HSPICE等等。HSPICE现在被Avanti公司收购了。在众多的SPICE中,最好最准的当数HSPICE,作为IC设计,它的模型最多,仿真的精度也最高。

4、PLD设计工具

PLD(Programmable Logic Device)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。目前主要有两大类型:CPLD(Complex PLD)和FPGA(Field Programmable Gate Array)。它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice 公司。

PLD的开发工具一般由器件生产厂家提供,但随着器件规模的不断增加,软件的复杂性也随之提高,目前由专门的软件公司与器件生产厂家合作,推出功能强大的设计软件。下面介绍主要器件生产厂家和开发工具。

(1) ALTERA 20世纪90年代以后发展很快。主要产品有:MAX3000/7000、FELX6K/10K、APEX20K、ACEX1K、Stratix等。其开发工具—MAX+PLUS II是较成功的PLD开发平台,最新又推出了Quartus II开发软件。Altera公司提供较多形式的设计输入手段,绑定第三方VHDL综合工具,如:综合软件FPGA Express、Leonard Spectrum,仿真软件ModelSim。

(2)XILINX FPGA的发明者。产品种类较全,主要有;XC9500/4000、Coolrunner(XPLA3)、Spartan、Vertex等系列,其最大的 Vertex—II Pro器件已达到800万门。开发软件为Foundation和ISE。通常来说,在欧洲用Xilinx的人多,在***和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD 技术的发展方向。

(3)Lattice—Vantis Lattice是ISP(In—System Programmability)技术的发明者,ISP技术极大地促进了PLD产品的发展,与ALTERA和XILINX相比,其开发工具比Altera 和Xilinx略逊一筹。中小规模PLD比较有特色,大规模PLD的竞争力还不够强(Lattice没有基于查找表技术的大规模FPGA),1999年推出可编程模拟器件,1999年收购Vantis(原AMD子公司),成为第三大可编程逻辑器件供应商。2001年12月收购Agere公司(原 Lucent微电子部)的FPGA部门。主要产品有ispLSI2000/5000/8000,MACH4/5。

(4)ACTEL 反熔丝(一次性烧写)PLD的领导得,由于反熔丝PLD抗辐射、耐高低温、功耗低、速度快,所以在军品和宇航级上有较大优势。ALTERA和XILINX则一般不涉足军品和宇航级市场。

(5)Quicklogic专业PLD/FPGA公司,以一次性反熔丝工艺为主,在中国地区销售量不大。

(6)Lucent 主要特点是有不少用于通讯领域的专用IP核,但PLD/FPGA不是Lucent的主要业务,在中国地区使用的人很少。

(7)ATMEL 中小规模PLD做得不错。ATMEL也做了一些与Altera和Xilinx兼容的片子,但在品质上与原厂家还是有一些差距,在高可*性产品中使用较少,多用在低端产品上。

(8)Clear Logic 生产与一些著名PLD/FPGA大公司兼容的芯片,这种芯片可将用户的设计一次性固化,不可编程,批量生产时的成本较低。

(9)WSI 生产PSD(单片机可编程外围芯片)产品。这是一种特殊的PLD,如最新的PSD8xx、PSD9xx集成了PLD、EPROM、Flash,并支持ISP(在线编程),集成度高,主要用于配合单片机工作。

PLD (可编程逻辑器件)是一种可以完全替代74系列及GAL、PLA的新型电路,只要有数字电路基础,会使用计算机,就可以进行PLD的开发。PLD的在线编程能力和强大的开发软件,使工程师可以在几天,甚至几分钟内就可完成以往几周才能完成的工作,并可将数百万门的复杂设计集成在一颗 芯片内。PLD技术在发达国家已成为电子工程师必备的技术。

5、其它EDA软件

(1) VHDL语言 超高速集成电路硬件描述语言(VHSIC Hardware Deseription Languagt,简称VHDL),是IEEE的一项标准设计语言。它源于美国国防部提出的超高速集成电路(Very High Speed Integrated Circuit,简称VHSIC)计划,是ASIC设计和PLD设计的一种主要输入工具。

(2)Veriolg HDL 是Verilog公司推出的硬件描述语言,在ASIC设计方面与VHDL语言平分秋色。

(3)其它EDA软件如专门用于微波电路设计和电力载波工具、PCB制作和工艺流程控制等领域的工具,在此就不作介绍了。


EDA的应用

EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面,几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本概念和基本原理、掌握用HDL语言编写规范、掌握逻辑综合的理论和算法、使用EDA工具进行电子电路课程的实验并从事简单系统的设计。一般学习电路仿真工具(如EWB、PSPICE)和PLD开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下基础。

科研方面主要利用电路仿真工具(EWB或PSPICE)进行电路设计与仿真;利用虚拟仪器进行产品测试;将CPLD/FPGA器件实际应用到仪器设备中;从事PCB设计和ASIC设计等。

在产品设计与制造方面,包括前期的计算机仿真,产品开发中的EDA工具应用、系统级模拟及测试环境的仿真,生产流水线的EDA技术应用、产品测试等各个环节。如PCB的制作、电子设备的研制与生产、电路板的焊接、ASIC的流片过程等。

从应用领域来看,EDA技术已经渗透到各行各业,如上文所说,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA有应用。另外,EDA软件的功能日益强大,原来功能比较单一的软件,现在增加了很多新用途。如AutoCAD软件可用于机械及建筑设计,也扩展到建筑装璜及各类效果图,汽车和飞机的模型、电影特技等领域。


EDA技术的发展趋势

从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用文泛、工具多样、软件功能强大。中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员工发复杂的片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。

在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方向发展。

外设技术与EDA工程相结合的市场前景看好,如组合超大屏幕的相关连接,多屏幕技术也有所发展。

中国自1995年以来加速开发半导体产业,先后建立了几所设计中心,推动系列设计活动以应对亚太地区其它EDA市场的竞争。

在EDA 软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具有各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。

EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完美的地步。EDA市场日趋成熟,但我国的研发水平沿很有限,需迎头赶上。


基于EDA技术的8051单片机指令系统剖析


MCS- 51系列单片机的指令系统是一种简明高效的指令系统,其基本指令共有111条,其中单字节指令49条,双字节指令4'5条,三字节指令17条。如果按功能可以讲这些指令分为五类:数据传送类(29条)、算术操作类(24条)、逻辑操作类(24条)、控制转移类(17条)以及位变量操作类(17条)。对于反向设计而言,我们关心的不是它的各种具体指令的多少而是指令的寻址方式。所谓的寻址方式就是寻找确定参与操作的数的真正地址。MCS-51系列单片机的111条指令一共只采用了5种寻址方式。5种寻址方式以及它们的寻址空间如表1所示。

1.寄存器寻址

寄存器寻址方式可用于访问选定寄存器区的8个工作寄存器RO-R7。由指令操作码的低三位指示所用的寄存器,寄存器A, B, DPTR, AB和Cy位(位处理机的累加器)也可作为寻址对象。在这种寻址方式中被寻址的寄存器的内容就是操作数。

在实现这类寻址方式时,确定被寻址寄存器的物理地址时关键。由于选定寄存器区由PSW的相关位来决定,指令的低三位又指示了具体的寄存器,所以可以用下面的VHDL语句来确定相关寄存器的物理地址:

rr_ adr<=unsigned((psw and“00011000”)or(rom_data_i and“00000111”));

其中rr_ adr表示的是寄存器的物理地址,rom_data_i表示的是指令代码。物理地址确定以后,对RAM的操作就很好进行。

2.直接寻址

直接寻址是访问特殊功能寄存器的唯一方法。它也可以用于访问内部RAM(128个字节)。采用直接寻址方式的指令是双字节指令,其中第一个字节是操作码,第二个字节是内部RAM或特殊功能寄存器的直接地址。地址已经给出,显然不需要像寄存器寻址那样先计算地址,直接针对由ROM给出地址就可以对RAM进行相关操作。

3.寄存器间接寻址

寄存器间接寻址可用于访问内部RAM或者外部数据存储器。访问访问内部RAM或者外部数据存储器的低256个字节时,可以采用RO或R1作为间址寄存器。这类指令为单字节指令,其最低为表示采用RO还是R1作为间址寄存器。访问内部RAM和外部数据存储器时采用不同的指令,所以不会引起混淆。

访问外部数据存储器,还可用数据指针DPTR作为间址寄存器,DPTR是16位寄存器,故它可对整个外部数据存储器空Il(64K)寻址。

在执行PUSH(压栈)POP(出栈)指令时,也采用寄存器间接寻址,这时堆栈指针SP用作间址寄存器。

实现这类寻址方式必须分为两步,首先确定4个通用工作寄存器区中可以作为间接寻址寄存器的8个单元的地址,然后读出所选定的寄存器中的值,这个值就是当前指令要寻址的空间的物理地址。确定间接寻址寄存器的地址可以由下面的VHDL语句来实现:

ri_adr<=((psw and“00011000”)or(s-command (7downto 0) and“110000000111”)),

其中ri_ adr表示的是用于间接寻址的寄存器的物理地址,s_command表示的是当前指令的操作码。然后通过另外一个读RAM的进程就可以确定间址寄存器中的值,从而得到指令需要的存储器单元的地址。至千其他特殊功能寄存器作为间址寄存器的情况,由于间址寄存器的地址事先已经能够确定,所以这种方式下寻找存储器单元的地址就仅需要上述两步中的后一个步骤就可以确定指令需要的存储器单元的地址。

4.立即寻址

采用立即寻址方式的指令是双字节的,第一个字节是操作码,第二个字节是立即操作数。因此,这种寻址方式实现起来比直接寻址还要容易,操作数就是放在程序存储器内的常数。

5.基址寄存器加变址寄存器间接寻址

这种寻址方式用于访问程序存储器的一个单元,该单元的地址是基址寄存器(DPTR或PC)与变址寄存器A的内容之和。虽然这类寻址方式也是间接寻址,对于使用DPTR作为基址寄存器的情况,它的实现方法和用数据指针DPTR作为间址寄存器时的间接寻址的情况很相似,因为其间址寄存器事实上还是确定的。与用数据指针DPTR作为间址寄存器时的间接寻址的情况有所不同的是,确认最终需要的地址还要进行一次加法运算,这在使用VHDL语言描述的时候是很容易实现的。用PC作为基址寄存器时,需要知道PC当前值,但是PC和DPTR是不同的,DPTR是特殊功能寄存器,利用它的地址就可以读出其值,PC并没有被分配地址,不能使用读RAM的方式取得其值,所以内部有必要设置编写这样一个进程,它用于读出那些位于CPU内部、没有分配地址的辅助寄存器的值。

寻址方式及寻址空间.png

表1 表寻址方式及寻址空间




责任编辑:Davia

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: EDA FPGA

相关资讯