




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章常用接口控制电路6.1可编程并行接口电路6.2可编程定时/计数电路6.3SPI总线接口器件6.4堆栈(STACK)电路6.5先入先出(FIFO)电路习题与思考第6章常用接口控制电路6.1可编程并行接口电路
6.1可编程并行接口电路
6.1.1逻辑功能与分析
1.功能分析数据接口电路是计算机控制系统的重要构成单元,为系统计算机及各构成电路提供数据转换、传送通道,实现系统内不同构成单元之间的动态数据交互。相对而言,并行接口能够一次实现多位数据的传输交换,无需串并转换及并串转换电路,具有结构简单、传输速度高等优势,是计算机控制系统中应用较为广泛的一种数据接口。
6.1可编程并行接口电路
6.1.1逻辑功能与分
8255是一种典型的传统可编程并行接口器件,具有A、B、C三个8位并行接口,根据需要,可通过编程配置为通用输入/输出端口、带选通的输入/输出端口、双向传输端口等工作模式,同时,端口C具备位操作功能,器件的端口A或B工作于选通输入/输出或双向传输模式时,端口C的相关数据位可用作选通或状态信号,辅助完成计算机与外设的数据传输任务。8255器件具有A0、A1两条地址线,占用4个地址,分别为A、B、C接口地址与控制字寄存器地址。
8255是一种典型的传统可编程并行接口器件,具有A、B
2.器件逻辑与功能结构
参考8255的典型功能与基本逻辑结构,对本例中的可编程并行接口适当简化,得到整个器件的逻辑功能结构及其信息交互如图6.1所示。
2.器件逻辑与功能结构
参考8255的典型功能与基图6.1可编程并行接口器件的逻辑功能结构及其信息交互图6.1可编程并行接口器件的逻辑功能结构及其信息交互
3.实现原理
参照前述的器件逻辑结构,本例通过多进程描述实现相应的可编程并行接口。根据器件功能与数据处理过程,分别设计专用电路的模式设置、数据写入、输出控制等进程,各进程间的输入/输出与启动关系如图6.2所示。
3.实现原理
参照前述的器件逻辑结构,本例通过多进图6.2并口器件的进程与启动关系图6.2并口器件的进程与启动关系
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-1-1
8位可编程并行接口器件的VHDL描述:
例6-1-18位可编程并行接口器件的VHDL描述:电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件
6.1.3电路实现
1.项目创建与编译
利用6.1.2节中的VHDL程序描述并行并口器件,将其作为设计项目的顶层实体,实现8位并行接口电路。创建项目时,项目名称、顶层实体名称保持一致,均设置为mPIO,顶层实体的VHDL实现程序名称与顶层实体严格一致,命名为mPIO.vhd。根据程序复杂程度,初选MAXII系列的CPLD作为并口电路的实现器件,具体器件由开发系统根据编译结果自行选择。
6.1.3电路实现
1.项目创建与编译
利用6
如图6.3所示为按照上述方法创建的8位可编程并行接口器件mPIO的实现项目及其编译结果。根据器件所需要的逻辑复杂程度、I/O端口数量等资源状况,开发系统在MAXII系列的CPLD中初步选择使用器件EPM240T100C3来实现电路;器件提供240个逻辑宏单元,电路实际占用70个宏单元,宏单元占用率为29%;器件提供80个I/O端口,占用37个端口,端口占用率为46%。EPM240T100C3器件采用100脚TQFP封装,速度等级为C3,相对较高。
如图6.3所示为按照上述方法创建的8位可编程并行接口器图6.3
8位可编程并行接口器件mPIO的项目实现及编译结果图6.38位可编程并行接口器件mPIO的项目实现及编译结
2.器件、引脚分配
根据上述编译结果,初选器件EPM240T100C3完全可以满足本例的并口器件,且宏单元占有率仅为29%,端口占用率仅为46%,容许以后对器件的控制逻辑进行一定的修改以升级系统;所选PLD为3.3
V低功耗器件,TQFP封装面积较小,速度等级较高,器件选择较合理,因此考虑到后续的制版、布线等问题本例最终指定在项目中使用器件EPM240T100C3,本例中并行接口mPIO的引脚分配与器件指定如图6.4所示。
2.器件、引脚分配
根据上述编译结果,初选器件EP图6.4并行接口mPIO的引脚与器件分配图6.4并行接口mPIO的引脚与器件分配
图中的带阴影引脚为已分配信号的引脚,按逆时针顺序,从引脚1到引脚77,端口上被分配的信号依次为并行接口的8位双向数据端D、片选信号CS、地址信号A、控制计算机读信号Rd、写信号Wr、A口外设响应nAckA、选通nStbA、输入缓冲满标志nIbfA、输出缓冲满标志nObfA、端口PA、端口PB、输出缓冲满标志nObfB、输入缓冲满标志nIbfB、外设响应nAckB、选通nStbB。各信号与实现器件引脚之间的详细对应关系如表6.1所示。
图中的带阴影引脚为已分配信号的引脚,按逆时针顺序,从引电子设计自动化第6章课件
6.1.4电路测试及分析
1.功能仿真
如图6.5所示为8位可编程并行接口mPIO的仿真输入波形文件,图中仿真栅格设置为20
ns,仿真总时长设置为2 μs。图中的信号D为控制计算机双向数据总线的数据设置情况,Data为仿真工作中电路数据总线D上的实际信号变化状况;同样,信号PA、PB为并行端口上的数据设置情况,响应的信号rPA与rPB分别为端口PA、PB在电路仿真工作过程中的实际信号变化状况。
6.1.4电路测试及分析
1.功能仿真
如图6图6.5可编程并行接口mPIO的仿真输入图6.5可编程并行接口mPIO的仿真输入
在上述仿真激励作用下,并行接口mPIO的仿真输出波形如图6.6所示。
图6.6可编程并行接口mPIO的仿真结果
在上述仿真激励作用下,并行接口mPIO的仿真输出波形如
2.时序分析
通过Processing菜单下的时间分析工具,得到8位并行接口mPIO的时序分析结果如图6.7所示。其中输出延迟时间tpd、数据建立时间tsu、时钟输出延迟时间tco与信号保持时间th见图中的时间分析工具窗ClassicTimingAnalyzerTool。
2.时序分析
通过Processing菜单下的时间图6.7并行接口mPIO的时序分析及结果图6.7并行接口mPIO的时序分析及结果
6.2可编程定时/计数电路
6.2.1逻辑功能与分析
1.功能分析定时计数功能是计算机控制系统的基本功能单元,主要为计算机及其他功能电路提供精确的时间控制、脉冲计数等功能。8253是一种典型的可编程定时/计数电路,器件具有8位外部CPU并行接口,内置0、1、2三个16位计数器。
6.2可编程定时/计数电路
6.2.1逻辑功能与
考虑到兼容性与通用性,本例的可编程定时/计数电路保留8253传统的8位CPU并行总线接口,同时内部保留3个16位的定时/计数电路,依次命名为计数器0、1与计数器2。每个计数器均具有6种工作模式,通过编程,各计数器可分别工作于模式0~5。器件中同样设置了计数器0、1、2的计数值专用寄存器与工作模式控制字寄存器,器件需占用4个地址以及两条地址总线。本例的可编程定时/计数电路的逻辑功能结构及其信息交互如图6.8所示。
考虑到兼容性与通用性,本例的可编程定时/计数电路保留8图6.8可编程定时/计数电路的逻辑功能结构及信息交互图6.8可编程定时/计数电路的逻辑功能结构及信息交互
在图6.8中,定时/计数器件通过8位的CPU读写控制电路,接收外部计算机提供的地址、数据与控制信息,根据地址、控制条件分别收发各定时/计数电路的模式控制字、计数值等数据。各计数器电路在计数与I/O控制电路作用下,根据外部计算机设定的计数参数、模式控制参数,实现器件要求的定时/计数功能。同时,各计数器定时送出当前计数值,供外部计算机查询。
在图6.8中,定时/计数器件通过8位的CPU读写控制电
2.工作模式及控制
本例的定时/计数电路共有6种工作模式,在实际系统中实现定时或计数时,需首先通过外部计算机设定器件的工作模式,才能启动电路实现预定功能。
1)模式控制字
定时/计数电路的工作模式控制字共8位,按照功能分别为工作模式选择位、计数器选择位与保留位三部分,如表6.2所示。
2.工作模式及控制
本例的定时/计数电路共有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)为计数器选择位,取
2)模式0-计数结束中断
在定时/计数器件中,各计数器工作于模式0时的工作时序如图6.9所示。
图6.9定时/计数电路工作模式0的工作时序
2)模式0-计数结束中断
在定时/计数器件中,各
工作于模式0时,计数器响应计数脉冲,在脉冲的下降沿上,计数器做减1运算,减至0值,计数结束。计数结束后,计数值不能重装,如需重新计数,需重新写入计数值。门控信号控制计数过程,若门控信号为“1”,计数启动;若为“0”,计数暂停。计数器工作模式0的特点如下:
(1)写入计数值,计数值立即装入计数器;当门控信号为“1”时,计数器响应CLK下降沿,做减运算,输出变为低电平。当计数值减至0时,计数结束,输出变为高电平。
(2)重新计数需重写计数值。
(3)计数过程中写入新值,计数器按新值重新计数。
(4)若门控信号为“0”,暂停计数;若门控信号为“1”,计数继续。
工作于模式0时,计数器响应计数脉冲,在脉冲的下降沿上,
3)模式1——可编程单脉冲发生器
定时/计数电路工作于模式1时的工作时序如图6.10所示。电路工作于模式1时,门控信号的上升沿启动计数;计数开始时,输出端变为低电平,在计数脉冲的下降沿上,计数器执行减计数,减至“0”时,输出变为高电平。若门控信号端出现上升沿,计数器装入计数初值,重新开始计数。
3)模式1——可编程单脉冲发生器
定时/计数电路图6.10定时/计数电路工作模式1的工作时序图6.10定时/计数电路工作模式1的工作时序
计数器工作模式1的特点如下:
(1)门控信号出现升沿,电路响应计数脉冲下降沿启动计数,输出变为低电平;计数结束时,输出恢复高电平。
(2)计数完成后,如门控信号端重新出现升沿,计数器重装计数初值并重新计数。
(3)若在计数过程中门控信号端出现升沿,则按计数初值重新计数,输出端电平状态不变。
(4)若在计数过程中写入新计数值,立即按新值计数。
计数器工作模式1的特点如下:
(1)门控信号出现
4)模式2——频率发生器
定时/计数电路按模式2工作时的时序如图6.11所示。电路工作于模式2时,计数器初始输出为高电平,如GATE为高电平,计数器响应计数脉冲的下降沿,执行减计数。当计数值减至“1”时,计数器输出端变为低电平并维持一个计数脉冲周期;然后,计数器重新装入原始计数值,计数器输出端输出一个周期的低电平后,重新变为高电平,开始新一轮计数。
4)模式2——频率发生器
定时/计数电路按模式2图6.11定时/计数电路工作模式2的工作时序图6.11定时/计数电路工作模式2的工作时序
计数器工作模式2的特点如下:
(1)计数器工作于模式2时可以实现重复计数,即计数器响应脉冲的下降沿,执行减计数,计数值减到数值“1”时,电路输出单周期的负脉冲;然后,电路自动重装计数值,计数器输出回变为电平,开始新一轮的计数过程。
(2)计数器连续工作,输出固定频率的脉冲。
(3)当门控信号G为高电平时,允许计数;为低电平时,暂停计数。
计数器工作模式2的特点如下:
(1)计数器工作于
5)模式3——方波发生器
定时/计数电路工作于模式3时的工作时序如图6.12所示。定时/计数电路工作于模式3时,如果门控信号G为高电平,计数器响应计数脉冲的下降沿,执行减计数,输出端输出并保持高电平;当计数值减至计数初值的1/2时,计数器输出端转为低电平并保持;一次计数结束后,器件重装计数初值,计数输出回复高电平,开始新一轮的计数过程。
5)模式3——方波发生器
定时/计数电路工作于模图6.12定时/计数电路工作模式3的工作时序图6.12定时/计数电路工作模式3的工作时序
当计数初值为偶数时,计数值减到N/2,计数输出端发生变化;当计数初值为奇数时,计数值减到(N-1)/2,计数输出端转为低电平。计数器工作模式3的特点如下:
(1)定时/计数电路的工作模式3与工作模式2类似,计数初值能够自动重装,产生固定频率的方波。
(2)计数初值为偶数时,在前半计数周期内,计数器输出高电平,后半计数周期输出低电平,即产生等距方波。
(3)计数初值为奇数时,脉宽较脉间多一个计数脉冲周期。
(4)当门控信号G为高电平时,允许计数;当G为低电平时,禁止计数。在计数过程中,G变为低电平,立即终止计数;G重新变为高电平时,计数器恢复计数初值,重新开始计数。
当计数初值为偶数时,计数值减到N/2,计数输出端发生变
6)模式4——软件触发的选通信号发生器
定时/计数电路工作于模式4的工作时序如图6.13所示。定时/计数电路以模式4工作时,若门控G为高电平,计数器响应计数脉冲的下降沿,计数器输出高电平,执行减计数;计数值减至0,计数输出端输出一个计数脉冲周期的负脉冲,然后恢复高电平,计数结束。
6)模式4——软件触发的选通信号发生器
定时/计图6.13定时/计数电路工作模式4的工作时序图6.13定时/计数电路工作模式4的工作时序
器件工作模式4的特点如下:
(1)如果G为高电平,计数器开始减计数,OUT保持高电平,减至0时,OUT输出低电平,产生1个时钟周期的负脉冲。
(2)计数结束后,计数器不重装计数值,只有重新写入计数值,才可重新计数。
(3)在计数过程中,若G变为低电平,则停止计数;G恢复高电平后,继续计数且不从计数初值开始计数。
(4)在计数过程中写入新计数初值,立即按新计数初值计数。
器件工作模式4的特点如下:
(1)如果G为高电平
7)模式5——硬件触发的选通信号发生器
工作于方式5时,计数器的工作时序如图6.14所示。定时/计数电路工作于方式5时,门控信号G的上升沿启动计数,每来一个时钟下降沿,计数值减1,当计数值减到0时,计数器输出端产生一个时钟周期的负脉冲。一个计数周期结束后,若G端再次出现上升沿,计数器装入原计数初值,重新开始计数。
7)模式5——硬件触发的选通信号发生器
工作于方图6.14定时/计数电路工作模式5的工作时序图6.14定时/计数电路工作模式5的工作时序
计数器工作模式5的特点如下:
(1)当门控信号G的上升沿到来时,开始计数;计数到0时,输出一个宽度为1个计数脉冲周期的负脉冲。
(2)门控信号G上升沿无条件触发计数过程,每来一个G的上升沿,计数器均从头开始计数。
(3)在计数过程中写入新值,计数不受影响,若G信号出现上升沿,则电路按新值计数。
计数器工作模式5的特点如下:
(1)当门控信号G
3.实现原理
参照前述的器件逻辑结构与功能描述,本例通过结构化描述结合多进程描述的描述方法实现预定的定时/计数功能。对应于电路功能与数据处理过程,分别设计专用电路的模式设置、计数值写入、计数控制等7个进程,各进程间的输入、输出逻辑关系与启动关系如图6.15所示。
3.实现原理
参照前述的器件逻辑结构与功能描述,本
在图示结构中,写进程CntWrtP、模式设置进程MdSet、读进程RdP、计数值获取进程RData以及读控制RdCon实现器件与外部其他电路的数据交换,器件提供标准CPU并行接口及协议;复位控制进程RstCon、计数控制进程CntP实现模式0~模式5的定时/计数功能。其中,进程CntWrtP与MdSet响应标准CPU并行接口写时序,分别写入各计数器的计数值与工作模式控制字;进程RdP响应外部CPU的读时序,根据地址信息,将计数器的当前计数值或状态信息送上数据总线D;进程RData响应读信号Rd,根据地址信息获取对应计数器的当前计数值,供进程RdP检索。
在图示结构中,写进程CntWrtP、模式设置进程MdS图6.15可编程定时/计数器的进程设计与启动关系图6.15可编程定时/计数器的进程设计与启动关系
6.2.2电路的VHDL描述
1.顶层实体mTCnt的VHDL描述
考虑到器件的通用性,在设计顶层实体mTCnt时,设定并行接口的数据总线D为8位双向数据端口、两位地址输入为A、片选为CS,写、读信号分别定义为Wr、Rd,且低电平有效。为便于描述,程序中的端口、变量、信号定义与器件的结构、功能以及进程关系描述一致,顶层实体mTCnt的VHDL实现程序如下。
6.2.2电路的VHDL描述
1.顶层实体mTCn
例6-2-1可编程定时/计数电路顶层实体mTCnt的VHDL描述:
例6-2-1可编程定时/计数电路顶层实体mTCnt电子设计自动化第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.2.3电路实现
1.项目创建与编译
采用前一节中的VHDL程序描述定时/计数电路的各个构成进程,创建设计项目,实现16位可编程定时/计数器件。项目名称与顶层实体名称保持一致,均设置为mTCnt。顶层实体的VHDL实现程序名称与顶层实体严格一致,命名为mTCnt.vhd;计数器实体描述文件与实体命名一致,命名为mCnt.h。
6.2.3电路实现
1.项目创建与编译
采用前
相对于前述章节中的实例电路,本例中的可编程定时/计数器具有一定的逻辑复杂程度,考虑到逻辑规模,本例初选MAXII系列的CPLD作为定时/计数电路的实现器件,具体器件型号参照开发系统的编译结果另行指定。如图6.16所示为按照上述方法创建的可编程定时/计数器件mTCnt的实现项目及其编译结果。
相对于前述章节中的实例电路,本例中的可编程定时/计数器具有图6.16可编程定时/计数器件的项目实现及编译结果图6.16可编程定时/计数器件的项目实现及编译结果
2.器件、引脚分配
根据编译结果,器件EPM570T100C3能够满足电路的所有预定功能,宏单元占有率为64%,端口占用率仅为29%,允许以后对电路控制逻辑进行小幅修改,实现系统升级;同时,EPM570T100C3为3.3 V低功耗器件,封装面积较小,速度等级较高,器件选择较合理。兼顾后续制版、布线等操作,本例的定时/计数电路引脚分配与器件指定如图6.17所示。
2.器件、引脚分配
根据编译结果,器件EPM570图6.17可编程定时/计数器件的引脚与器件分配图6.17可编程定时/计数器件的引脚与器件分配
图中带阴影引脚为已分配引脚,信号与器件引脚之间的具体对应关系如表6.3所示。
图中带阴影引脚为已分配引脚,信号与器件引脚之间的具体对
6.2.4电路测试及分析
1.功能仿真
如图6.18所示为定时/计数电路的仿真输入,图6.19所示为电路工作于模式0时的工作时序。
6.2.4电路测试及分析
1.功能仿真
如图6图6.18可编程定时/计数器件的仿真输入图6.18可编程定时/计数器件的仿真输入图6.19可编程定时/计数器件模式0的仿真结果图6.19可编程定时/计数器件模式0的仿真结果
工作于模式1时,计数器的工作时序波形模拟如图6.20所示。在图中的工作时序中,控制计算机向地址“11”(模式寄存器地址)依次写入模式控制字01H、11H与21H,将计数器0~2的工作模式分别设置为模式1;然后,将16位计数值0007H分别写入计数器0、1、2(地址依次为“00”、“01”、“10”)。之后,3个计数器的门控G出现上升沿(由“111”转为“000”),3个计数器响应Clk,开始模式1计数。
工作于模式1时,计数器的工作时序波形模拟如图6.20所图6.20可编程定时/计数器件模式1的仿真结果图6.20可编程定时/计数器件模式1的仿真结果
如图6.21所示为计数器作于模式2时的工作时序模拟,计数器工作于模式3时的时序模拟如图6.22所示。
如图6.21所示为计数器作于模式2时的工作时序模拟,计图6.21可编程定时/计数器件模式2的仿真结果图6.21可编程定时/计数器件模式2的仿真结果图6.22可编程定时/计数器件模式3的仿真结果图6.22可编程定时/计数器件模式3的仿真结果
图6.23所示为工作于模式4时计数器的工作时序,计数器工作于模式5时的工作时序如图6.24所示。
图6.23所示为工作于模式4时计数器的工作时序,计数器图6.23可编程定时/计数器件模式4的仿真结果图6.23可编程定时/计数器件模式4的仿真结果图6.24可编程定时/计数器件模式5的仿真结果图6.24可编程定时/计数器件模式5的仿真结果
2.时序分析
通过Processing菜单下的时间分析工具ClassicTimingAnalyzerTool,得到可编程定时/计数器件的时序分析结果如图6.25所示。其中,器件的输出延迟时间tpd、数据建立时间tsu、时钟输出延迟时间tco与信号保持时间th等详细参数见图中的时间分析工具窗ClassicTimingAnalyzerTool。
2.时序分析
通过Processing菜单下的时间图6.25可编程定时/计数器件的时序分析及结果图6.25可编程定时/计数器件的时序分析及结果
6.3
SPI总线接口器件
6.3.1逻辑功能与分析
1.功能分析串行数据接口电路是现代计算机系统,尤其是嵌入式计算机系统内部以及系统之间数据交换、传输的重要部件。与并行接口相比,串行接口及其通信协议具有接线少、传输方便等优势,在远距离、高速数据传输等场合应用广泛。
6.3SPI总线接口器件
6.3.1逻辑功能与分
2.器件逻辑与功能结构
为便于设计,本例采用图6.26所示的逻辑功能结构。本例中的器件作为SPI的从器件使用,具有1个SPI接口以及端口信号Sck、nSS、MOSI、MISO,与标准SPI协议一致。器件具有16位并行输入、输出接口各1个,分别命名为并行端口InP与OutP;应答信号与选通信号各一个,分别为nAck、nSTB;输入、输出缓冲满标志各一个,分别为InBF与OutBF。
2.器件逻辑与功能结构
为便于设计,本例采用图6.图6.26
SPI接口器件的逻辑功能结构图6.26SPI接口器件的逻辑功能结构
在图6.26中,接口器件通过MOSI接收控制计算机的数据信息,将其转化为并行数据送至输出缓冲,同时置位输出缓冲标志;然后,器件响应信号nAck,将数据发至端口OutP,清除输出缓冲标志;接收数据时,InP将外设数据送入输入缓冲,输入输出控制置输入缓冲标志为高,SPI收发控制获取输入缓冲并将其转换为串行数据,响应Sck,逐位将数据发至MISO端。
在图6.26中,接口器件通过MOSI接收控制计算机的数
3.实现原理
参照器件逻辑功能,本例通过多进程实现预定的控制逻辑,各进程间的输入、输出关系与启动关系如图6.27所示。图中的接口控制逻辑由SPI数据收进程OutCon、输出标志控制进程OutFlg、输出进程OutProc与SPI数据发进程InCon、输入进程InProc、输入标志控制进程InFlg构成。
3.实现原理
参照器件逻辑功能,本例通过多进程实现图6.27
SPI总线接口器件的进程与启动关系图6.27SPI总线接口器件的进程与启动关系
6.3.2电路的VHDL描述
本例所用的SPI协议工作时序设置如图6.28所示。执行数据传输时,nSS变为低电平,SPI主、从机分别响应数据时钟Sck,在Sck上升沿上发送串行数据各数据位,在Sck下降沿上接收各串行数据位。参照前述的电路逻辑功能结构与集成关系,实现器件。
6.3.2电路的VHDL描述
本例所用的SPI协议图6.28本例所用的SPI协议工作时序图6.28本例所用的SPI协议工作时序
为便于器件描述,在编程实现时,程序的所有端口、变量、信号定义以及进程设计与图6.27中的描述一致,电路的VHDL描述程序如下。
例6-3-1
SPI总线接口器件的VHDL描述程序:
为便于器件描述,在编程实现时,程序的所有端口、变量、信电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件
描述程序的实体名称设置为mSPI,采用SPI标准端口,信号包括主机数据输出/从机数据输入MOSI(MasterOutputSlaveInput)、主机数据输入/从机数据输出MISO(MasterInputSlaveOutput)、数据时钟Sck与从机选择端nSS。此外,器件端口还包括16位数据输入端口InP、16位数据输出端口OutP、输入选通信号nStb、输出响应信号nAck、输出缓冲满标志OutBF与输入缓冲满标志InBF。为便于实现,描述程序设计输入缓冲InBuf与输出缓冲OutBuf,分别暂存来自SPI的输出数据与来自外设的输入数据。
描述程序的实体名称设置为mSPI,采用SPI标准端口,
执行数据输出操作时,如果输出缓冲满标志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为低
执行数据输入操作时,进程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.3.3电路实现
1.项目创建与编译
如图6.29所示为SPI总线接口器件mSPI的实现项目及项目编译情况。
6.3.3电路实现
1.项目创建与编译
如图6图6.29
SPI总线接口器件mSPI的项目实现及编译图6.29SPI总线接口器件mSPI的项目实现及编译
2.器件、引脚分配
根据上述编译结果,初选的器件EPM240T100C3完全可以满足本例的接口器件,同时项目35%的宏单元占用率、50%端口占用率,能够为后续的逻辑功能完善、修改以及系统升级提供较大的选择余地。EPM240T100C3为3.3
V低功耗器件,封装面积较小,价格、速度等级等情况合理,后续的电路焊接以及调测试均较为方便。因此,本例为项目最终指定器件EPM240T100C3。
考虑到后续制版、布线与调测试的方便性,本例的SPI总线接口器件mSPI的引脚分配与器件指定如图6.30所示。
2.器件、引脚分配
根据上述编译结果,初选的器件E图6.30
SPI总线接口器件mSPI的引脚信号与器件分配图6.30SPI总线接口器件mSPI的引脚信号与器件分配
图中的带阴影引脚为已分配信号的引脚,从引脚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.3.4电路功能测试及分析
1.逻辑功能仿真
图6.31所示为SPI总线接口器件mSPI的逻辑功能仿真输入波形文件。
6.3.4电路功能测试及分析
1.逻辑功能仿真
图6.31
SPI总线接口器件mSPI的仿真输入图6.31SPI总线接口器件mSPI的仿真输入
在图示仿真输入中,仿真栅格Grid大小设置为20
ns,仿真总时长设置为3 μs。图中的信号 \OutCon:tmp为SPI协议从机数据收进程OutCon的数据位计数器,与其相对应,信号 \InCon:tmp为SPI协议从机数据发进程InCon的数据位计数器。对应于每个数据时钟Sck,SPI每执行一次数据位的收发,两个信号tmp分别计数一次。收发完16位数据,两个tmp信号均清零。
在上述仿真激励的作用下,SPI总线接口器件mSPI的工作时序仿真结果波形如图6.32所示。
在图示仿真输入中,仿真栅格Grid大小设置为20ns 图6.32
SPI总线接口器件mSPI的逻辑功能仿真 图6.32SPI总线接口器件mSPI的逻辑功能仿真
2.时序分析
通过Processing菜单下的时间分析工具ClassicTimingAnalyzerTool,对SPI总线接口电路mSPI进行时序分析,结果如图6.33所示。其中,电路各信号的输出延迟时间tpd、数据建立时间tsu、时钟输出延迟时间tco与信号保持时间th值见图中的时间分析工具窗ClassicTimingAnalyzerTool。
2.时序分析
通过Processing菜单下的时间
通过图6.33中的按钮Start,启动电路的时序分析,然后选择按钮Report,得到接口电路mSPI各时间参数的极端值,数据建立时间tsu的最大值为0.986 ns,时钟输出延迟时间tco的最大值为7.276 ns,数据信号保持时间th的最大值为1.447 ns,Sck的最高容许频率为209.78 MHz,nSTB的最高容许频率为304.04
MHz。
通过图6.33中的按钮Start,启动电路的时序分析,图6.33
SPI总线接口器件mSPI的时序分析图6.33SPI总线接口器件mSPI的时序分析
6.4堆栈(STACK)电路
6.4.1逻辑功能与分析
1.功能分析堆栈是计算机系统中应用非常广泛的一种典型存储电路,它遵从先入后出的存取原则,常用于计算机控制过程中一些重要运行参数与数据的存储与恢复。假定某计算机控制系统中的存储电路中设置专用堆栈存储区STACK、堆栈指针SP,如图6.34所示。
6.4堆栈(STACK)电路
6.4.1逻辑功能图6.34堆栈存储电路的结构与操作图6.34堆栈存储电路的结构与操作
2.实现原理
根据堆栈的定义及其操作过程的描述,本例通过多进程实现堆栈预定的各种控制逻辑,进程设计以及各进程间的输入、输出关系与启动关系如图6.35所示。
2.实现原理
根据堆栈的定义及其操作过程的描述,本图6.35堆栈存储电路的进程设计与启动关系图6.35堆栈存储电路的进程设计与启动关系
6.4.2电路的VHDL描述
参照堆栈结构功能以及操作过程,考虑兼容性与通用性,本例堆栈电路采用标准8位并行接口,设置器件8位双向数据端口为D、器件片选端为CS,器件的数据写入端、读出端分别定义为WR、RD,且均为低电平有效。为方便使用,器件设置专用状态标志端口,包括堆栈空标志信号Empt与堆栈满标志Full。
为便于程序理解与电路描述,在编程实现时,描述程序的所有端口、变量、信号定义以及进程设计与图6.35中的描述一致,电路的VHDL描述程序如下。
6.4.2电路的VHDL描述
参照堆栈结构功能以及
例6-4-1堆栈(STACK)的VHDL描述程序:
例6-4-1堆栈(STACK)的VHDL描述程序:电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件
描述程序的实体名称设置为mStck,堆栈电路mStck在正常工作时,数据的出入栈动作均会影响读写指针pRd与pWr,当数据持续入栈时,电路中的写指针pWr、读指针pRd均持续进行加1运算;数据持续出栈时,写指针pWr、读指针pRd均持续进行减1运算。同时,当堆栈为满或空状态时,读写指针相等;否则,读写指针满足条件pWr = pRd + 1。
描述程序的实体名称设置为mStck,堆栈电路mStck
根据上述原理描述写进程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
进程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.4.3电路实现
1.项目创建与编译
利用上述VHDL程序描述堆栈电路器件,创建项目,将描述程序加入设计项目并作为顶层实体,实现预定的堆栈功能电路。项目的顶层实体、项目名称保持一致,均命名为mStck。同时,实体的VHDL描述程序名称与顶层实体严格对应,命名为mStck.vhd。初选MAXII系列CPLD器件实现预定的电路,图6.36所示为按照上述方法创建的堆栈电路mStck的实现项目及项目编译情况。
6.4.3电路实现
1.项目创建与编译
利用上图6.36堆栈电路mStck的项目实现及编译图6.36堆栈电路mStck的项目实现及编译
2.器件、引脚分配
根据上述编译结果,初选的器件EPM240T100C3完全可以满足本例接口器件的要求,同时项目46%的宏单元占用率、16%的端口占用率,能为后续的逻辑功能扩展、修改以及系统升级提供较大的选择余地。EPM240T100C3为3.3
V低功耗器件,集成度、价格、速度等条件较为理想。同时,TQFP封装使后续的电路焊接以及调测试更为方便。因此,本例为项目最终指定器件EPM240T100C3,考虑到后续制版、布局、布线的合理性以及调测试的方便性,本例堆栈电路mStck的引脚分配与器件指定情况如图6.37所示。
2.器件、引脚分配
根据上述编译结果,初选的器件E图6.37堆栈电路mStck的引脚信号与器件分配图6.37堆栈电路mStck的引脚信号与器件分配
图中的带阴影引脚为已分配信号的引脚,从引脚1到引脚67,按照逆时针顺序,端口上分配的信号依次为:双向数据总线的数据端口D、片选信号CS、计算机并行接口的读信号RD、计算机并行接口的写信号WR、堆栈电路Stck满标志Full、堆栈电路mStck空标志Empt。表6.5给出了堆栈电路mStck实现器件EPM240T100C3引脚与I/O信号的详细对应关系。
图中的带阴影引脚为已分配信号的引脚,从引脚1到引脚67
6.4.4电路功能测试及分析
1.逻辑功能仿真
图6.38所示为堆栈电路mStck的逻辑功能仿真输入波形文件,图中仿真栅格Grid大小设置为20 ns,仿真总时长设置为3 μs。信号\PntCon:iRd为堆栈电路mStck的读指针,与其相对应,信号 \WrProc:iWr为堆栈电路mStck的写指针。信号D为计算机并行接口8位双向数据端口的设定值,信号DATA为堆栈电路mStck工作时8位双向数据端口D的信号变化状况。
6.4.4电路功能测试及分析
1.逻辑功能仿真
图6.38堆栈电路mStck的仿真输入图6.38堆栈电路mStck的仿真输入
在上述仿真激励中的时间段30~450
ns内,并行接口写信号WR连续产生下降沿,向堆栈电路mStck持续写入10个数据。此时,堆栈电路mStck的工作时序仿真结果如图6.39所示。
在上述仿真激励中的时间段30~450ns内,并行接口图6.39堆栈电路mStck持续压栈时的逻辑功能仿真图6.39堆栈电路mStck持续压栈时的逻辑功能仿真
从时刻30
ns开始,并行接口向堆栈电路mStck持续送入数据01H~0AH,写指针iWr依次增加,当写至数据08H时,满标志Full变为高电平,堆栈满。在时间段520~580 ns内,RD连续发出读脉冲,DATA送出最后的压栈数据08H、07H。在时间段660~720 ns内,将数据10H、11H压栈,Full重新变为高电平。图6.40所示为mStck持续出栈情况。
从时刻30ns开始,并行接口向堆栈电路mStck持续图6.40堆栈电路mStck持续出栈时的逻辑功能仿真图6.40堆栈电路mStck持续出栈时的逻辑功能仿真
从800
ns时刻开始,RD连续发出读脉冲,数据总线DATA端连续送出数据11H、10H、06H、05H、04H、03H、02H与01H,与前文的压栈数据顺序一一对应。在800
ns时刻,RD变为低电平,堆栈mStck开始送出数据,满标志Full迅速变低;送出8个数据后,空标志Empt置位,堆栈清空。
当堆栈满后,数据随机出栈时的堆栈电路工作时序仿真结果如图6.41所示。
从800ns时刻开始,RD连续发出读脉冲,数据总线D图6.41连续压栈堆栈满后随机出栈时电路的工作时序仿真图6.41连续压栈堆栈满后随机出栈时电路的工作时序仿真
从时刻1.28 μs开始,CS有效,WR连续发出写脉冲,DATA端数据20H~27H依次被压入堆栈mStck。压栈开始,空标志Empt迅速变为低电平。当8个数据完成压栈后,堆栈满标志Full置位。在时刻1.74 μs处,RD连续发出4个随机的读信号,栈顶的4个数据27H、26H、25H与24H被送上mStck电路的数据总线DATA,此时,堆栈内顺序保留数据23H、22H、21H与20H。图6.42所示为随机压栈至堆栈满后,持续出栈时电路的工作时序仿真结果。
从时刻1.28 μs开始,CS有效,WR连续发出写脉冲
图6.42随机状态下堆栈电路mStck压栈满后持续出栈的工作时序仿真
图6.42随机状态下堆栈电路mStck压栈满后持续出栈
2.时序分析
通过quartusII自带的时间分析工具,对堆栈电路mStck进行时间分析。选择Processing菜单下的功能子菜单ClassicTimingAnalyzerTool,运行时序分析工具,结果如图6.43所示。图中时间分析工具窗口ClassicTimingAnalyzerTool列表显示电路各端口信号的输出延迟时间tpd、数据建立时间tsu、时钟输出延迟时间tco与信号保持时间th值。
2.时序分析
通过quartusII自带的时间分图6.43堆栈电路mStck的时序分析图6.43堆栈电路mStck的时序分析
当预定的电路逻辑功能或时间分析参数不理想或达不到设计要求时,可以修改描述程序、PLD器件或其他的器件、布局、布线等参数,重新编译仿真,以获得更高的性能与更好的输出效果。
当预定的电路逻辑功能或时间分析参数不理想或达不到设计要
6.5先入先出(FIFO)电路
6.5.1逻辑功能与分析
1.功能分析先入先出又称FIFO(FirstInFirstOut),是计算机系统结构中应用非常广泛的另外一种典型存储电路,FIFO存储电路的逻辑结构如图6.44所示。
6.5先入先出(FIFO)电路
6.5.1逻辑功图6.44先入先出(FIFO)存储电路的结构与操作图6.44先入先出(FIFO)存储电路的结构与操作
2.实现原理
根据先入先出(FIFO)电路的定义、功能及其操作过程的描述,本例通过多进程实现FIFO存储电路预定的各种功能控制逻辑,电路的进程设计以及各构成进程间的输入/输出关系与启动关系如图6.45所示。
2.实现原理
根据先入先出(FIFO)电路的定义、图6.45先入先出(FIFO)存储电路的进程设计与启动关系图6.45先入先出(FIFO)存储电路的进程设计与启动关
6.5.2电路的VHDL描述
参照前文的先入先出(FIFO)电路的结构功能以及操作过程分析,兼顾电路的兼容性与通用性,本例中FIFO电路的外部端口采用标准8位并行接口,端口的数据端设置为8位双向数据总线D、器件片选端端口设置为CS,读、写信号端分别定义为WR、RD,均为低电平有效。为便于数据交换,FIFO电路中设置专用端口来描述器件存储区的空满状态,包括空标志端口Empt与满标志端口Full。
6.5.2电路的VHDL描述
参照前文的先入先出(
为便于程序理解与电路描述,描述程序的所有端口、变量、信号定义以及进程设计与前文的逻辑功能、过程描述一致,FIFO电路的VHDL实现程序如下。
例6-5-1先入先出(FIFO)电路的VHDL描述程序:
为便于程序理解与电路描述,描述程序的所有端口、变量、信电子设计自动化第6章课件电子设计自动化第6章课件电子设计自动化第6章课件
描述程序的实体名称设定为mFIFO,按照前文所述的进程设置、进程处理过程与进程启动关系描述各进程的数据处理过程。写进程WrProc响应并行接口的写信号,在WR的上升沿时刻,进程监测片选信号CS与满状态标志iFull。若信号CS有效且FIFO不为满状态,WrProc获取并口数据D,根据当前写指针pWr将数据D送入FIFO存储区DSeg。然后重新计算写指针pWr,如果pWr到达存储区顶部,则pWr清零;否则,pWr执行自加运算。写指针pWr调整完毕后,进程判别存储区满状态,若读、写指针相等,则FIFO的存储区已满,标志iFull置位。同时,写进程WrProc响应并行接口的读信号RD,当RD、CS有效且空标志iEmpt为“0”时,进程WrProc撤销满标志,iFull清零。
描述程序的实体名称设定为mFIFO,按照前文所述的进程
进程RdProc响应读信号RD,判断FIFO电路的状况,若RD、CS有效且电路存储区不为空状态时,RdProc将存储单元DSeg内读指针pRd对应的数据DSeg(pRd)堆栈送上数据总线D;反之,将数据总线置为高阻态。
进程RdProc响应读信号RD,判断FIFO电路的状况
进程DataCon专门用于FIFO电路的读指针pRd的运算及电路空状态标志的操作。DataCon响应并行接口读信号RD,一次读操作完成后,在RD信号的上升沿上,DataCon判断FIFO电路的工作状态,若CS有效且FIFO标志iEmpt为“0”,进程DataCon重新计算读指针pRd。若读指针到达存储区顶部,pRd清零;否则,pRd执行加1运算。当读指针pRd计算完毕后,DataCon判断读、写指针pWr与pRd的取值状况,若二者取值相等,则将iEmpt置位,同时DataCon响应写信号WR,若WR、CS有效且电路存储区不为满状态时,进程将FIFO电路存储区的空标志iEmpt清零。
进程DataCon专门用于FIFO电路的读指针pRd的
6.5.3电路实现
1.项目创建与编译
利用前文所述的VHDL程序描述先入先出电路器件,创建项目mFIFO,将电路描述程序加入设计项目并作为顶层实体,实现预定的先入先出存储电路功能。项目的顶层实体、项目名称保持一致,均命名为mFIFO。同时,顶层实体的VHDL描述程序名称与实体严格对应,命名为mFIFO.vhd。项目初选MAXII系列CPLD作为预定的电路实现器件,图6.46所示为按照上述方法及过程创建的先入先出电路mFIFO的实现项目及其编译情况。
6.5.3电路实现
1.项目创建与编译
利用前图6.46先入先出(FIFO)存储电路的项目实现及编译图6.46先入先出(FIFO)存储电路的项目实现及编译
2.器件、引脚分配
根据项目编译结果,采用开发工具选定的器件EPM240T100C3能够满足堆栈电路需要的逻辑资源数量与运行速度,同时逻辑单元以及端口的使用状况,为后续的逻辑功能扩展、修改以及系统升级能够提供可能性;使用100脚TQFP封装更便于焊接、调测试,因此本例选择器件EPM240T100C3来实现该项目。
2.器件、引脚分配
根据项目编译结果,采用开发工具
6.5.4电路功能测试及分析
1.逻辑功能仿真
图6.47所示为先入先出电路mFIFO的逻辑功能仿真输入波形文件。
6.5.4电路功能测试及分析
1.逻辑功能仿真
图6.47先入先出电路mFIFO的仿真输入图6.47先入先出电路mFIFO的仿真输入
图示仿真输入中的仿真栅格Grid大小设置为20
ns,仿真总时长设置为4 μs。信号\DataCon:iRd的取值大小对应于先入先出电路mFIFO的读指针,与其相对应,信号\WrProc:iWr的大小对应于先入先出电路mFIFO的写指针。信号D为存储电路mFIFO并行接口8位双向数据端口的设定值,信号DATA为电路mFIFO正常工作时8位双向数据端口D的端口变化情况。
图示仿真输入中的仿真栅格Grid大小设置为20ns,
先入先出电路mFIFO的一个完整的存取工作循环的工作时序仿真如图6.48所示。在上述仿真激励作用下的时间段30~450 ns,片选端CS有效,并行接口的写端口WR连续产生下降沿,向先入先出电路mFIFO持续发出10个写入信号。此时,数据01H~0AH被依次送上数据总线DATA。在图中的40 ns时刻处,WR端口出现低电平,空标志Empt清零。当D端口上的数据写至08H时,在340 ns时刻的WR上升沿后,mFIFO被写满,因此满标志Full置位变成高电平。在数据写入过程中,写指针 \WrProc:iWr依次增大,增至7后清零。
先入先出电路mFIFO的一个完整的存取工作循环的工作时图6.48先入先出电路mFIFO的完整存取工作循环时序仿真图6.48先入先出电路mFIFO的完整存取工作循环时序仿
在时间段490~890
ns内,片选CS重新变为低电平且持续有效,读端口RD连续发出读脉冲,满标志Full被迅速撤销,先入先出内存储的数据01H~08H依次被送上数据总线DATA。先写入的数据01H首先送出,最后写入的数据08H被最后送至数据总线DATA,符合先入先出的功能定义。数据读出时,读指针\DataCon:iRd依次增大,达到数值7后,iRd返回“0”值,mFIFO被读空,标志Empt置位。图6.49所示为随机写入、持续读空时mFIFO的工作时序仿真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司节能降耗活动方案
- 公司组织KTV唱歌活动方案
- 公司网络经营活动方案
- 公司福利旅行活动方案
- 公司每月团聚活动方案
- 公司节日互动活动方案
- 公司组织娱乐活动方案
- 公司每日员工活动方案
- 公司组织去爬山活动方案
- 公司班组趣味活动方案
- 2023风光互补路灯设计方案
- 2023年山东省夏季普通高中学业水平合格考试会考生物试题及参考答案
- 2024年山东省青岛市中考英语试卷附答案
- 2023-2024学年山东省临沂市兰山区八年级(下)期末数学试卷(含答案)
- 材料力学(山东联盟-中国石油大学(华东))智慧树知到期末考试答案章节答案2024年中国石油大学(华东)
- 江西省南昌二中心远教育集团九湾学校2023-2024学年八年级下学期期末考试物理试题
- 深入理解Nginx(模块开发与架构解析)
- MOOC 中国文化概论-华南师范大学 中国大学慕课答案
- 初中人教版八年级下册期末物理真题模拟试卷经典套题
- JBT 11699-2013 高处作业吊篮安装、拆卸、使用技术规程
- 家长会课件:初中七年级家长会课件
评论
0/150
提交评论