Qsys系统设计指南.doc_第1页
Qsys系统设计指南.doc_第2页
Qsys系统设计指南.doc_第3页
Qsys系统设计指南.doc_第4页
Qsys系统设计指南.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Qsys系统设计指南Ch1. 绪论软硬件需求概述 下载、安装设计实例 打开实例工程Ch2. 建立Qsys系统建立数据模式发生器(Data Pattern Generator) 建立新的带有时钟源的Qsys系统 加入管道桥(Pipeline Bridge) 加入定制模式发生器(Custom Pattern Generator) 加入PRBS模式发生器 加入2-1流复用器(Two-to-One Streaming Multiplexer) 校验存储器地址映射(Memory Address Map) 连接复位信号(Reset Signals)和插入适配器(Adapters)建立数据模式校验器(Data Pattern Checker) 建立新的Qsys系统并设置时钟源 加入管道桥(Pipeline Bridge) 加入1-2流解复用器(One-to-Two Streaming Demultiplexer) 加入定制模式校验器(Custom Pattern C) 加入PRBS模式校验器 校验存储器地址映射(Memory Address Map) 连接复位信号Ch3. 装配层级系统(Assembling Hierarchical Systems)建立层级存储器检测器(Hierarchical Memory Tester) 加入数据模式发生器(Data Pattern Generator) 加入模式校验器(Data Pattern Checker) 加入存储器主元件(Memory Master Components) 连接复位信号 指定存储器地址映射(Memory Address Map)完成顶层系统(Top-Level System)编译并下载软件到开发板Ch.4 在系统控制台(System Console)验证硬件理解脚本(Understanding the Scripts)打开实例工程(Tutorial Project)加入JTAG-to-Avalon主桥(Master Bridge)编译并使用系统控制台控制开发板Ch5. 仿真定制元件(Custom Components)在Qsys中产生Testbench系统 打开实例工程(Tutorial Project) 为设计测试(Design Under Test)建立一个新的Qsys系统 导出所有设计测试接口(Design Under Test Interfaces) 产生一个Qsys Testbench系统 产生Qsys Testbench系统仿真模型在ModelSim-Altera软件中执行仿真 设置仿真环境 执行仿真附加信息文档版本历史如何联系AlteraCh1. 绪论本指南介绍可在QuartusII软件中使用的Qsys系统集成工具。本指南介绍了如何设计一个使用不同的测试模式来测试一个外部存储器件的系统。通过系统需求分析,硬件设计任务,以及系统性能分析,重点在于构架系统。在理解Qsys开发流程的基础上,可以进一步设计自己的Qsys系统。1.1 软硬件需求本指南需要下面的软件支持:n Altera QuartusII V11.0以上软件系统需求及安装指令请参考Altera Software Installation and Licensingn Nios II EDS V11.0以上n Tt_qsys_design.zip设计实例文件,可以从Qsys Tutorial Design Example 网站下载。该设计实例文件包括可设置选择Altera开发板的工程文件。如果满足下面的要求,可以根据本指南建立任何Altera开发板或自定制板的Qsys系统。n 板上必须包括Altera的Arria、Cyclone或Stratix系列FPGA。n FPGA必须包括至少12K逻辑单元(LEs)或自适应查找表(ALUTs)。n FPGA必须包括至少150Kb嵌入式存储器。n 板上必须有JTAG接口,用于主机监控板上FPGA内部存储器程序执行。n 板上必须包括用于设计测试的存储器。例如,任意具有Avalon-MM从接口的基于Qsys控制器的存储器。为了在开发板上完成本指南,请参考开发板文档中对时钟频率和引脚描述。对于Altera开发板,可以在相关参考手册中找到对应信息。1.2 概述本指南中建立的Qsys系统用来测试一个同步动态随机存储器(SDRAM)。最终的系统在层级子系统中包括SDRAM控制器,一个NiosII处理器和一些嵌入式外设。通过添加不同的Qsys元件来产生测试数据,访问存储器以及验证返回数据,从而完成Qsys系统。最终系统包括下面的元件:n 基于Nios II/e的处理器子系统(包含在Altera完整的设计套件中)n SDRAM控制器(包含在Altera完整的设计套件中)n 伪随机二进制序列(Pseudo-random binary sequence,PRBS)模式发生器和校验器n 定制模式发生器和校验器n 模式选择复用器(Multiplexer)和解复用器(Demultiplexer)n 模式读写器(Pattern writer and reader)n 存储器测试控制器无需license即可在硬件中应用本最终系统。通过Altera免费的OpenCore Plus评估特性,可以进一步完成下面的工作:n 仿真系统行为以及验证其功能n 产生时限的器件编程文件n 器件编程并进行硬件验证设计实例文件包含了在任何设计中均可免费使用的元件。Nios II/e处理器核和DDR SDRAM IP核可以免费在Quartus II订购license中使用。为了匹配开发板上的存储器,设计文件对于不同的开发板使用不同的DDR SDRAM控制器。n 关于OpenCore Plus更多信息,请参考AN320:OpenCore Plus Evaluation of Megafunctions. 图1-1给出了设计实例完整的顶层系统。图1-1给出了作为一个Qsys系统,在存储器测试器系统中的元件,具有三个主要设计功能,如图中虚线框内所示。本指南采用层级结构表示将数据模式发生器和数据模式校验器分别例化为两个独立系统,然后包含在存储器检测器(Memory Tester)系统中。在一个高层系统中,层次表示可以例示某个系统作为一个元件。图1-1 顶层系统结构1.2.1 下载、安装设计实例按照下面的步骤下载并安装本指南设计实例:(1)从Qsys Tutorial Design Example网站下载Qsys Tutorial Design Example(.zip)文件;(2)解压缩文件中所有内容到某个目录中,注意在目录路径名种不要使用空格。1.2.2 打开实例工程本指南设计实例文件提供必需的定制IP设计模块和工程文件用于开始工作,并包括部分完成的QuartusII工程和Qsys系统。设计实例文件包括下面全部工程:n QuartusII工程I/O引脚分配,指定的Synopsys设计约束(.sdc)时序分配。n 参数化的Nios II处理器核,可与主PC机通讯来控制存储器测试系统。n 参数化的DDR SDRAM控制器,用于开发板上的存储器。按照下面的步骤打开实例工程:(1)打开Quartus II软件。(2)对应所用的开发板,打开Quartus II工程文件(.qpf): a. 在File菜单中,点击Open Project。 b. 浏览目录“tt_qsys_designquartus_ii_projects_for_boards”目录。 c. 选择相关开发板.qpf文件,点击Open。设计中的定制存储器测试元件是Verilog HDL元件,随同硬件元件描述文件(_hw.tcl)描述了每个元件的接口和参数。这些文件在tt_qsys_designmemory_tester_ip目录中。在Qsys中查看这些元件,在Component Libray标签上展开Memory Test Microcores,如下图中红色圆圈所示。一个IP索引(.ipx)文件为包含这些存储器测试元件的memory_tester_ip目录提供了参考。图 展开Memory Test MicrocoresCh2. 建立Qsys系统本章介绍如何例化(Instantiate)、参数化(Parameterize)以及连接元件到新建的Qsys系统。本章建立如图1-1所示的Qsys系统,包括下列设计模块:n 数据模式发生器(Data Pattern Generator)n 数据模式校验器(Data Pattern Checker)如果已经熟悉创建Qsys系统的过程,可以跳过本章直接进入第三章。实例设计文件包括了本章完整的系统。数据模式校验器产生高速流数据,完成PRBS或者软可编程序列,例如,“walking ones”。设计通过Avalon-ST连接发送数据到存储器主控器的模式写入器和控制逻辑。数据模式发生器根据控制逻辑发出的命令将数据写入存储器。当设计将数据写入存储器时,模式读逻辑读回内容并将它们发送给数据模式验证逻辑。数据模式校验器接收由模式读出器从Avalon-ST连接读回的数据。设计验证数据模式(Data Pattern),确保其写入存储器的模式与其读回的数据相同。当在系统中加入元件并产生连接时,Qsys Messages标签中的错误和警告信息指明了在系统完成之前必须要完成的步骤。某些错误信息不能立即解决,可能需要在后续步骤中得以解决。2.1 建立数据模式发生器(Data Pattern Generator)本节将建立数据模式发生器系统,包括两个用来产生测试模式的元件,以及一个用来处理器控制的数据多路复用的第三个元件。数据模式发生器可以配置成匹配不同的存储器接口宽度。由于数据模式发生器在每个时钟周期可以提供一个完整字的数据,配置该元件来匹配存储器宽度可以提供足够的带宽来快速访问存储器。在建立该Qsys系统之前,确保已经下载并安装了本指南实例文件,并打开Quartus II工程。2.1.1 建立新的带有时钟源的Qsys系统请按照下面的步骤来建立一个新的Qsys系统,并设置时钟源:(1)在Quartus II软件中,选择Tools菜单,并点击Qsys。(2)在Qsys,选择File菜单,点击New System。Qsys打开并显示一个新的空系统。在System Contents标签,Qsys显示出一个时钟源实例,clk_0。(3)右键点击clk_0并选择Edit,或在clk_0实例上双击即可打开时钟源的设置。(4)在建立系统时,关掉Clock frequency is known选项,意味着由例化该子系统的高层系统提供时钟频率。(5)点击Finish。(6)保存并命名系统: a在File菜单,点击Save As。 b输入文件名pattern_generator_system并点击Save。确保输入的系统名无误,因为本指南脚本被配置为使用该名称。2.1.2 加入管道桥(Pipeline Bridge)构建该系统的元件包括几个Avalon-MM从接口。为了让高层系统通过读和写一个单独从接口来访问所有Avalon-MM从接口,可以在Avalon-MM管道桥(Avalon-MM pipeline bridge)后面合并(consolidate)从接口,从该系统中引出一个单独的Avalon-MM从接口。该桥也加入一级流水线(pipelining),可以改善时序性能。按照下面的步骤来加入管道桥:(1)在Component Library标签中,展开Bridges and Adapters,然后展开Memory Mapped。另外一种方法是,在查找框中输入bridge,会显示只有桥元件的列表。点击查找框右边的“x”,即可清除查找滤波条件。(2)点击Avalon-MM Pipeline Bridge元件并点击Add。也可以双击Avalon-MM Pipeline Bridge。即可打开参数编辑框。(3)在参数编辑框,Address width输入11,即设定了在该系统中映射存储器元件的范围。(4)点击Finish。默认桥加入了系统中,该桥的例化名为mm_bridge_0。(5)设置mm_bridge_0的时钟域为clk_0:n 在Clock列对应mm_bridge_0的clk接口,从下拉列表中选择clk_0。n 也可以在Connections列设置连接。点击clk_0的clk output和mm_bridge_0的clk input之间的圆点,使圆点填充即可。n 也可以在mm_bridge_0的clk input上点击右键,鼠标指向mm_bridge_0.clk Connection,并选择clk_0.clk。(6)用名字slave导出mm_bridge_0 s0接口。点击Export列并输入slave。2.1.3 加入定制模式发生器(Custom Pattern Generator)通过配置定制模式发生器可以产生多种测试模式。用模式(样本)数据和模式(样本)长度对元件进行编程。当达到样本结尾时,定制模式发生器循环回样本的第一个元素。该元件产生下面的样本:n Walking onesn Walking zerosn Low frequencyn Alternating low frequencyn High frequencyn Alternating high frequencyn Synchronous PRBS同步PRBS样本是最长的样本,包括256个元素。存储器的宽度规定了walking ones或walking zeros样本的长度。例如,当测试32位存储器时,walking ones或walking zeros样本长度即为32个元素。High和low frequency样本仅包含2个元素。定制模式发生器包括三个接口,其中两个控制产生的样本。另外一个控制定制模式产生的方式。处理器访问pattern_access接口(只能写),编程要发送到样本记录器核的定制样本元素。St_pattern_output是流源接口,该接口发送数据到样本记录器核。按照下面的步骤加入定制模式发生器:(1)在Component Library标签页,在Project下方展开Memory Test Microcores,并且双击Custom Pattern Generator,参数编辑窗口出现。(2)接受默认参数设置,点击Finish按钮。(3)在System Contents标签页,重命名定制模式产生器为custom_pattern_generator: a在Name列,右键单击custom_pattern_generator_0,并且选择Rename。 b从名字中去掉_0字符。(4)设置custom_pattern_generator时钟域为clk_0。(5)连接custom_pattern_generator csr接口到mm_bridge_0 m0接口:n 在Connections列,点击custom_pattern_generator csr接口和mm_bridge_0 m0接口之间的圆点,使之填充。n 也可以,在custom_pattern_generator.csr上点击鼠标右键,在右键菜单中点击custom_pattern_generator.csr Connections,并且选择mm_bridge_0.m0。(6)连接custom_pattern_generator pattern_access接口到mm_bridge_0 m0接口。(7)分配custom_pattern_generator csr接口的基地址为0400: a在Base列,在地址0x00000000上双击鼠标左键。 b输入十六进制格式的基地址400。分配该基地址比pattern_access接口的终止地址高,是为了避免与pattern_access接口的地址空间冲突。(8)保持custom_pattern_generator pattern_access接口的基地址0000。2.1.4 加入PRBS模式发生器PRBS模式发生器的输出是一个定义为静态(statically-defined)PRBS样本。在参数编辑器中,在样本重复之前可以指定样本长度。样本长度定义为2(数据宽度)-1。例如,一个32位的PRBS模式发生器,在发送232=4294967295个元素后开始重复该样本。根据开发板上存储器的数据宽度来设置PRBS发生器的宽度。PRBS模式发生器有两个接口。Csr接口控制产生PRBS样本的方式。St_pattern_output流源接口发送数据到样本记录器元件。按照下面的步骤加入PRBS模式发生器:(1)在Memory Test Microcores组双击PRBS Pattern Generator,即可出现参数编辑器。(2)采用默认参数设置,点击Finish。(3)重命名为prbs_pattern_generator。(4)设置prbs_pattern_generator时钟域为clk_0。(5)连接prbs_pattern_generator csr接口到mm_bridge_0 m0接口。(6)分配prbs_pattern_generator csr接口的基地址为0x0420(高于custom_pattern_generator csr接口的基地址0x0400)。2.1.5 加入2-1流复用器(Two-to-One Streaming Multiplexer)由于系统有两个样本源(pattern sources),并且样本记录器(writer)元件只能从一个流源(streaming source)接收数据,因此需要在模式发生器和模式写入器之间加入一个2-1流复用器。2-1流软件可编程多路复用器IP核允许处理器选择某个样本发送到样本记录器元件。元件具有下面的接口:n 两个流输入端:st_input_A和st_input_B。n 一个流输出端:st_output。n 一个csr从接口,由处理器控制选择输入A或输入B发送到流输出端。定制模式发生器连接到A输入端;PRBS模式发生器连接到B输入端。按照下面的步骤加入2-1流复用器:(1)在Memory Test Microcores组双击Two-to-one Streaming Mux即可出现参数编辑窗口。(2)采用默认参数,点击Finish。(3)重命名为two_to_one_st_mux。(4)设置two_to_one_st_mux的时钟域为clk_0。(5)连接two_to_one_st_mux st_input_A接口到custom_pattern_generator st_pattern_output接口。(6)连接two_to_one_st_mux st_input_B接口到prbs_pattern_generator st_pattern_output接口。(7)连接two_to_one_st_mux csr接口到mm_bridge_0 m0接口。(8)用st_data_out导出two_to_one_st_mux st_output接口。(9)分配two_to_one_st_mux csr接口基地址为0x0440(高于prbs_pattern_generator csr接口的基地址0x0420)。2.1.6 校验存储器地址映射(Memory Address Map)为了确保建立系统的存储器映射与本指南其它部分所使用的存储器映射匹配,需要校验系统中的基地址。点击Address Map标签,确认表中的入口(entries)与表2-1中的值匹配。红色感叹号标志表示地址范围重叠。修改地址映射,确保没有重叠地址,保证映射与本指南匹配。2.1.7 连接复位信号(Reset Signals)和插入适配器(Adapters)必须连接所有的复位信号,从而消除Messages标签中的某些错误信息。Qsys运行系统有多个复位域(reset domains),或者一个复位信号。本设计中,我们连接所有的复位信号到引入的复位信号上,以至于我们可以使用Qsys自动连接特性。为了将所有的复位信号连接在一起,在System菜单,选择Create Global Reset Network。在Messages标签中剩下的错误信息与模式发生器和多路复用器之间的准备延迟(ready latency)不匹配有关。为了消除流源(Source)与接收器(Sink)时序特性之间的不匹配,在System菜单选择Insert Avalon-ST Adapters,从而Qsys自动插入流时序适配器到适当的数据路径。Qsys显示没有剩余的错误或警告信息。如果在Messages标签中还有任何错误信息,回顾前面建立系统的过程,确保没有错过任何步骤。可以在System Contents标签查看复位连接和时序适配器。保存系统,在File菜单选择Save。现在已经为设计(如图图1-1)建立了包括数据模式发生器的一个系统。在整个系统中,2-1流复用器的输出加载定制模式发生器或PRBS模式发生器的模式数据到模式记录器(writer)。从2-1流复用器输出的数据可以达到每个时钟周期一个字的吞吐量。2.2 建立数据模式校验器(Data Pattern Checker)本节将建立数据模式校验器系统,和数据模式发生器系统类似。系统从SDRAM读回样本,并发送到模式校验器来根据数据模式发生器产生的样本进行校验。样本阅读器(reader)发送数据到1-2流解复用器,进而将数据路由到定制模式校验器或PRBS模式校验器。1-2流解复用器是软件可编程的,处理器可以选择哪一个模式校验器IP核校验样本阅读器读出的数据。定制模式校验器也是软件可编程的,可以配置为与定制模式发生器相匹配的相同的样本。2.2.1 建立新的Qsys系统并设置时钟源按照下面的步骤来建立一个新的Qsys系统并设置时钟源:(1)在File菜单,点击New System,Qsys打开并显示一个新的空系统。在System Contents标签,Qsys显示一个时钟源,clk_0。(2)双击该时钟源并编辑时钟源设置。(3)在建立新系统时,关闭Clock frequency is known表明调用该模块的高层系统来提供时钟频率。(4)点击Finish。(5)保存模式校验器系统: a. 在File菜单,点击Save As。 b. 输入文件名pattern_checker_system并点击Save。2.2.2 加入管道桥(Pipeline Bridge)根据下面的步骤来加入管道桥合并从接口:(1)在Component Library标签,展开Bridges and Adapters,展开Memory Mapped。(2)点击Avalon-MM Pipeline Bridge元件并点击Add,出现参数编辑窗口。(3)在参数编辑器,输入Address width为11,满足系统中的存储器映射元件宽度。(4)点击Finish,默认的名称为mm_bridge_0。(5)设置mm_bridge_0时钟域为clk_0。(6)导出mm_bridge_0 s0接口,名称为slave。2.2.3 加入1-2流解复用器(One-to-Two Streaming Demultiplexer)1-2流解复用器完成2-1流复用器相反的操作。解复用器具有一个流输入接口,st_input,从样本阅读器接收数据,两个流输出接口,st_output_A和st_output_B,连接定制模式发生器和PRBS模式发生器。为了允许处理器对通过元件的数据进行编程,系统还包括一个从接口,csr。按照下面的步骤添加1-2流解复用器:(1)在Memory Test Microcores组中双击One-to-two Streaming Demux,出现参数编辑窗口。(2)接受默认参数,点击Finish。(3)在System Contents标签,重命名为one_to_two_st_demux。(4)设置one_to_two_st_demux时钟域为clk_0。(5)导出one_to_two_st_demux st_input接口,名称为st_data_in。(6)连接one_to_two_st_demux csr接口到mm_bridge_0 m0接口。(7)分配one_to_two_st_demux csr接口基地址为0x0400。2.2.4 加入定制模式校验器(Custom Pattern C)定制模式校验器完成定制模式发生器的相反操作。具有一个流输入接口,st_pattern_input,从1-2流解复用器接收数据。一个Avalon-MM从接口,csr,用于处理器控制元件。还有一个存储器映射从接口,pattern_access,用于处理器编程与定制模式发生器元件相同的模式。按照下面的步骤添加定制模式校验器:(1)在Memory Test Microcores组双击Custom Pattern Checker,出现参数编辑窗口。(2)接收默认参数,点击Finish。(3)重命名为custom_pattern_checker。(4)设置custom_pattern_checker的时钟域为clk_0。(5)连接custom_pattern_checker csr和pattern_access接口到mm_bridge_0 m0接口。(6)连接custom_pattern_checker st_pattern_input接口到one_to_two_st_demux st_output_A接口。(7)分配custom_pattern_checker csr接口基地址为0x0420。(8)分配custom_pattern_checker pattern_access接口的基地址为0x0000。2.2.5 加入PRBS模式校验器PRBS模式校验器完成PRBS模式发生器的相反操作。具有一个存储器映射从接口,csr,处理器可以访问控制元件。还有一个流输入,st_pattern_input,接收1-2流解复用器数据。按照下面的步骤添加PRBS模式校验器:(1)在Memory Test Microcores组双击PRBS Pattern Checker,出现参数编辑窗口。(2)接收默认设置,点击Finish。(3)重命名为prbs_pattern_checker。(4)设置prbs_pattern_checker的时钟域为clk_0。(5)连接prbs_pattern_checker csr接口到mm_bridge_0 m0接口。(6)连接prbs_pattern_checker st_pattern_input接口到one_to_two_st_demux st_output_B接口。(7)分配prbs_pattern_checker csr接口基地址为0x0440。2.2.6 校验存储器地址映射(Memory Address Map)为了确保所建立系统的存储器映射与本指南其它部分的存储器映射相匹配,需要校验系统中的基地址。点击Address Map标签,确认表中内容与表2-2一致。2.2.7 连接复位信号必须连接所有的复位信号。在System菜单,选择Create Global Reset Network将所有复位信号连接在一起。Qsys显示没有错误或警告信息。如果在Messages标签中还有其它错误信息,检查建立系统的过程,确保没有错过任何步骤。在System Contents标签中可以查看复位连接及时序适配器。保存系统。现在已经建立了验证从存储器读回数据的系统。顶层系统经过流接口发送来自于模式阅读器元件的数据。数据进入1-2流解复用器,路由到定制模式校验器或PRBS模式校验器。用于存储器测试的下一级子系统已经完成了。下面进入第三章,装配层级系统,在层级系统设计中使用这些系统模块。Ch3. 装配层级系统(Assembling Hierarchical Systems)本指南描述了在Qsys中层级系统的设计。通过将大的系统分解成小的子系统,层级系统可用建立充分使用的模块化系统元件,也可以很容易的形成大系统。本指南使用第二章建立的Qsys系统(或设计文件完成的系统版本)作为存储器测试器系统中的层级子系统,然后在顶层系统中例示存储器测试器系统。在顶层系统中也包括一个处理器系统和一个SDRAM控制器。图3-1所示为顶层系统中的高层接口。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论