8051软核的VHDL实现.docx
- 文档编号:26782642
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:49
- 大小:407.77KB
8051软核的VHDL实现.docx
《8051软核的VHDL实现.docx》由会员分享,可在线阅读,更多相关《8051软核的VHDL实现.docx(49页珍藏版)》请在冰豆网上搜索。
8051软核的VHDL实现
攀枝花学院本科毕业设计(论文)
8051软核的VHDL实现
学生姓名:
学生学号:
院(系):
电气信息工程学院
年级专业:
自动化
指导教师:
职称副教授
助理指导教师
摘要
本文以研究嵌入式微处理器为主,设计了能够运行8051系列单片机指令的单片机系统。
系统采用自顶而下的综合设计方法,用VHDL语言完成了软核中的存储器单元,逻辑运算单元和其它单元的设计。
并且在Altera公司的FPGA上通过验证。
本系统把具有相同功能的逻辑电路集中到一个框图里,使得系统的可移植性大大地提高。
对已实现的部分典型指令进行了软件仿真测试和采取外围电路验证该软核的功能,测试结果表明,所设计的8051软核系统能够如预期地执行相应的指令并且合乎FPGA开发板调试,满足设计要求。
关键词嵌入式,自顶而下,VHDL,软核,单片机
ABSTRACT
Thispaperstudiestheembeddedmicroprocessor,designedtorun8051seriesMCUinstructionsystemofsingle-chipmicrocomputer.Systemusingatop-downdesignmethod,usingVHDLlanguagetocompletethecorememorycellinthearithmeticlogicunitandotherunitdesign.AndinAltera'sFPGAthroughverification.Thissystemhasthesamefunctionlogiccircuitisconcentratedtoadiagram,thesystemgreatlyimprovestheportability.Tohaveachievedsometypicalinstructionofasoftwaresimulationtestandtaketheperipheralcircuittoverifythecorefunctions,testresultsshowthat,thedesignofthe8051coresystemasexpectedtoexecuteinstructionsandaFPGAdevelopmentboarddebugging,meetsthedesignrequirements.
Keywordsembedded,top-downmethod,VHDL,softcore,MCU
1绪论
FPGA软核VHDL实现研究背景
随着超大规模集成电路(VLSI)工艺的进一步迅猛发展,片上系统SoC(systemonachip)的规模越来越大,由此片上系统的设计变得越来越复杂。
由于采用IP核复用技术可以简化多功能芯片的设计,开发IP核成为当前片上系统设计的重要手段。
IP是知识产权模块(intellectualpropertyblock)的简称,定义为密封在硬件设计中的可重复利用的软件。
在电子工业上通常把IP核分为软核、硬核和固核三种。
软核包括逻辑描述(RTL和门级VHDL代码)、器件内部连线表和不能用外部仪器进行的可测性设计。
软核可经用户修改,以实现所需要的电路系统,它主要用于接口、编码、译码、算法和信道加密等对速度性能要求范围较宽的复杂系统。
硬核的设计与工艺已完成且不能更改,其具体形式有存储器、模拟电路和总线器件等。
用户得到的硬核仅是产品功能而不是产品设计,因此,硬核设计的知识产权的保护也较简单。
固核是一种介于软核与硬核之间的IP,可根据用户要求作部分修改。
固核允许用户重新定义关键的性能参数,有的内部连线表也可以重新优化,其使用流程与软核相同。
FPGA软核VHDL实现研究意义
软核开发工作量较小,因此一般开发成本较低,柔性大,如可增加特性或选择工艺并容易从一个工艺向另一个工艺转移,且性能可提高,但可预测性差。
硬核的开发成本最高,柔性小,但性能一定并具有可预测性,更重要的是上市时间短,易于使用。
固核介于硬核与软核之间,IP用户将从实用、性能、价格、上市时间等各种因素综合考虑选择IP。
软核和硬核的设计工作量、设计预测性和性能的差异是由它们不同的设计流程所决定的为了加快产品的研发进度,基于芯核的设计已成为EDA发展的必然趋势。
IP核重复利用具有可以提高设计能力,节省设计劳力,大大缩短上市周期,更好地利用现有的工艺技术,降低成本等诸多优点。
那么基于IP复用技术的设计方法将会提高SoC的开发效率,并逐渐成为了21世纪集成电路技术的必然趋势。
然而,随着系统复杂度的提高,如何提高IP的可复用性成为设计人员必须面对的问题。
嵌入式软核处理器在设计开发中的应用越来越广泛,与传统的基于处理器芯片的开发方式相比,软核受硬件条件限制小,具有更大的灵活性,可缩短系统的设计开发时间。
采用FPGA与IP核相结合进行嵌入式系统开发,为设计人员提供了一种新的快捷高效的设计思路。
本文设计实现了一个优化的8051IP核将其嵌入Altera公司Cyclone系列FPGA器件中,并做了功能测试及应用设计。
1.2单片机发展状况
自从上世纪70年代初世界第一块单片机的推出到现在已经有三十几年的历史了,在这短短的三十几年里,单片机的发展经历了好几次重要的飞跃,表现在如下几个方面。
单片机的处理位在逐渐翻倍,这意味着单片机处理数据的能力在不断提高,速度也越来越快,最初的四位单片机只能用于一些简单的控制场合,如家用电器,玩具等。
接着便出现了具有较快数据处理能力的八位单片机,八位单片机由于具有优异的性能,其运用领域也比四位单片机广阔的多。
但是在某些需要适时较快数据处理的地方,八位单片机的速度还是达不到要求,这就又促使16位单片机的推出。
如今,由于社会自动化生产的需要,控制软件也越来越复杂,能够支持操作系统的嵌入式系统在这方面就表现出明显的优势。
所以单片机向32位嵌入式微处理器的发展也是一个趋势。
除了位数翻倍外,单片机的封装也越来越小型化了,功耗也越做越低,这些都得益于集成电路工艺的不断创新。
1.3研究内容和实现手段
本文研究内容
本文研究的内容主要包括:
熟悉并运用VHDL语言进行系统设计,嵌入式微处理器内部结构研究;以MCS-51系列单片机指令为参考,利用原理框图和硬件描述语言的输入方式完成实现处理器的各种功能;以Altera公司的FPGA芯片EP2C5T144C8为目标芯片,用QuartusII的仿真工具对设计结果进行验证。
VHDL语言特点
VHDL的英文全名为VHSIC,由美国国防部于1983年创建,由IEEE进一步发展,并在1987年作为“IEEE标准1076”发布。
从此,VHDL语言成为硬件描述语言的业界标准之一。
VHDL作为一个规范的语言核建模语言,随着它的标准化,出现了一些支持语言行为的仿真器。
由于创建VHDL的最初目标是用于标准文档的建立和电路功能的模拟,其基本能想法是在高层次上描述系统和元件的行为。
但到了二十世纪九十年代初,人们发现,VHDL不仅可以作为系统模拟的建模工具,而且可以作为电路系统的设计工具;可以利用软件工具将VHDL源码自动地转化为文本方式表达的基本逻辑元件连接图,即网络文件。
这种方法显然对于电路自动设计是一个极大地推进。
很快,电子设计领域出现了第一个软件设计工具,即VHDL逻辑综合器,它可以标准地将VHDL的部分语句描述转化为具体电路实现的网络文件。
1993年,IEEE对VHDL语言进行了修订,从更高的抽象参差和系统描能力上扩展了VHDL的内容,公布了新版本的VHDL语言,即IEEE标准的1076-1993版本。
现在VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多的EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。
VHDL具有与硬件电路无关和与设计平台无关的特性,并具有良好的电路行为描述和系统描述能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。
因此,VHDL语言在支持各种模式的设计方法,自顶向下与自底向上或混合方法方面,在面对当今许多电子产品生命周期的缩短,需要多次重新设计以融入最新技术,改变工艺等方面都表现了良好的适应性。
采用FPGA设计的验证手段
一般来说,芯片设计包括三种方式,全定制ASIC芯片,半定制ASIC芯片和可编程的逻辑器件。
对于前两种,芯片的流片,测试和验证花费都很大,动辄就需几十万元。
而且经常不能一次成功,所以对于全定制和半定制的设计成本很高。
而用可编程逻辑器件就不存在这样的问题,因为其具有可重构的特性,对硬件的修改可以直接通过对软件编程来实现,还可以修改多次,直到设计者满意为止。
这样就可以明显地降低设计周期和开发费用,是一种经济的设计验证手段。
MCS-51系列单片机的指令系统共有111条指令,按照它们的操作性质可划分为数据传送指令、算术操作指令、逻辑操作指令、程序转移指令和位操作指令等5个大类。
MCS-51系列单片机的指令长度较短:
单字节指令有49条;双字节指令有46条;最长的是三字节指令,只有16条。
指令周期也较短:
单机器周期指令64条双机器周期指令45条;只有乘、除两条指令需要四个机器周期。
在MCS-51指令系统中,有丰富的位操作指令,形成了一个相当完整的位操作指令子系统,成为该指令系统的重大特色。
本文所设计指令均能在一个周期内完成。
Ins[7..0]
单字节指令
双字节指令
三字节指令
图1.1MCS-51指令结构
观察如图所示,每一条指令通常由操作码和操作数两部分组成,前者表示该条指令将进行何种操作,后者表示操作数本身或操作数所在的地址。
处理器传输数据,执行算术操作、逻辑操作等都要涉及操作数。
某条指令执行时,得先从操作数所在的地址寻找到与本指令有关的操作数,这便涉及到寻址。
MCS-51指令集的寻址方式有六种。
它们分别为立即数寻址、寄存器寻址、寄存器间接寻址、直接寻址、基址寄存器加变址寄存器的间接寻址和相对寻址。
2总体MCS8051lP软核的数字系统建摸分析
任何涉及到处理和存储信息的数字电路都当作一个数字系统。
如果在这样一个层次上讨论数字系统,我们必须意识到将要面临的数字系统的复杂性。
要完全靠人力去理解这些复杂的系统是不可能的,我们需要寻找处理这些复杂问题的方法。
依靠这些技术和方法,我们就可以有一定程度的自信去设计满足各种需求的功能部件和数字系统。
数字系统建模中模型的概念
从一个系统的需求文件着手,我们可以先设计出一个满足这些需求的抽象结构。
然后把这个抽象结构分解成一系列的部件,将他们组合在一起实现和抽象系统相同的功能。
而其中的每一个部件也都可以继续分解到一些最基本的,现成的元件层次,去完成所要求的功能。
这种处理方法就是从最基本元素开始分层构建一个数字系统。
这样在设计过程的任一特殊环节上,我们只需关注与目前设计相关的少量信息,从而从大量繁重的细节工作中解放出来。
我们可以使用所谓模型(model)这一概念来理解数字系统。
一个模型代表了一些和当前设计层次相关的信息,并且模型可以从那些与当前设计无关的细节中抽象出来。
有了模型的概念可以使我们建摸更容易,有以下一些优点:
①模型的概念使对数字系统建摸提出的要求有了计算机语言上的表述;
②采用形式上的模型可以与用户沟通对系统功能的理解;
③模型化使得设计者可以利用仿真来测试和验证一个数字设计;
④建立模型对一个数字系统设计的正确性提供了形式验证;
⑤利用模型可以实现设计线路的自动综合合成。
2.2建模的域与层次
一个数字系统可以有不同的模型。
可以将这些模型归纳为三个描述域:
功能域(function),结构域(structure)和物理域(geometry)。
功能域描述的是系统的操作和实现的功能。
在某种意义上,功能域是最抽象的描述域,因为它不涉及到这些功能是怎么实现的。
结构域处理的是系统怎样由内部互连的予系统组成的。
而物理域表述的是系统在物理空间的布局和具体的几何实现。
在最抽象的层次上,整个系统可以按照一种算法来描述,非常类似计算机程序的算法。
功能建模的这一层次通常称为行为建摸(behavioralmodeling),在对系统的功能进行抽象描述时将采用这个术语。
在建摸中的次抽象层次,是按照数据存储和转换元素来描述系统。
在结构描述域中,这一层次是出数据通路(datapath)和控制部分(controlsection)组成的,通常称为寄存器.传输(register-transfer)级。
数据通路由数据寄存器组成,且数据通过转换元素在寄存器之间进行传递。
控制部分控制数据通路部件按顺序进行操作。
例如,一个控制器的微处理器的寄存器传输级结构模型如图2.1所示。
控制器微处理器的寄存器传输级结构模型
包括一个通用寄存器(GPR)文件;用于程序计数器(PC)的寄存器,存储地址寄存器(MAR),存储器数据寄存器(MDR),暂存数据寄存器(Temp)和读取指令寄存器(承);一个算术逻辑单元;一个总线驱动器和控制部分。
在功能域中,通常采用寄存器传输语言(RTL)来指定这一层次的系统操作。
数据的存储用寄存器变量来表示,而数据转换则采用算术和逻辑操作符来表示。
模型这部分的描述涉及到从内存取指令的操作。
PC寄存器中的内容被转移到内存的地址寄存器中,且这时候内存读信号有效。
随后,来自PC寄存器的值被变换,并且被传回PC寄存器。
当来自内存的读信号输入信号有效时,在内存数据输入中的值将被传送到指令寄存器中。
最后,内存读信号失效。
如果数字系统按时序状态机的划分方法则分为数据通道单元和控制单元。
时序状态机划分成为数据通道和控制器有利于阐明系统结构,也有利于简化系统设计。
状态机的设计过程可以说是由应用决定的,这是因为在某一特定应用中,由数据通道单元完成的操作,其顺序决定了构成状态机机构要用到的部件,以及由数据通道执行的指令集,最重要的是决定了控制数据通道的有限状态机(FSM)。
在同步状态机中,有一个公共时钟信号可使控制器和数据通道功能单元的动作同步。
在图2.2中的控制单元是用有限状态机来实现的,它本身是由外部输入信号和来自数据通道的状态信号控制的。
有限状态机产生可控制数据通道单元操作的信号。
用作数据通道的状态机控制器
建模语言
从前面的述说,已经知道了可以设计出不同的模型来表示一个系统的功能,结构和物理安排上的各个层次。
同样也可以采用不同的方式来表述这些模型,具体采用的方式取决于模型的构成和应用。
当进入功能描述域时,通常会看到在建模中使用文本表示法来描述。
另外一些文本表示法则被设计为测试和验证的目的来对系统进行仿真,它们典型上都是基于常规的编程语言构成的。
VHDL的概念级建模
VHDL是一种描述数字电子系统的语言,随着计划的进行,人们发现迫切地需要一种标准语言来描述集成电路(IC)的结构和功能。
因此,VHSIC硬件描述语言(VHDL)就应运而生。
在国际电气与电子工程师(IEEE)协会的支持下,VHDL得到了进一步的发展,并在1987年以“标准VHDL语言参考手册”的形式,被正式颁布为IEEE标准1076。
VHDL语言是为满足设计过程中的各种需要而设计的。
第一,它可以对系统的结构进行描述,即一个系统怎样分解成为子系统,这些子系统之间是怎样相互连接的。
第二,它可以使用熟悉的编程语言的形式来对系统的功能做详细的说明。
第三,作为结果,它可以先于实际制造前,对系统的设计进行仿真。
这样一来,设计人员可以很快地比较各种替代方案,可以在毫不延时和不需要花费硬件样机费用情况下,直接测试方案的正确性。
第四,它可以实现从一个较抽象的系统说明综合成一个设计的细节结构。
这样,设计人员可以专注于一些更全局更战略性的设计决策,缩短产品推向市场的时间。
VHDL从最抽象级到门级的不同层次上,都含有用来描述数字电子系统结构和功能的各种工具和设施。
VHDL同样也提供了一种属性机制,使用这种属性机制可以用物理描述域的各种信息来标识数字系统模型。
很显然,VHDL是为了详细说明和仿真数字系统而设计的建模语言。
同样,也可以使用VHDL进行硬件综合,只要限制性地使用一个可以自动翻译成硬件的VHDL语言子集即可。
建模仿真和综合是大规模系统设计方法中非常重要的部分。
VHDL可以在一个抽象层次的范围内表示模型,包括从门级向上到算法级和结构级的多个层次,它将在未来的一段时间内,在基于硅系统的设计方面扮演重要的角色。
VHDL和Verilog两种硬件设计语言的比较
VHDL和VerilogHDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。
VHDL和VerilogHDL作为描述硬件电路设计的语言,其共同的特点在于:
能形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用。
但是VHDL和VerilogHDL又各有其自己的特点。
VHDL发展的较早,语法严格,而VerilogHDL是在C语言的基础上发展起来的一种硬件描述语言。
语法较自由。
VHDL和VerilogHDL两者相比,VHDL的书写规则比Verilog烦琐一些,但verilog自由的语法也容易让少数初学者出错。
国外电子专业很多会在本科阶段教授VHDL,在研究生阶段教授verilog。
从国内来看,VHDL的参考书很多,便于查找资料,而VerilogHDL的参考书相对较少,这给学习VerilogHDL带来一些困难。
目日口版本的VHDL和VerilogHDL在行为级抽象建模的覆盖范围方面也有所不同。
一般认为VerilogHDL在系统级抽象方面比VHDL略差一些,而在门级开关电路描述方面比VHDL强。
2.4自定向下设计的基本概念
自顶向下的设计是从系统级开始,把系统划分为若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接用EDA元件库中的基本元件来实现为止。
复杂数字逻辑电路和系统的层次化,结构化设计隐含着对系统硬件设计方案的逐层分解。
硬件的描述特别是行为描述通常称为行为建模。
在集成电路设计的每一层次,硬件可以分为一些模块,该层次的硬件结构由这些模块的互连描述,该层次的硬件的行为由这些模块的行为描述。
图2.3Top-Down设计思想
Top-Down的设计方法会有以下优点:
①易于系统从顶层进行功能和结构的划分;
②系统能从顶层的仿真和调试中早期发现设计上的错误,同时也减少了逻辑仿真的工作量;
③于系统划分和管理整个项目,并减少不必要的重复设计。
在这个设计树上,节点对应着该层次上基本单元的行为描述,树枝对应着基本单元的结构分解。
在不同的层次都可以进行仿真以对设计思想进行验证。
EDA工具提供了有效的手段来管理错综复杂的层次,即可以很方便地查看一层次某模块的源代码或电路图以改正仿真时发现的错误。
3MSC-51软核分析
IP是知识产权模块(intellectualpropertyblock)的简称,定义为密封在硬件设计中的可重复利用的软件。
在电子工业上通常把IP核分为软核、硬核和固核三种。
软核包括逻辑描述(RTL和门级VHDL代码)、器件内部连线表和不能用外部仪器进行的可测性设计。
IP的设计与验证目前并不成熟,除应用较广泛的CPU/DSP核IP与存储器
IP外,大部分的IP都存在功能验证与可测试性问题。
随着基于IP的设计工作方式的普及,软IP以其工艺适应性强,方便代码的修改和内核移植,开发设计时间短等优势引起广泛关注。
软IP是以RTL描述或功能描述方式存在的IP,在进行电路设计时,可以改动IP的内部代码以适应不同的电路需要,或者IP本身就带有各种可设置的参数来调整具体的功能。
这里我们把它称之为优化,本章主要讨论基于8051软核的层次分析及优化。
3.1顶层模块
软核顶层模块及其子模块由图描述。
图中表示初了顶层文件中所定义
出的端口信号名和顶层模块外围的3个存储器模块的接口。
图中还可以看到顶
层设计文件所包含的用户自定义的串口接口模块,定时器/计数器模块的数量。
8051顶层模块图
在mc8051core顶层模块的设计中不包含任何进程语句不实现模型的任何行为。
它只提供与外围端口的接口以及它内部模块的连接。
在顶层模块中定义了一些信号线用于mc8051_core与它外部的数据,程序储存模块的连接。
端口:
-clk系统时钟,上升沿有效
-reset异步复位信号
-all_t0_i定时器/计数器0输入端
-all_t1_i定时器/计数器l输入端
-all_rxd_i串行输入口
-int0_i外部中断0输入端
-int1_i外部中断1输入端
-p0_iP0并口输入端
-p1_iP1并口输入端
-p3_iP3并口输入端
-all_rxdwr_o双向口rxd数据输入输出方向选择端
-all_txd_o串行输出口
-all_rxd_o串口模式0数据输出口
-p0_oP0并口输出端
-p1_oP1并口输出端
-p2_oP2并口输出端
-p3_oP3并口输出端
8051内核中例化产生了定时器/计数器,ALU,串口和控制子模块,完成作为CPU定时控制,算术逻辑计算,指令时序控制,安排指令的执行顺序,控制信号的发出。
RAM和ROM块通常根据目标应用的设计要求决定生成的容量,所以通常例化在顶层模块,8051内核的外面。
在单片机中,工作寄存器(即通用寄存器)属于数据存储器RAM的一部分,工作寄存器放在后面与片内数据存储器一起介绍。
3.2指令译码模块
指令译码模块是整个内核设计的主要模块。
该模块从程序存储模块提取要执行的指令根据指令的译码发出控制信号。
指令译码模块以下包含两个子模块:
寄存器单元模块和控制状态机模块。
下面分别进行介绍。
寄存器单元模块
该模块定义了所有内核要完成的时序操作进程,像特殊寄存器的读写过程,中断寄存器的读写,中断源的监测,通用寄存器的访问和位存储单元的读写。
模块定义了完成这些操作所用到的所有相关寄存器组及辅助寄存器。
进程1:
完成对特殊寄存器,可位寻址寄存器,片内通用寄存器的读;并
把读到的数据放进定义的8位或l位数据寄存器中;
进程2:
完成对外部中断的监测,探测中断触发沿;
进程3:
确定有效的中断触发条件和中断的产生,并启动中断;
进程4:
数据及地址选择进程。
由多路选择开关组成,负责数据通路的选择。
包括把8位数据寄存器中的内容读到数据总线,16位PC指针寄存器内容读到数据总线,ALU操作结果的读和辅助寄存器的读取。
1位通用数据寄存器的数据读到1位数据总线,还包括进位标志等的读取。
在地址选择方面,主要完成各种寻址方式的实现。
这又包括直接寻址和间接寻址,片内寻址和片外寻址,特殊功能寄存器的访问等。
进程5:
写内部寄存器。
包括状态机状态寄存器的状态更新,指令代码的寄存,程序指针的寄存,并口接口数据的寄存,1位,8位,16位辅助寄存器的选择写入。
进程6:
PC计数进程。
计算下一个程序指针的指向。
无论是PC指针加1或中断服务
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8051 VHDL 实现