电子设计自动化第6章课件

上传人:无*** 文档编号:241928760 上传时间:2024-08-06 格式:PPTX 页数:179 大小:9.08MB
返回 下载 相关 举报
电子设计自动化第6章课件_第1页
第1页 / 共179页
电子设计自动化第6章课件_第2页
第2页 / 共179页
电子设计自动化第6章课件_第3页
第3页 / 共179页
点击查看更多>>
资源描述
第6章 常用接口控制电路第6章 常用接口控制电路6.1 可编程并行接口电路可编程并行接口电路6.2 可编程定时可编程定时/计数电路计数电路6.3 SPI总线接口器件总线接口器件6.4 堆栈堆栈(STACK)电路电路6.5 先入先出先入先出(FIFO)电路电路习习题与思考题与思考第6章 常用接口控制电路6.1 可编程并行接口电路第6章 常用接口控制电路6.1 可编程并行接口电路可编程并行接口电路6.1.1 逻辑功能与分析逻辑功能与分析1功能分析功能分析数据接口电路是计算机控制系统的重要构成单元,为系统计算机及各构成电路提供数据转换、传送通道,实现系统内不同构成单元之间的动态数据交互。相对而言,并行接口能够一次实现多位数据的传输交换,无需串并转换及并串转换电路,具有结构简单、传输速度高等优势,是计算机控制系统中应用较为广泛的一种数据接口。6.1 可编程并行接口电路6.1.1 逻辑功能与分第6章 常用接口控制电路8255是一种典型的传统可编程并行接口器件,具有A、B、C三个8位并行接口,根据需要,可通过编程配置为通用输入/输出端口、带选通的输入/输出端口、双向传输端口等工作模式,同时,端口C具备位操作功能,器件的端口A或B工作于选通输入/输出或双向传输模式时,端口C的相关数据位可用作选通或状态信号,辅助完成计算机与外设的数据传输任务。8255器件具有A0、A1两条地址线,占用4个地址,分别为A、B、C接口地址与控制字寄存器地址。8255是一种典型的传统可编程并行接口器件,具有A、B第6章 常用接口控制电路2器件逻辑与功能结构器件逻辑与功能结构参考8255的典型功能与基本逻辑结构,对本例中的可编程并行接口适当简化,得到整个器件的逻辑功能结构及其信息交互如图6.1所示。2器件逻辑与功能结构参考8255的典型功能与基第6章 常用接口控制电路图6.1 可编程并行接口器件的逻辑功能结构及其信息交互图6.1 可编程并行接口器件的逻辑功能结构及其信息交互第6章 常用接口控制电路3实现原理实现原理参照前述的器件逻辑结构,本例通过多进程描述实现相应的可编程并行接口。根据器件功能与数据处理过程,分别设计专用电路的模式设置、数据写入、输出控制等进程,各进程间的输入/输出与启动关系如图6.2所示。3实现原理参照前述的器件逻辑结构,本例通过多进第6章 常用接口控制电路图6.2 并口器件的进程与启动关系图6.2 并口器件的进程与启动关系第6章 常用接口控制电路6.1.2 电路的电路的VHDL描述描述参照图6.2所述的接口电路描述结构,设定本例的并行接口的8位双向数据端口为D、两位地址输入端为A、器件片选端为CS,器件的数据写入端、读出端分别定义为WR、RD,且均为低电平有效。器件并行端口为PA、PB,均为8位双向并行接口。为便于器件描述,在编程实现时,程序的所有端口、变量、信号定义以及进程设计与图6.2中的描述严格一致,电路的VHDL实现程序如下。6.1.2 电路的VHDL描述参照图6.2所述的接第6章 常用接口控制电路例6-1-1 8位可编程并行接口器件的VHDL描述:例6-1-1 8位可编程并行接口器件的VHDL描述:第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路6.1.3 电路实现电路实现1项目创建与编译项目创建与编译利用6.1.2节中的VHDL程序描述并行并口器件,将其作为设计项目的顶层实体,实现8位并行接口电路。创建项目时,项目名称、顶层实体名称保持一致,均设置为mPIO,顶层实体的VHDL实现程序名称与顶层实体严格一致,命名为mPIO.vhd。根据程序复杂程度,初选MAX II系列的CPLD作为并口电路的实现器件,具体器件由开发系统根据编译结果自行选择。6.1.3 电路实现1项目创建与编译利用6第6章 常用接口控制电路如图6.3所示为按照上述方法创建的8位可编程并行接口器件mPIO的实现项目及其编译结果。根据器件所需要的逻辑复杂程度、I/O端口数量等资源状况,开发系统在MAX II系列的CPLD中初步选择使用器件EPM240T100C3来实现电路;器件提供240个逻辑宏单元,电路实际占用70个宏单元,宏单元占用率为29%;器件提供80个I/O端口,占用37个端口,端口占用率为46%。EPM240T100C3器件采用100脚TQFP封装,速度等级为C3,相对较高。如图6.3所示为按照上述方法创建的8位可编程并行接口器第6章 常用接口控制电路图6.3 8位可编程并行接口器件mPIO的项目实现及编译结果图6.3 8位可编程并行接口器件mPIO的项目实现及编译结第6章 常用接口控制电路2器件、引脚分配器件、引脚分配根据上述编译结果,初选器件EPM240T100C3完全可以满足本例的并口器件,且宏单元占有率仅为29%,端口占用率仅为46%,容许以后对器件的控制逻辑进行一定的修改以升级系统;所选PLD为3.3 V低功耗器件,TQFP封装面积较小,速度等级较高,器件选择较合理,因此考虑到后续的制版、布线等问题本例最终指定在项目中使用器件EPM240T100C3,本例中并行接口mPIO的引脚分配与器件指定如图6.4所示。2器件、引脚分配根据上述编译结果,初选器件EP第6章 常用接口控制电路图6.4 并行接口mPIO的引脚与器件分配图6.4 并行接口mPIO的引脚与器件分配第6章 常用接口控制电路图中的带阴影引脚为已分配信号的引脚,按逆时针顺序,从引脚1到引脚77,端口上被分配的信号依次为并行接口的8位双向数据端D、片选信号CS、地址信号A、控制计算机读信号Rd、写信号Wr、A口外设响应nAckA、选通nStbA、输入缓冲满标志nIbfA、输出缓冲满标志nObfA、端口PA、端口PB、输出缓冲满标志nObfB、输入缓冲满标志nIbfB、外设响应nAckB、选通nStbB。各信号与实现器件引脚之间的详细对应关系如表6.1所示。图中的带阴影引脚为已分配信号的引脚,按逆时针顺序,从引第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路6.1.4 电路测试及分析电路测试及分析1功能仿真功能仿真如图6.5所示为8位可编程并行接口mPIO的仿真输入波形文件,图中仿真栅格设置为20 ns,仿真总时长设置为2s。图中的信号D为控制计算机双向数据总线的数据设置情况,Data为仿真工作中电路数据总线D上的实际信号变化状况;同样,信号PA、PB为并行端口上的数据设置情况,响应的信号rPA与rPB分别为端口PA、PB在电路仿真工作过程中的实际信号变化状况。6.1.4 电路测试及分析1功能仿真如图6第6章 常用接口控制电路图6.5 可编程并行接口mPIO的仿真输入图6.5 可编程并行接口mPIO的仿真输入第6章 常用接口控制电路在上述仿真激励作用下,并行接口mPIO的仿真输出波形如图6.6所示。图6.6 可编程并行接口mPIO的仿真结果在上述仿真激励作用下,并行接口mPIO的仿真输出波形如第6章 常用接口控制电路2时序分析时序分析通过Processing菜单下的时间分析工具,得到8位并行接口mPIO的时序分析结果如图6.7所示。其中输出延迟时间tpd、数据建立时间tsu、时钟输出延迟时间tco与信号保持时间th见图中的时间分析工具窗Classic Timing Analyzer Tool。2时序分析通过Processing菜单下的时间第6章 常用接口控制电路图6.7 并行接口mPIO的时序分析及结果图6.7 并行接口mPIO的时序分析及结果第6章 常用接口控制电路6.2 可编程定时可编程定时/计数电路计数电路6.2.1 逻辑功能与分析逻辑功能与分析1功能分析功能分析定时计数功能是计算机控制系统的基本功能单元,主要为计算机及其他功能电路提供精确的时间控制、脉冲计数等功能。8253是一种典型的可编程定时/计数电路,器件具有8位外部CPU并行接口,内置0、1、2三个16位计数器。6.2 可编程定时/计数电路6.2.1 逻辑功能与第6章 常用接口控制电路考虑到兼容性与通用性,本例的可编程定时/计数电路保留8253传统的8位CPU并行总线接口,同时内部保留3个16位的定时/计数电路,依次命名为计数器0、1与计数器2。每个计数器均具有6种工作模式,通过编程,各计数器可分别工作于模式05。器件中同样设置了计数器0、1、2的计数值专用寄存器与工作模式控制字寄存器,器件需占用4个地址以及两条地址总线。本例的可编程定时/计数电路的逻辑功能结构及其信息交互如图6.8所示。考虑到兼容性与通用性,本例的可编程定时/计数电路保留8第6章 常用接口控制电路图6.8 可编程定时/计数电路的逻辑功能结构及信息交互图6.8 可编程定时/计数电路的逻辑功能结构及信息交互第6章 常用接口控制电路在图6.8中,定时/计数器件通过8位的CPU读写控制电路,接收外部计算机提供的地址、数据与控制信息,根据地址、控制条件分别收发各定时/计数电路的模式控制字、计数值等数据。各计数器电路在计数与I/O控制电路作用下,根据外部计算机设定的计数参数、模式控制参数,实现器件要求的定时/计数功能。同时,各计数器定时送出当前计数值,供外部计算机查询。在图6.8中,定时/计数器件通过8位的CPU读写控制电第6章 常用接口控制电路2工作模式及控制工作模式及控制本例的定时/计数电路共有6种工作模式,在实际系统中实现定时或计数时,需首先通过外部计算机设定器件的工作模式,才能启动电路实现预定功能。1)模式控制字定时/计数电路的工作模式控制字共8位,按照功能分别为工作模式选择位、计数器选择位与保留位三部分,如表6.2所示。2工作模式及控制本例的定时/计数电路共有6种工第6章 常用接口控制电路其中,数据位D(5)和D(4)为计数器选择位,取值“00”“10”依次对应于定时/计数器件的计数器0计数器2;数据位D(2)、D(1)、D(0)为相应计数器的工作模式选择位,取值“000”“101”依次对应计数器的工作模式1工作模式5。各计数器的缺省工作模式为模式0,若器件未设定工作模式则按模式0工作。其中,数据位D(5)和D(4)为计数器选择位,取第6章 常用接口控制电路2)模式0-计数结束中断在定时/计数器件中,各计数器工作于模式0时的工作时序如图6.9所示。图6.9 定时/计数电路工作模式0的工作时序2)模式0-计数结束中断在定时/计数器件中,各第6章 常用接口控制电路工作于模式0时,计数器响应计数脉冲,在脉冲的下降沿上,计数器做减1运算,减至0值,计数结束。计数结束后,计数值不能重装,如需重新计数,需重新写入计数值。门控信号控制计数过程,若门控信号为“1”,计数启动;若为“0”,计数暂停。计数器工作模式0的特点如下:(1)写入计数值,计数值立即装入计数器;当门控信号为“1”时,计数器响应CLK下降沿,做减运算,输出变为低电平。当计数值减至0时,计数结束,输出变为高电平。(2)重新计数需重写计数值。(3)计数过程中写入新值,计数器按新值重新计数。(4)若门控信号为“0”,暂停计数;若门控信号为“1”,计数继续。工作于模式0时,计数器响应计数脉冲,在脉冲的下降沿上,第6章 常用接口控制电路3)模式1可编程单脉冲发生器定时/计数电路工作于模式1时的工作时序如图6.10所示。电路工作于模式1时,门控信号的上升沿启动计数;计数开始时,输出端变为低电平,在计数脉冲的下降沿上,计数器执行减计数,减至“0”时,输出变为高电平。若门控信号端出现上升沿,计数器装入计数初值,重新开始计数。3)模式1可编程单脉冲发生器定时/计数电路第6章 常用接口控制电路图6.10 定时/计数电路工作模式1的工作时序图6.10 定时/计数电路工作模式1的工作时序第6章 常用接口控制电路计数器工作模式1的特点如下:(1)门控信号出现升沿,电路响应计数脉冲下降沿启动计数,输出变为低电平;计数结束时,输出恢复高电平。(2)计数完成后,如门控信号端重新出现升沿,计数器重装计数初值并重新计数。(3)若在计数过程中门控信号端出现升沿,则按计数初值重新计数,输出端电平状态不变。(4)若在计数过程中写入新计数值,立即按新值计数。计数器工作模式1的特点如下:(1)门控信号出现第6章 常用接口控制电路4)模式2频率发生器定时/计数电路按模式2工作时的时序如图6.11所示。电路工作于模式2时,计数器初始输出为高电平,如GATE为高电平,计数器响应计数脉冲的下降沿,执行减计数。当计数值减至“1”时,计数器输出端变为低电平并维持一个计数脉冲周期;然后,计数器重新装入原始计数值,计数器输出端输出一个周期的低电平后,重新变为高电平,开始新一轮计数。4)模式2频率发生器定时/计数电路按模式2第6章 常用接口控制电路图6.11 定时/计数电路工作模式2的工作时序图6.11 定时/计数电路工作模式2的工作时序第6章 常用接口控制电路计数器工作模式2的特点如下:(1)计数器工作于模式2时可以实现重复计数,即计数器响应脉冲的下降沿,执行减计数,计数值减到数值“1”时,电路输出单周期的负脉冲;然后,电路自动重装计数值,计数器输出回变为电平,开始新一轮的计数过程。(2)计数器连续工作,输出固定频率的脉冲。(3)当门控信号G为高电平时,允许计数;为低电平时,暂停计数。计数器工作模式2的特点如下:(1)计数器工作于第6章 常用接口控制电路5)模式3方波发生器定时/计数电路工作于模式3时的工作时序如图6.12所示。定时/计数电路工作于模式3时,如果门控信号G为高电平,计数器响应计数脉冲的下降沿,执行减计数,输出端输出并保持高电平;当计数值减至计数初值的1/2时,计数器输出端转为低电平并保持;一次计数结束后,器件重装计数初值,计数输出回复高电平,开始新一轮的计数过程。5)模式3方波发生器定时/计数电路工作于模第6章 常用接口控制电路图6.12 定时/计数电路工作模式3的工作时序图6.12 定时/计数电路工作模式3的工作时序第6章 常用接口控制电路当计数初值为偶数时,计数值减到N/2,计数输出端发生变化;当计数初值为奇数时,计数值减到(N-1)/2,计数输出端转为低电平。计数器工作模式3的特点如下:(1)定时/计数电路的工作模式3与工作模式2类似,计数初值能够自动重装,产生固定频率的方波。(2)计数初值为偶数时,在前半计数周期内,计数器输出高电平,后半计数周期输出低电平,即产生等距方波。(3)计数初值为奇数时,脉宽较脉间多一个计数脉冲周期。(4)当门控信号G为高电平时,允许计数;当G为低电平时,禁止计数。在计数过程中,G变为低电平,立即终止计数;G重新变为高电平时,计数器恢复计数初值,重新开始计数。当计数初值为偶数时,计数值减到N/2,计数输出端发生变第6章 常用接口控制电路6)模式4软件触发的选通信号发生器 定时/计数电路工作于模式4的工作时序如图6.13所示。定时/计数电路以模式4工作时,若门控G为高电平,计数器响应计数脉冲的下降沿,计数器输出高电平,执行减计数;计数值减至0,计数输出端输出一个计数脉冲周期的负脉冲,然后恢复高电平,计数结束。6)模式4软件触发的选通信号发生器 定时/计第6章 常用接口控制电路图6.13 定时/计数电路工作模式4的工作时序图6.13 定时/计数电路工作模式4的工作时序第6章 常用接口控制电路器件工作模式4的特点如下:(1)如果G为高电平,计数器开始减计数,OUT保持高电平,减至0时,OUT输出低电平,产生1个时钟周期的负脉冲。(2)计数结束后,计数器不重装计数值,只有重新写入计数值,才可重新计数。(3)在计数过程中,若G变为低电平,则停止计数;G恢复高电平后,继续计数且不从计数初值开始计数。(4)在计数过程中写入新计数初值,立即按新计数初值计数。器件工作模式4的特点如下:(1)如果G为高电平第6章 常用接口控制电路7)模式5硬件触发的选通信号发生器工作于方式5时,计数器的工作时序如图6.14所示。定时/计数电路工作于方式5时,门控信号G的上升沿启动计数,每来一个时钟下降沿,计数值减1,当计数值减到0时,计数器输出端产生一个时钟周期的负脉冲。一个计数周期结束后,若G端再次出现上升沿,计数器装入原计数初值,重新开始计数。7)模式5硬件触发的选通信号发生器工作于方第6章 常用接口控制电路图6.14 定时/计数电路工作模式5的工作时序图6.14 定时/计数电路工作模式5的工作时序第6章 常用接口控制电路计数器工作模式5的特点如下:(1)当门控信号G的上升沿到来时,开始计数;计数到0时,输出一个宽度为1个计数脉冲周期的负脉冲。(2)门控信号G上升沿无条件触发计数过程,每来一个G的上升沿,计数器均从头开始计数。(3)在计数过程中写入新值,计数不受影响,若G信号出现上升沿,则电路按新值计数。计数器工作模式5的特点如下:(1)当门控信号G第6章 常用接口控制电路3实现原理实现原理参照前述的器件逻辑结构与功能描述,本例通过结构化描述结合多进程描述的描述方法实现预定的定时/计数功能。对应于电路功能与数据处理过程,分别设计专用电路的模式设置、计数值写入、计数控制等7个进程,各进程间的输入、输出逻辑关系与启动关系如图6.15所示。3实现原理参照前述的器件逻辑结构与功能描述,本第6章 常用接口控制电路在图示结构中,写进程CntWrtP、模式设置进程MdSet、读进程RdP、计数值获取进程RData以及读控制RdCon实现器件与外部其他电路的数据交换,器件提供标准CPU并行接口及协议;复位控制进程RstCon、计数控制进程CntP实现模式0模式5的定时/计数功能。其中,进程CntWrtP与MdSet响应标准CPU并行接口写时序,分别写入各计数器的计数值与工作模式控制字;进程RdP响应外部CPU的读时序,根据地址信息,将计数器的当前计数值或状态信息送上数据总线D;进程RData响应读信号Rd,根据地址信息获取对应计数器的当前计数值,供进程RdP检索。在图示结构中,写进程CntWrtP、模式设置进程MdS第6章 常用接口控制电路图6.15 可编程定时/计数器的进程设计与启动关系图6.15 可编程定时/计数器的进程设计与启动关系第6章 常用接口控制电路6.2.2 电路的电路的VHDL描述描述1顶层实体顶层实体mTCnt的的VHDL描述描述考虑到器件的通用性,在设计顶层实体mTCnt时,设定并行接口的数据总线D为8位双向数据端口、两位地址输入为A、片选为CS,写、读信号分别定义为Wr、Rd,且低电平有效。为便于描述,程序中的端口、变量、信号定义与器件的结构、功能以及进程关系描述一致,顶层实体mTCnt的VHDL实现程序如下。6.2.2 电路的VHDL描述1顶层实体mTCn第6章 常用接口控制电路例6-2-1 可编程定时/计数电路顶层实体mTCnt的VHDL描述:例6-2-1 可编程定时/计数电路顶层实体mTCnt第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路2计数器计数器mCnt的的VHDL描述描述实体mCnt实现针对计数脉冲的定时与计数功能。根据器件的进程结构,实体mCnt的结构体中主要包括计数重装进程RstCon与定时计数进程CntP,实现代码如下。例6-2-2 可编程定时/计数电路的计数实体mCnt的VHDL描述:2计数器mCnt的VHDL描述实体mCnt实现第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路6.2.3 电路实现电路实现1项目创建与编译项目创建与编译采用前一节中的VHDL程序描述定时/计数电路的各个构成进程,创建设计项目,实现16位可编程定时/计数器件。项目名称与顶层实体名称保持一致,均设置为mTCnt。顶层实体的VHDL实现程序名称与顶层实体严格一致,命名为mTCnt.vhd;计数器实体描述文件与实体命名一致,命名为mCnt.h。6.2.3 电路实现1项目创建与编译采用前第6章 常用接口控制电路相对于前述章节中的实例电路,本例中的可编程定时/计数器具有一定的逻辑复杂程度,考虑到逻辑规模,本例初选MAX II系列的CPLD作为定时/计数电路的实现器件,具体器件型号参照开发系统的编译结果另行指定。如图6.16所示为按照上述方法创建的可编程定时/计数器件mTCnt的实现项目及其编译结果。相对于前述章节中的实例电路,本例中的可编程定时/计数器具有第6章 常用接口控制电路图6.16 可编程定时/计数器件的项目实现及编译结果图6.16 可编程定时/计数器件的项目实现及编译结果第6章 常用接口控制电路2器件、引脚分配器件、引脚分配根据编译结果,器件EPM570T100C3能够满足电路的所有预定功能,宏单元占有率为64%,端口占用率仅为29%,允许以后对电路控制逻辑进行小幅修改,实现系统升级;同时,EPM570T100C3为3.3V低功耗器件,封装面积较小,速度等级较高,器件选择较合理。兼顾后续制版、布线等操作,本例的定时/计数电路引脚分配与器件指定如图6.17所示。2器件、引脚分配根据编译结果,器件EPM570第6章 常用接口控制电路图6.17 可编程定时/计数器件的引脚与器件分配图6.17 可编程定时/计数器件的引脚与器件分配第6章 常用接口控制电路图中带阴影引脚为已分配引脚,信号与器件引脚之间的具体对应关系如表6.3所示。图中带阴影引脚为已分配引脚,信号与器件引脚之间的具体对第6章 常用接口控制电路6.2.4 电路测试及分析电路测试及分析1功能仿真功能仿真如图6.18所示为定时/计数电路的仿真输入,图6.19所示为电路工作于模式0时的工作时序。6.2.4 电路测试及分析1功能仿真如图6第6章 常用接口控制电路图6.18 可编程定时/计数器件的仿真输入图6.18 可编程定时/计数器件的仿真输入第6章 常用接口控制电路图6.19 可编程定时/计数器件模式0的仿真结果图6.19 可编程定时/计数器件模式0的仿真结果第6章 常用接口控制电路工作于模式1时,计数器的工作时序波形模拟如图6.20所示。在图中的工作时序中,控制计算机向地址“11”(模式寄存器地址)依次写入模式控制字01H、11H与21H,将计数器02的工作模式分别设置为模式1;然后,将16位计数值0007H分别写入计数器0、1、2(地址依次为“00”、“01”、“10”)。之后,3个计数器的门控G出现上升沿(由“111”转为“000”),3个计数器响应Clk,开始模式1计数。工作于模式1时,计数器的工作时序波形模拟如图6.20所第6章 常用接口控制电路图6.20 可编程定时/计数器件模式1的仿真结果图6.20 可编程定时/计数器件模式1的仿真结果第6章 常用接口控制电路如图6.21所示为计数器作于模式2时的工作时序模拟,计数器工作于模式3时的时序模拟如图6.22所示。如图6.21所示为计数器作于模式2时的工作时序模拟,计第6章 常用接口控制电路图6.21 可编程定时/计数器件模式2的仿真结果图6.21 可编程定时/计数器件模式2的仿真结果第6章 常用接口控制电路图6.22 可编程定时/计数器件模式3的仿真结果图6.22 可编程定时/计数器件模式3的仿真结果第6章 常用接口控制电路图6.23所示为工作于模式4时计数器的工作时序,计数器工作于模式5时的工作时序如图6.24所示。图6.23所示为工作于模式4时计数器的工作时序,计数器第6章 常用接口控制电路图6.23 可编程定时/计数器件模式4的仿真结果图6.23 可编程定时/计数器件模式4的仿真结果第6章 常用接口控制电路图6.24 可编程定时/计数器件模式5的仿真结果图6.24 可编程定时/计数器件模式5的仿真结果第6章 常用接口控制电路2时序分析时序分析通过Processing菜单下的时间分析工具Classic Timing Analyzer Tool,得到可编程定时/计数器件的时序分析结果如图6.25所示。其中,器件的输出延迟时间tpd、数据建立时间tsu、时钟输出延迟时间tco与信号保持时间th等详细参数见图中的时间分析工具窗Classic Timing Analyzer Tool。2时序分析通过Processing菜单下的时间第6章 常用接口控制电路图6.25 可编程定时/计数器件的时序分析及结果图6.25 可编程定时/计数器件的时序分析及结果第6章 常用接口控制电路6.3 SPI总线接口器件总线接口器件6.3.1 逻辑功能与分析逻辑功能与分析1功能分析功能分析串行数据接口电路是现代计算机系统,尤其是嵌入式计算机系统内部以及系统之间数据交换、传输的重要部件。与并行接口相比,串行接口及其通信协议具有接线少、传输方便等优势,在远距离、高速数据传输等场合应用广泛。6.3 SPI总线接口器件6.3.1 逻辑功能与分第6章 常用接口控制电路2器件逻辑与功能结构器件逻辑与功能结构为便于设计,本例采用图6.26所示的逻辑功能结构。本例中的器件作为SPI的从器件使用,具有1个SPI接口以及端口信号Sck、nSS、MOSI、MISO,与标准SPI协议一致。器件具有16位并行输入、输出接口各1个,分别命名为并行端口InP与OutP;应答信号与选通信号各一个,分别为nAck、nSTB;输入、输出缓冲满标志各一个,分别为InBF与OutBF。2器件逻辑与功能结构为便于设计,本例采用图6.第6章 常用接口控制电路图6.26 SPI接口器件的逻辑功能结构图6.26 SPI接口器件的逻辑功能结构第6章 常用接口控制电路在图6.26中,接口器件通过MOSI接收控制计算机的数据信息,将其转化为并行数据送至输出缓冲,同时置位输出缓冲标志;然后,器件响应信号nAck,将数据发至端口OutP,清除输出缓冲标志;接收数据时,InP将外设数据送入输入缓冲,输入输出控制置输入缓冲标志为高,SPI收发控制获取输入缓冲并将其转换为串行数据,响应Sck,逐位将数据发至MISO端。在图6.26中,接口器件通过MOSI接收控制计算机的数第6章 常用接口控制电路3实现原理实现原理参照器件逻辑功能,本例通过多进程实现预定的控制逻辑,各进程间的输入、输出关系与启动关系如图6.27所示。图中的接口控制逻辑由SPI数据收进程OutCon、输出标志控制进程OutFlg、输出进程OutProc与SPI数据发进程InCon、输入进程InProc、输入标志控制进程InFlg构成。3实现原理参照器件逻辑功能,本例通过多进程实现第6章 常用接口控制电路图6.27 SPI总线接口器件的进程与启动关系图6.27 SPI总线接口器件的进程与启动关系第6章 常用接口控制电路6.3.2 电路的电路的VHDL描述描述本例所用的SPI协议工作时序设置如图6.28所示。执行数据传输时,nSS变为低电平,SPI主、从机分别响应数据时钟Sck,在Sck上升沿上发送串行数据各数据位,在Sck下降沿上接收各串行数据位。参照前述的电路逻辑功能结构与集成关系,实现器件。6.3.2 电路的VHDL描述本例所用的SPI协议第6章 常用接口控制电路图6.28 本例所用的SPI协议工作时序图6.28 本例所用的SPI协议工作时序第6章 常用接口控制电路为便于器件描述,在编程实现时,程序的所有端口、变量、信号定义以及进程设计与图6.27中的描述一致,电路的VHDL描述程序如下。例6-3-1 SPI总线接口器件的VHDL描述程序:为便于器件描述,在编程实现时,程序的所有端口、变量、信第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路描述程序的实体名称设置为mSPI,采用SPI标准端口,信号包括主机数据输出/从机数据输入MOSI(Master Output Slave Input)、主机数据输入/从机数据输出MISO(Master Input Slave Output)、数据时钟Sck与从机选择端nSS。此外,器件端口还包括16位数据输入端口InP、16位数据输出端口OutP、输入选通信号nStb、输出响应信号nAck、输出缓冲满标志OutBF与输入缓冲满标志InBF。为便于实现,描述程序设计输入缓冲InBuf与输出缓冲OutBuf,分别暂存来自SPI的输出数据与来自外设的输入数据。描述程序的实体名称设置为mSPI,采用SPI标准端口,第6章 常用接口控制电路执行数据输出操作时,如果输出缓冲满标志iOutBF为低电平且nSS有效,进程OutCon响应SPI数据时钟Sck下降沿,采样端口MOSI,依次获取各输出数据位,送入输出缓冲OutBuf。一帧数据(16位)接受结束后,进程OutCon发出信号iTrD,通知进程OutFlg修改输出缓冲满标志iOutBF;然后,OutFlg修改标志iOutBF,OutCon检测到iOutBF变为高电平,撤销iTrD;iOutBF变化引起端口OutBF变化。外设收到OutBF,发出响应信号nAck,OutProc响应nAck下降沿,将OutBuf送至端口OutP;同时,nAck下降沿触发进程OutFlg,清除输出缓冲满标志iOutBF,端口OutBF清零,数据输出完成。执行数据输出操作时,如果输出缓冲满标志iOutBF为低第6章 常用接口控制电路执行数据输入操作时,进程InProc监测选通信号nStb,当nStb下降沿来临且输入缓冲满标志无效为“0”时,InProc将端口InP的数据送入输入缓冲InBuf;同时,进程InCon响应nStb下降沿,置位输入缓冲满标志iInBF;监测到标志iInBF为高电平且nSS有效后,SPI发进程OutCon响应SPI数据时钟Sck上升沿,由高至低依次将InBuf各数据位送至端口MISO。一帧数据(16位)发送结束后,进程InCon将信号iRcDOv置为高电平,通知进程InFlg修改输入缓冲满标志iInBF;然后,InFlg将iInBF置为低电平,InCon检测到iInBF变低,清零iRcDOv;iInBF的变化引起端口InBF变化,数据输入完毕。执行数据输入操作时,进程InProc监测选通信号nSt第6章 常用接口控制电路6.3.3 电路实现电路实现1项目创建与编译项目创建与编译如图6.29所示为SPI总线接口器件mSPI的实现项目及项目编译情况。6.3.3 电路实现1项目创建与编译如图6第6章 常用接口控制电路图6.29 SPI总线接口器件mSPI的项目实现及编译图6.29 SPI总线接口器件mSPI的项目实现及编译第6章 常用接口控制电路2器件、引脚分配器件、引脚分配根据上述编译结果,初选的器件EPM240T100C3完全可以满足本例的接口器件,同时项目35%的宏单元占用率、50%端口占用率,能够为后续的逻辑功能完善、修改以及系统升级提供较大的选择余地。EPM240T100C3为3.3 V低功耗器件,封装面积较小,价格、速度等级等情况合理,后续的电路焊接以及调测试均较为方便。因此,本例为项目最终指定器件EPM240T100C3。考虑到后续制版、布线与调测试的方便性,本例的SPI总线接口器件mSPI的引脚分配与器件指定如图6.30所示。2器件、引脚分配根据上述编译结果,初选的器件E第6章 常用接口控制电路图6.30 SPI总线接口器件mSPI的引脚信号与器件分配图6.30 SPI总线接口器件mSPI的引脚信号与器件分配第6章 常用接口控制电路图中的带阴影引脚为已分配信号的引脚,从引脚5到引脚85,按照逆时针顺序,端口上分配的信号依次为:SPI总线的信号Sck、nSS、MOSI、MISO、外设响应信号nAck、16位输出端口OutP、输出缓冲满标志OutBF、选通信号nStb、16位输入端口InP、输入缓冲满标志nInBF。表6.4给出了SPI接口电路mSPI的实现器件EPM240T100C3各引脚与I/O信号的详细对应关系。图中的带阴影引脚为已分配信号的引脚,从引脚5到引脚85第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路6.3.4 电路功能测试及分析电路功能测试及分析1逻辑功能仿真逻辑功能仿真图6.31所示为SPI总线接口器件mSPI的逻辑功能仿真输入波形文件。6.3.4 电路功能测试及分析1逻辑功能仿真第6章 常用接口控制电路图6.31 SPI总线接口器件mSPI的仿真输入图6.31 SPI总线接口器件mSPI的仿真输入第6章 常用接口控制电路在图示仿真输入中,仿真栅格Grid大小设置为20 ns,仿真总时长设置为3s。图中的信号OutCon:tmp为SPI协议从机数据收进程OutCon的数据位计数器,与其相对应,信号InCon:tmp为SPI协议从机数据发进程InCon的数据位计数器。对应于每个数据时钟Sck,SPI每执行一次数据位的收发,两个信号tmp分别计数一次。收发完16位数据,两个tmp信号均清零。在上述仿真激励的作用下,SPI总线接口器件mSPI的工作时序仿真结果波形如图6.32所示。在图示仿真输入中,仿真栅格Grid大小设置为20 ns第6章 常用接口控制电路图6.32 SPI总线接口器件mSPI的逻辑功能仿真图6.32 SPI总线接口器件mSPI的逻辑功能仿真第6章 常用接口控制电路2时序分析时序分析通过Processing菜单下的时间分析工具Classic Timing Analyzer Tool,对SPI总线接口电路mSPI进行时序分析,结果如图6.33所示。其中,电路各信号的输出延迟时间tpd、数据建立时间tsu、时钟输出延迟时间tco与信号保持时间th值见图中的时间分析工具窗Classic Timing Analyzer Tool。2时序分析通过Processing菜单下的时间第6章 常用接口控制电路通过图6.33中的按钮Start,启动电路的时序分析,然后选择按钮Report,得到接口电路mSPI各时间参数的极端值,数据建立时间tsu的最大值为0.986ns,时钟输出延迟时间tco的最大值为7.276ns,数据信号保持时间th的最大值为1.447ns,Sck的最高容许频率为209.78MHz,nSTB的最高容许频率为304.04 MHz。通过图6.33中的按钮Start,启动电路的时序分析,第6章 常用接口控制电路图6.33 SPI总线接口器件mSPI的时序分析图6.33 SPI总线接口器件mSPI的时序分析第6章 常用接口控制电路6.4 堆栈堆栈(STACK)电路电路6.4.1 逻辑功能与分析逻辑功能与分析1功能分析功能分析堆栈是计算机系统中应用非常广泛的一种典型存储电路,它遵从先入后出的存取原则,常用于计算机控制过程中一些重要运行参数与数据的存储与恢复。假定某计算机控制系统中的存储电路中设置专用堆栈存储区STACK、堆栈指针SP,如图6.34所示。6.4 堆栈(STACK)电路6.4.1 逻辑功能第6章 常用接口控制电路图6.34 堆栈存储电路的结构与操作图6.34 堆栈存储电路的结构与操作第6章 常用接口控制电路2实现原理实现原理根据堆栈的定义及其操作过程的描述,本例通过多进程实现堆栈预定的各种控制逻辑,进程设计以及各进程间的输入、输出关系与启动关系如图6.35所示。2实现原理根据堆栈的定义及其操作过程的描述,本第6章 常用接口控制电路图6.35 堆栈存储电路的进程设计与启动关系图6.35 堆栈存储电路的进程设计与启动关系第6章 常用接口控制电路6.4.2 电路的电路的VHDL描述描述参照堆栈结构功能以及操作过程,考虑兼容性与通用性,本例堆栈电路采用标准8位并行接口,设置器件8位双向数据端口为D、器件片选端为CS,器件的数据写入端、读出端分别定义为WR、RD,且均为低电平有效。为方便使用,器件设置专用状态标志端口,包括堆栈空标志信号Empt与堆栈满标志Full。为便于程序理解与电路描述,在编程实现时,描述程序的所有端口、变量、信号定义以及进程设计与图6.35中的描述一致,电路的VHDL描述程序如下。6.4.2 电路的VHDL描述参照堆栈结构功能以及第6章 常用接口控制电路例6-4-1 堆栈(STACK)的VHDL描述程序:例6-4-1 堆栈(STACK)的VHDL描述程序:第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路描述程序的实体名称设置为mStck,堆栈电路mStck在正常工作时,数据的出入栈动作均会影响读写指针pRd与pWr,当数据持续入栈时,电路中的写指针pWr、读指针pRd均持续进行加1运算;数据持续出栈时,写指针pWr、读指针pRd均持续进行减1运算。同时,当堆栈为满或空状态时,读写指针相等;否则,读写指针满足条件pWr=pRd+1。描述程序的实体名称设置为mStck,堆栈电路mStck第6章 常用接口控制电路根据上述原理描述写进程WrProc与指针控制进程PntCon。写进程WrProc响应信号WR的上升沿,CS为低电平有效且堆栈mStck不为满状态,若上次操作为出栈(iDeta=1),WrProc获取读指针pRd,根据pRd计算当前写指针pWr。当上次操作为入栈(iDeta=0)时,如果pWr到达栈顶,将堆栈满标志iFull置位,调整写指针pWr。然后,写进程WrProc获取数据总线D,送入堆栈存储区DSeg中由pWr指定的存储单元DSeg(pWr),同时清除标志iDeta。由于写指针pWr的计算与上次栈操作类型有关,进程WrProc监测读信号RD,若RD发生变化、CS有效且堆栈不空(EmptF为“0”),进程WrProc将iDeta置位,供WrProc执行入栈操作时计算pWr使用。根据上述原理描述写进程WrProc与指针控制进程Pnt第6章 常用接口控制电路进程PntCon计算堆栈电路的读指针pRd,进程响应读信号的下降沿,若CS有效且堆栈不为空(EmptF为“0”),则计算堆栈读指针pRd,执行出栈操作。计算pRd时,若上次操作为压栈(iDeta=1),则PntCon获取写指针pWr,根据pWr计算当前读指针。当上次操作为出栈时,如果堆栈读指针pRd=0,则将堆栈空标志EmptF置位。同样,进程PntCon监测信号WR,若WR、CS有效且堆栈不满,PntCon清除空标志iEmpt,将iDeta置位,供PntCon在执行出栈操作时计算pRd使用。进程RdProc响应读信号RD,在CS有效且堆栈不为空时,将读指针对应的堆栈存储单元DSeg(pRd)送上数据总线D。进程PntCon计算堆栈电路的读指针pRd,进程响应读第6章 常用接口控制电路6.4.3 电路实现电路实现1项目创建与编译项目创建与编译利用上述VHDL程序描述堆栈电路器件,创建项目,将描述程序加入设计项目并作为顶层实体,实现预定的堆栈功能电路。项目的顶层实体、项目名称保持一致,均命名为mStck。同时,实体的VHDL描述程序名称与顶层实体严格对应,命名为mStck.vhd。初选MAX II系列CPLD器件实现预定的电路,图6.36所示为按照上述方法创建的堆栈电路mStck的实现项目及项目编译情况。6.4.3 电路实现1项目创建与编译利用上第6章 常用接口控制电路图6.36 堆栈电路mStck的项目实现及编译图6.36 堆栈电路mStck的项目实现及编译第6章 常用接口控制电路2器件、引脚分配器件、引脚分配根据上述编译结果,初选的器件EPM240T100C3完全可以满足本例接口器件的要求,同时项目46%的宏单元占用率、16%的端口占用率,能为后续的逻辑功能扩展、修改以及系统升级提供较大的选择余地。EPM240T100C3为3.3 V低功耗器件,集成度、价格、速度等条件较为理想。同时,TQFP封装使后续的电路焊接以及调测试更为方便。因此,本例为项目最终指定器件EPM240T100C3,考虑到后续制版、布局、布线的合理性以及调测试的方便性,本例堆栈电路mStck的引脚分配与器件指定情况如图6.37所示。2器件、引脚分配根据上述编译结果,初选的器件E第6章 常用接口控制电路图6.37 堆栈电路mStck的引脚信号与器件分配图6.37 堆栈电路mStck的引脚信号与器件分配第6章 常用接口控制电路图中的带阴影引脚为已分配信号的引脚,从引脚1到引脚67,按照逆时针顺序,端口上分配的信号依次为:双向数据总线的数据端口D、片选信号CS、计算机并行接口的读信号RD、计算机并行接口的写信号WR、堆栈电路Stck满标志Full、堆栈电路mStck空标志Empt。表6.5给出了堆栈电路mStck实现器件EPM240T100C3引脚与I/O信号的详细对应关系。图中的带阴影引脚为已分配信号的引脚,从引脚1到引脚67第6章 常用接口控制电路6.4.4 电路功能测试及分析电路功能测试及分析1逻辑功能仿真逻辑功能仿真图6.38所示为堆栈电路mStck的逻辑功能仿真输入波形文件,图中仿真栅格Grid大小设置为20ns,仿真总时长设置为3s。信号PntCon:iRd为堆栈电路mStck的读指针,与其相对应,信号WrProc:iWr为堆栈电路mStck的写指针。信号D为计算机并行接口8位双向数据端口的设定值,信号DATA为堆栈电路mStck工作时8位双向数据端口D的信号变化状况。6.4.4 电路功能测试及分析1逻辑功能仿真第6章 常用接口控制电路图6.38 堆栈电路mStck的仿真输入图6.38 堆栈电路mStck的仿真输入第6章 常用接口控制电路在上述仿真激励中的时间段30450 ns内,并行接口写信号WR连续产生下降沿,向堆栈电路mStck持续写入10个数据。此时,堆栈电路mStck的工作时序仿真结果如图6.39所示。在上述仿真激励中的时间段30450 ns内,并行接口第6章 常用接口控制电路图6.39 堆栈电路mStck持续压栈时的逻辑功能仿真图6.39 堆栈电路mStck持续压栈时的逻辑功能仿真第6章 常用接口控制电路从时刻30 ns开始,并行接口向堆栈电路mStck持续送入数据01H0AH,写指针iWr依次增加,当写至数据08H时,满标志Full变为高电平,堆栈满。在时间段520580ns内,RD连续发出读脉冲,DATA送出最后的压栈数据08H、07H。在时间段660720ns内,将数据10H、11H压栈,Full重新变为高电平。图6.40所示为mStck持续出栈情况。从时刻30 ns开始,并行接口向堆栈电路mStck持续第6章 常用接口控制电路图6.40 堆栈电路mStck持续出栈时的逻辑功能仿真图6.40 堆栈电路mStck持续出栈时的逻辑功能仿真第6章 常用接口控制电路从800 ns时刻开始,RD连续发出读脉冲,数据总线DATA端连续送出数据11H、10H、06H、05H、04H、03H、02H与01H,与前文的压栈数据顺序一一对应。在800 ns时刻,RD变为低电平,堆栈mStck开始送出数据,满标志Full迅速变低;送出8个数据后,空标志Empt置位,堆栈清空。当堆栈满后,数据随机出栈时的堆栈电路工作时序仿真结果如图6.41所示。从800 ns时刻开始,RD连续发出读脉冲,数据总线D第6章 常用接口控制电路图6.41 连续压栈堆栈满后随机出栈时电路的工作时序仿真图6.41 连续压栈堆栈满后随机出栈时电路的工作时序仿真第6章 常用接口控制电路从时刻1.28s开始,CS有效,WR连续发出写脉冲,DATA端数据20H27H依次被压入堆栈mStck。压栈开始,空标志Empt迅速变为低电平。当8个数据完成压栈后,堆栈满标志Full置位。在时刻1.74s处,RD连续发出4个随机的读信号,栈顶的4个数据27H、26H、25H与24H被送上mStck电路的数据总线DATA,此时,堆栈内顺序保留数据23H、22H、21H与20H。图6.42所示为随机压栈至堆栈满后,持续出栈时电路的工作时序仿真结果。从时刻1.28s开始,CS有效,WR连续发出写脉冲第6章 常用接口控制电路图6.42 随机状态下堆栈电路mStck压栈满后持续出栈的工作时序仿真图6.42 随机状态下堆栈电路mStck压栈满后持续出栈第6章 常用接口控制电路2时序分析时序分析通过quartus II自带的时间分析工具,对堆栈电路mStck进行时间分析。选择Processing菜单下的功能子菜单Classic Timing Analyzer Tool,运行时序分析工具,结果如图6.43所示。图中时间分析工具窗口Classic Timing Analyzer Tool列表显示电路各端口信号的输出延迟时间tpd、数据建立时间tsu、时钟输出延迟时间tco与信号保持时间th值。2时序分析通过quartus II自带的时间分第6章 常用接口控制电路图6.43 堆栈电路mStck的时序分析图6.43 堆栈电路mStck的时序分析第6章 常用接口控制电路当预定的电路逻辑功能或时间分析参数不理想或达不到设计要求时,可以修改描述程序、PLD器件或其他的器件、布局、布线等参数,重新编译仿真,以获得更高的性能与更好的输出效果。当预定的电路逻辑功能或时间分析参数不理想或达不到设计要第6章 常用接口控制电路6.5 先入先出先入先出(FIFO)电路电路6.5.1 逻辑功能与分析逻辑功能与分析1功能分析功能分析先入先出又称FIFO(First In First Out),是计算机系统结构中应用非常广泛的另外一种典型存储电路,FIFO存储电路的逻辑结构如图6.44所示。6.5 先入先出(FIFO)电路6.5.1 逻辑功第6章 常用接口控制电路图6.44 先入先出(FIFO)存储电路的结构与操作图6.44 先入先出(FIFO)存储电路的结构与操作第6章 常用接口控制电路2实现原理实现原理根据先入先出(FIFO)电路的定义、功能及其操作过程的描述,本例通过多进程实现FIFO存储电路预定的各种功能控制逻辑,电路的进程设计以及各构成进程间的输入/输出关系与启动关系如图6.45所示。2实现原理根据先入先出(FIFO)电路的定义、第6章 常用接口控制电路图6.45 先入先出(FIFO)存储电路的进程设计与启动关系图6.45 先入先出(FIFO)存储电路的进程设计与启动关第6章 常用接口控制电路6.5.2 电路的电路的VHDL描述描述参照前文的先入先出(FIFO)电路的结构功能以及操作过程分析,兼顾电路的兼容性与通用性,本例中FIFO电路的外部端口采用标准8位并行接口,端口的数据端设置为8位双向数据总线D、器件片选端端口设置为CS,读、写信号端分别定义为WR、RD,均为低电平有效。为便于数据交换,FIFO电路中设置专用端口来描述器件存储区的空满状态,包括空标志端口Empt与满标志端口Full。6.5.2 电路的VHDL描述参照前文的先入先出(第6章 常用接口控制电路为便于程序理解与电路描述,描述程序的所有端口、变量、信号定义以及进程设计与前文的逻辑功能、过程描述一致,FIFO电路的VHDL实现程序如下。例6-5-1 先入先出(FIFO)电路的VHDL描述程序:为便于程序理解与电路描述,描述程序的所有端口、变量、信第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路电子设计自动化第6章课件第6章 常用接口控制电路描述程序的实
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!