




已阅读5页,还剩120页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章SOPC开发流程及QuartusII的使用,2.1SOPC开发流程和开发工具2.2QuartusII操作基础2.3SOPC硬件开发实例2.4创建NiosII系统模块2.5设计优化2.6编译2.7编程下载,SOPC开发流程和开发工具,SOPC设计包括硬件和软件两部分。硬件设计:主要基于QuartusII和SOPCBuilder。软件设计:基于NiosIIIDE。,SOPC开发流程,分析系统需求:在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需求的计算性能、需要的带宽和吞吐量、需求的接口类型以及是否需求多线程的软件等。,建立QuartusII工程:每个开发过程开始时都应建立一个工程,QuartusII是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于传统电路设计中的电路板(PCB)。,定义和生成系统:在SOPCBuilder中添加需要的功能模块(NiosII及其标准外设模块),完成后生成一个系统模块。,定制指令连接各功能模块:将各个功能模块用连线连起来组成系统功能原理图。,选择FPGA型号并进行管脚分配:为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚;进行编译选项设置:设置编译选项,从而让编译器按照用户设定来进行编译;,编译硬件系统生成配置文件sof:编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。下载配置文件到FPGA器件:将配置文件.sof下载到FPGA.,设置软件运行硬件环境属性:设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。编译软件:对用户程序进行编译,生成可执行文件*.elf。ISS运行/调试:接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。,在目标板上下载可执行软件到NiosII系统:将可执行文件.elf下载到RAM。在目标板上运行/调试软件:在目标板上反复调试软件。使用IDE编程工具烧写配置文件和软件代码:最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash中。,QuartusII操作基础,把Quartus安装光盘放入计算机的光驱中,在自动出现的光盘安装目录中选择安装Quartus软件和MegacoreIPlibrary两项,安装光盘将自动引导完成软件的安装;软件安装完成之后,在软件中指定Altera公司的授权文件(License.dat),才能正常使用;授权文件可以在Altera的网页上申请或者购买获得。安装Altera的硬件驱动程序。驱动程序存放在Quartus安装目录下的quartusdrivers文件夹中。驱动安装后才能将设计结果通过计算机的通信接口编程下载到目标芯片中。,Quartus软件的安装,Quartus软件的用户界面,启动Quartus软件后默认的界面主要由标题栏、菜单栏、工具栏、资源管理窗口、编译状态显示窗口、信息显示窗口和工程工作区等部分组成。,QuartusII操作基础,Quartus软件的用户界面,QuartusII操作基础,标题栏中显示当前工程的路径和工程名。,Quartus软件的用户界面,QuartusII操作基础,菜单栏主要由文件(File)、编辑(Edit)、视图(View)、工程(Project)、资源分配(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和帮助(Help)等下拉菜单组成。,Quartus软件的用户界面,QuartusII操作基础,工具栏中包含了常用命令的快捷图标。,Quartus软件的用户界面,QuartusII操作基础,资源管理窗口用于显示当前工程中所有相关的资源文件。,Quartus软件的用户界面,QuartusII操作基础,工程工作区当Quartus实现不同的功能时,此区域将打开对应的操作窗口,显示不同的内容,进行不同的操作,如器件设置、定时约束设置、编译报告等均显示在此窗口中。,Quartus软件的用户界面,QuartusII操作基础,编译状态显示窗口此窗口主要显示模块综合、布局布线过程及时间。,Quartus软件的用户界面,QuartusII操作基础,信息显示窗口该窗口主要显示模块综合、布局布线过程中的信息,如编译中出现的警告、错误等,同时给出警告和错误的具体原因。,Quartus的开发流程,按照一般编程逻辑设计的步骤,利用Quartus软件进行开发可以分为以下四个步骤:(1)输入设计文件;(2)编译设计文件;(3)仿真设计文件;(4)编程下载设计文件。,QuartusII操作基础,输入设计文件,Quartus软件的输入法有:1)原理图输入方式、2)文本输入方式(如VHDL、VerilogHDL)3)AHDL输入方式、4)模块输入方式以及5)第三方EDA工具产生的文件以及混合使用以上几种设计输入方法进行设计原理图输入法原理图输入法也称为图形编辑输入法,用Quartus原理图输入设计法进行数字系统设计时,不需要任何硬件描述语言的知识,在具有数字逻辑电路基本知识的基础上,利用Quartus软件提供的EDA平台设计数字电路或系统。,QuartusII操作基础,1、原理图输入法建立设计工程建立设计工程的方法如图示:,新建工程选项,新建工程第一页,QuartusII操作基础,1、原理图输入法建立设计工程建立设计工程的方法图示:,新建工程第二页,新建工程第三页,QuartusII操作基础,1、原理图输入法建立设计工程建立设计工程的方法图示:,新建工程第四页,新建工程第五页,QuartusII操作基础,2、原理图输入法输入设计文件1)新建工程之后,便可以进行电路系统设计文件的输入。选择file菜单中的New命令,弹出如图所示的新建设计文件类型选择窗口。,QuartusII操作基础,2)选择New对话框中的DeviceDesignfiles页下的BlockDiagram/SchematicFile,点击OK,打开下图所示的图形编辑器对话框,进行设计文件输入。,图形编辑器对话框,2、原理图输入法输入设计文件,QuartusII操作基础,2、原理图输入法输入设计文件3)在图形编辑窗口中的任何一个位置双击鼠标,或点击图中的“符号工具”按钮,或选择菜单Edit下的InsertSymbol命令,弹出如右图所示的元件选择窗口Symbol对话框。,元件选择窗口,QuartusII操作基础,2、原理图输入法输入设计文件,元件选择窗口,QuartusII操作基础,4)用鼠标点击单元库前面的加号(+),库中的元件符号以列表的方式显示出来,选择所需要的元件符号,该符号显示在Symbol对话框的右边,点击OK按钮,添加相应元件符号在图像编辑工作区中,连接原理图。,2、原理图输入法输入设计文件十六进制同步计数器的原理图如下:,QuartusII操作基础,3、原理图输入法优缺点:优点:1)可以与传统的数字电路设计法接轨,即使用传统设计方法得到电路原理图,然后在Quartus平台完成设计电路的输入、仿真验证和综合,最后下载到目标芯片中。2)它将传统的电路设计过程的布局布线、绘制印刷电路板、电路焊接、电路加电测试等过程取消,提高了设计效率,降低了设计成本,减轻了设计者的劳动强度。缺点:1)原理图设计方法没有实现标准化,不同的EDA软件中的图形处理工具对图形的设计规则、存档格式和图形编译方式都不同,因此兼容性差,难以交换和管理。2)由于兼容性不好,性能优秀的电路模块的移植和再利用非常困难,难以实现用户所希望的面积、速度以及不同风格的综合优化3)原理图输入的设计方法不能实现真实意义上的自顶向下的设计方案,无法建立行为模型,从而偏离了电子设计自动化最本质的涵义。,QuartusII操作基础,编译设计文件,Quartus编译器的主要任务是对设计项目进行检查并完成逻辑综合,同时将项目最终设计结果生成器件的下载文件。编译开始前,可以先对工程的参数进行设置。Quartus软件中的编译类型有全编译和分步编译两种。选择Quartus主窗口Process菜单下StartCompilation命令,或者在主窗口的工具栏上直接点击图标可以进行全编译全编译的过程包括分析与综合(Analysis(3)将其重命名lcd_display。,4.添加外部RAM接口(1)Avaloncomponents下的Memory下面选择CypressCY7C1380CSSRAM,单击Add,出现SSRAM(CypressCY7C1380C)-ext_ssram的向导;(2)在TimingParameters下面设置ReadLatency为2clocks,在SSRAM下面设置MemorySize为2Mbytes(3)单击Finish,返回到AlteraSOPCBuilderNIOS2的窗口;(4)右键单击ModuleName下的ssram_0,从菜单选择rename,重命名为ext-ssram。,5.添加外部闪存接口(1)在Avaloncomponents下的Memory下面选择FlashMemory(CommonFlashInterface),单击Add,出现外部闪存接口向导;(2)在Attributes页中,可以在Presets列表中选择相应的闪存的接口,这些闪存的接口都是经过测试的,如果列表中没有,用户可以自己定义闪存的Size和DataWidth;,创建NiosII系统模块,(3)在timing页中,可以设置闪存的读写时序要求,可以设置Setup,Waite,hold时间等参数,通常保留缺省的设置;(4)如应用选择的闪存接口不在列表中,需要自己定义Size和DataWidth,和时序要求;(5)点击Finish,返回到AlteraSOPCBuilderNIOS2的窗口,ModuleName出现cfi_flash_0,对其重命名为ext_flash。,创建NiosII系统模块,6.添加外部RAM总线和外部flash总线(Avalon三态总线桥)为了使NiosII系统能与开发板上的外部存储器通信,必须在Avalon总线和外部存储器之间加入Avalon三态桥。,步骤如下:(1)在Bridge下,选择AvalonTri-StateBridge,点击Add,出现AvalonTri-StateBridgetri_state_bridge_0向导;(2)Registered选项默认为选中;(3)单击Finish,返回到AlteraSOPCBuilderNIOS2的窗口;(4)将其重命名为ext_ssram_bus;(5)重复前三个步骤,在添加一个Avalon三态总线桥,并重命名为ext_flash_bus.,7.添加JTAGUART(1)在Avaloncomponents下的Communication下选择JTAGUART,点击ADD,出现添加向导。(2)按照缺省设置,点击Finish。(3)将其重命名为JTAG_UART.8.NiosII系统的连接主要是外部RAM接口要和RAM的三态桥连接,外部的Flash接口要和flash的三态桥连接。所有添加的IP连接都是系统自动完成的,除了上面提到的三态桥和外部存储器的接口的连接之外,其它的连接用户不用修改,但对于三态桥和外部存储器接口的连接,系统的自动连接可能和用户的开发板不匹配,用户需要进行手动的更改。针对我们所用的开发板的情况进行的设置,因为本书用到的开发板外部的SRAM和外部的Flash没有使用共用的数据线和地址线,所以必须为它们分别添加一个三态桥。,创建NiosII系统模块,创建NiosII系统模块,三、分配IP模块的地址和中断号在以上添加IP的过程中,SOPCBuilder为各个IP模块分配了一个默认的基地址,用户可以改变这些默认的分配。如果用户自己分配的地址出现冲突,SOPCBuilder会给出警告,用户可以按照下面的步骤来进行分配和解决地址冲突问题。,创建NiosII系统模块,下面我们给出一种自定义的地址分配实例,将闪存的基地址设定为0 x00000000,步骤如下:(1)单击Flash外设的Base栏,将地址改为0 x0,然后回车,这时SOPCBuilder的消息框中出现错误的提示信息,这是因为闪存的地址和其它的外设地址发生了冲突。(2)选择Module菜单中的LockBaseAddress操作,一个挂锁的图标出现在闪存基地址的旁边。(3)选择System菜单中的AutoAssignBaseAddress操作,来解决外设的地址分配冲突问题,SOPCBuilder调整其它外设的地址来避开与闪存地址的冲突,错误提示的消息就会消失了。(4)用户可以手动修改各个外设的中断号,中断号越低,中断优先级越高,用户也可以采用自动分配中断号,选择System菜单中的AutoAssignIRQs,但SOPCBuilder不处理软件操作,采用自动分配中断的策略不一定是最优的,用户最好是根据自己的应用来确定外设的中断优先级,采用手动的分配。,创建NiosII系统模块,四、配置NIOSII系统,系统的IP模块添加完成之后,还需要对系统进行配置。点击NiosIIMore“cpu_0”Settings页,用户可以进行如下的设置:,ResetAddress:可以选择存放BootLoader的存储器和设置BootLoader在存储器中的偏移,我们这里选择ext_flash,偏移选择默认;,ExceptionAddress:可以选择存放异常向量表的存放的存储器和设置异常向量表在存储器中的偏移,我们选择ext_ssram,偏移选择默认;,BreakLocation:如果NIOSII包含有一个JTAGDebug模块,SOPCBuilder会显示这项内容。其MemoryModule总是JTAGDebugModule,Offset固定为0 x20,地址由JTAGdebugmodule基地址决定。用户不能修改BreakLocation的各个域的内容。,五、生成NIOSII并加入到工程中NIOSII系统是工程的一部分,我们首先是生成它,然后加入到工程中去,然后将整个工程下载到FPGA芯片中去。单击SystemGeneration,在Option下进行如下的设置:,创建NiosII系统模块,选中Simulation,如果安装了ModelSim软件,会生成用于仿真的相应的文件。,单击exit退出SOPCBuilder。,单击Generate,SOPCBuilder会提示生成系统的进程,系统生成完成时会提示”SUCCESS:SYSTEMGENERATIONCOMPLETED”。,选中HDL,会生成系统模块的硬件语言文件。,系统生成完成之后,SOPCBuilder为这个定制的NIOSII系统模块创建了一个符号,要把NiosII系统加入到工程中去,遵循如下的步骤:(1)在QuartusII软件中,打开顶层实体(BDF格式),在BDF窗口中任意处双击,出现Symbol对话框;(2)在Symbol对话框中单击Project来展开工程目录,其下出现NIOS2(本例采用的系统名),选中它,右侧出现了系统的符号表示;(3)单击OK,Symbol对话框关闭,NIOS2的符号轮廓被附着在鼠标的指针上。(4)BDF窗口中任意空白处单击一下,NIOS2的符号出现在BDF窗口中,这样我们创建的系统已经被加入到工程中了。,创建NiosII系统模块,创建NiosII系统模块,六、引脚和嵌入式锁相环除了NIOSII系统之外,可能还要有其它的硬件逻辑,我们这里加入一个嵌入式锁相环,嵌入式锁相环有两个时钟输出,一个输出SSRAM提供时钟,另一个时钟的输出为NIOSIICPU提供时钟,然后添加输入、输出、双向引脚,以实现和FPGA外部的外设进行通信。加入嵌入式锁相环的步骤如下:,创建NiosII系统模块,(1)点击ToolsMegaWizardPlug-InManager,出现MegaWizardPlug-InManager向导Page1窗口,点击next,创建NiosII系统模块,(2)在MegaWizardPlug-InManagerPage2窗口中的IO下面选择ALTPLL,器件选择CycloneII,输出文件类型选择VHDL,文件名为ssram_pll,选中Returntothispageforanothercreateoperation,然后点击Next,出现MegaWizardPlug-InManager-ALTPLLPage3of10;,创建NiosII系统模块,(3)在窗口中,做如图选择,点击next,进入page4(4)在page4中不作任何配置,直接点击next;,创建NiosII系统模块,(5)点击next,创建NiosII系统模块,(6)在Page6窗口中,设置c0输出时钟,首先选中Usethisclock选项,设置时钟频率为85MHz,占空比为50%。点击Next会进入c1输出时钟的设置;,创建NiosII系统模块,(7)嵌入式PLL可提供3个输出时钟,我们使用其中的两个,Page7窗口中,在c1时钟的设置页面上,选中Usethisclock选项,设置时钟频率为85MHz,点击Next;,创建NiosII系统模块,创建NiosII系统模块,(8)在MegaWizardPlug-InManager-ALTPLLPage8of10窗口中,不选中Usethisclock选项,即我们不使用c2时钟,点击Next;(9)在MegaWizardPlug-InManager-ALTPLLPage9of10窗口中,给出了用于仿真必须要产生的文件,点击Next;(10)在MegaWizardPlug-InManager-ALTPLLPage10of10窗口中,给出了用户选择要产生的文件,不做改变,采用默认配置,点击Finish完成PLL的生成。在顶层实体的bdf窗口中双击鼠标,出现Symbol添加窗口,在project下面选择刚才建立的ssram_pll,点击OK。ssram_pll的轮廓会附着在鼠标上,点击bdf窗口的空白处,将嵌入式锁相环加入到了工程中。,引脚添加的步骤如下:(1)在顶层实体的bdf窗口的空白处双击鼠标,出现Symbol添加窗口,(2)在alteraquartuslibraries下面选择primitives,再在其下选择pin,在其中有三种类型的引脚,有bidir,input,output,分别为双向、输入和输出引脚,选择相应类型的引脚,点击OK。,(3)点击bdf窗口的空白处,即将引脚加入到了工程中。,(4)重复上面的步骤添加为各个端口添加相应类型的引脚。,创建NiosII系统模块,连接引脚和命名引脚第一个加入的引脚的名称缺省为pin_name,之后加入的引脚名称依次为pin_name1,pin_name2向上递增,为了便于理解和记忆,需要对引脚重新命名,使其和其传输的信号联系起来。命名引脚的方法如下:(1)双击引脚的“pin_namen”部分,pin_namen的文字变成高亮,可以对其编辑。(2)对其他的引脚重复以上的操作,修改成具有意义的名字。(3)对于总线型的引脚,引脚名称之后要标识出总线的位数,如ddr_a12.0,在引脚名称之后加上方括号,然后写上最高位和最低位,用两个.隔开。(4)将嵌入式锁相环和系统模块等连接起来,并将引脚连接到相应的端口上。,创建NiosII系统模块,连接好的顶层模块图,设计优化,设计优化主要包括节省占用FPGA的面积和提高设计系统运行速度两个方面。这里的“面积”是指一个设计所消耗的FPGA的逻辑资源的数量,一般以设计占用的等价逻辑门数来衡量。“速度”是指设计的系统在目标芯片上稳定运行时能够达到的最高频率,它与设计的时钟周期、时钟建立时间、时钟保持时间、时钟到输出端口的延迟时间等诸多因素有关。,面积与速度的优化打开我们刚才的工程clock,然后选择Assignment菜单下的Settings命令,弹出设置窗口。,在对话框的左边的Category栏下,列出了很多可设置的对象,包括EDAToolsSettings、CompilationProcessSettings、Analysis&SynthesisSettings、FitterSettings、TimingSettings、SimulationSettings等等,选中要设置的项目,窗口的右边显示供设置的选项和参数。,在Analysis&SynthesisSettings页面,用于对设计在分析与综合时的优化设置。在该页面的OptimizationTechniques栏中,提供了Speed、Balanced和Area3种优化选择,其中Balanced是软件缺省的优化选择。如果对Speed或Area有特殊的要求,则选中相应的选项。,设计优化,时序约束与设置选择Settings下面的TimingAnalysisSettings,然后选择ClassicTimingAnalyzerSettings。,在此页面中,可以对设计的延迟约束、时钟频率等做设置。延迟约束(DelayRequirements)设置包括tsu(建立时间)、tco(时钟到输出的延迟)、tpd(传输延迟)和th(保持时间)的设置。,一般来说,用户要根据目标芯片的特性及PCB板走线的实际情况,给出设计需要满足的时钟频率、建立时间、保持时间和传输延迟时间等参数。对一些简单的应用,对时序要求不严格,可以不做设置。,设计优化,Fitter设置在Ssettings对话框中,用鼠标左键单击Category栏目中的FitterSettings项,出现FitterSettings设置页面。此页面用于布局布线器的控制。,在这里需要设置的主要是布局布线的策略(FitterEffort),有三种模式可供选择:标准模式(StandardFit)、快速模式(FastFit)和自动模式(AutoFit)。标准模式需要的时间比较长,但可以实现较高的最高频率(fmax);快速模式可以节省50%的编译时间,但会使最高频率有所降低;自动模式在达到设计要求的条件下,自动平衡最高频率和编译时间。,编译,QuartusII编译器由一系列处理模块组成,包括分析与综合、适配、汇编和时序分析等环节。通过QuartusII编译器,可以检查设计错误,综合逻辑,把设计配置到FPGA中去,并且为模拟、时序分析及器件配置生成输出文件。1.分析与综合在编译过程中,首先对设计文件进行分析和检查,如检查原理图的信号线有无漏接、信号有无双重来源、硬件描述语言文件中有无语法错误等,如存在错误,编译器会给出出错信息并标出出错位置,供设计者修改,如果设计文件不存在错误,接着进行综合,综合完成的是设计逻辑到器件资源的映射。2.适配适配完成的是设计逻辑在器件中的布局和布线、选择适当的内部互联路径、引脚分配、逻辑元件分配等操作。可以设置适配的多个选项,来采取不同的优化策略。,编译,3.汇编适配完成后,进入编程环节。在编程过程中,生成器件的编程映像文件,映像文件可以通过电缆下载到目标芯片中。4.时序分析在适配完成之后,设计逻辑在器件中的布局和布线、内部互联路径已经确定,在时序分析中,会计算给定设计在器件中延时,完成时序分析和逻辑的性能分析。用户可以预先设置Timingrequirement,可以针对整个的工程、特定的设计实体、节点和引脚指定所需的速度性能。编译过程中会针对设置进行适配。,编译,一、编译设置在编译前,用户可以设置编译器,可以实现对编译过程控制的目的。编译器根据相应的设置进行编译。合理的设置可以提高工程编译的速度,优化器件的资源利用等。单击Assignments菜单中的Settings,出现下图的窗口。,编译,在Device中,用户可以设置和器件有关的选项,FPGA的芯片通常在建立项目的时候就已经选择好了,所以通常不做修改。,注意在编译之前必须要对未使用的引脚做设置,将未使用的引脚设置成Asinputs,tri-stated。如果不做此项配置设计可能无法在开发板上运行。,设置未使用的引脚按照下面的步骤:(1)在Settings对话框中的Device页中,单击DeviceandPinOptions,出现DeviceandPinOptions对话框,缺省是General页。,编译,(2)单击UnusedPins标签,在Reserveallunusedpins下选择,Asinputs,tri-stated。(3)在Deviceandpinsoptions中,其他的设置可以选用默认的设置,不做修改,点击确定。,编译,设计优化也是编译设置的一部分,但是为了强调设计优化的重要性,把它们单独提出来介绍了,除了这些设置之外,还有下面的一些设置跟编译的过程有关:在EDATools中,用户可以指定在编译过程中用到的其他第三方的工具软件,通常不用设定。在CompilationProcessSettings中,用户可以设置编译过程的一些选项,如是否使用增量编译等。在TimingAnalyzer中,用户可以设置时序分析报告中显示的内容。在Assembler中,指定汇编的选项。,编译,二、引脚分配用户需要进行引脚分配,使得编译器能把用户设计中的信号分配到目标器件上的特定引脚上。QuartusII提供了两种引脚分配方法:一种是使用AssignmentsEditor来分配,方法为选择Assignments菜单中的pins或者AssignmentsEditor;第二种方法是使用TCL脚本一次性分配所有的引脚。,编译,采用第一种方法即使用AssignmentsEditor进行引脚分配步骤如下:(1)选择选择Assignments菜单中的pins或者AssignmentsEditor。(2)在NodeName下输入引脚名称,在Location选择相应的引脚。(3)选择FileSave保存分配。这种分配方法效率较低,且容易出错。推荐使用TCL脚本文件的方法来进行引脚分配。,编译,用TCL脚本文件分配引脚,按照如下步骤:(1)选择project下的generatetclfileforproject,在如下界面点击ok。,(2)打开标准工程(Standard)目录下的standard.tcl文件,把文件中带有set_location_assignment指令,并且-to后面的参数与现有工程中使用的管脚名相关的语句拷贝到pin.tcl文件的下面位置(最后一条set_global_assignment语句后),然后保存。(这个过程需要万分的小心和仔细,请大家注意)(3)Tools菜单下,选择TCLscripts,出现下图的窗口。,编译,编译,(4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB23-T2971-2021-黄菠萝药用林苗木培育技术规程-黑龙江省
- 小学规范课程管理制度
- 产业周期处理方案(3篇)
- 小学禁毒工作管理制度
- 培训机构露营方案(3篇)
- 初中学校各种管理制度
- 库内物料摆放管理制度
- 全面梳理部门管理制度
- 废弃鱼塘清淤方案(3篇)
- 公司科研现场管理制度
- 延迟退休政策驱动中国第二次人口红利的多维度解析与展望
- T/CECS 10032-2019绿色建材评价保温系统材料
- 江苏扬州中学2024-2025学年数学高二下期末经典试题含解析
- 银行背债协议书
- 2025年四川省水电投资经营集团普格电力有限公司招聘笔试参考题库含答案解析
- 非洲地理课件
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读课件
- MOOC 树木学-北京林业大学 中国大学慕课答案
- NBT 10739-2021 井工煤矿辅助运输安全管理规范
- 苏教版三年级数学下册期末试卷(江苏苏州常熟市2021春真卷)
- MBR系统运行技术手册
评论
0/150
提交评论