Qsys系统设计指南.docx

上传人:b****0 文档编号:9363980 上传时间:2023-05-18 格式:DOCX 页数:18 大小:24.49KB
下载 相关 举报
Qsys系统设计指南.docx_第1页
第1页 / 共18页
Qsys系统设计指南.docx_第2页
第2页 / 共18页
Qsys系统设计指南.docx_第3页
第3页 / 共18页
Qsys系统设计指南.docx_第4页
第4页 / 共18页
Qsys系统设计指南.docx_第5页
第5页 / 共18页
Qsys系统设计指南.docx_第6页
第6页 / 共18页
Qsys系统设计指南.docx_第7页
第7页 / 共18页
Qsys系统设计指南.docx_第8页
第8页 / 共18页
Qsys系统设计指南.docx_第9页
第9页 / 共18页
Qsys系统设计指南.docx_第10页
第10页 / 共18页
Qsys系统设计指南.docx_第11页
第11页 / 共18页
Qsys系统设计指南.docx_第12页
第12页 / 共18页
Qsys系统设计指南.docx_第13页
第13页 / 共18页
Qsys系统设计指南.docx_第14页
第14页 / 共18页
Qsys系统设计指南.docx_第15页
第15页 / 共18页
Qsys系统设计指南.docx_第16页
第16页 / 共18页
Qsys系统设计指南.docx_第17页
第17页 / 共18页
Qsys系统设计指南.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Qsys系统设计指南.docx

《Qsys系统设计指南.docx》由会员分享,可在线阅读,更多相关《Qsys系统设计指南.docx(18页珍藏版)》请在冰点文库上搜索。

Qsys系统设计指南.docx

Qsys系统设计指南

Qsys系统设计指南

Ch1.绪论

软硬件需求

概述

下载、安装设计实例

打开实例工程

Ch2.建立Qsys系统

建立数据模式发生器(DataPatternGenerator)

建立新的带有时钟源的Qsys系统

加入管道桥(PipelineBridge)

加入定制模式发生器(CustomPatternGenerator)

加入PRBS模式发生器

加入2-1流复用器(Two-to-OneStreamingMultiplexer)

校验存储器地址映射(MemoryAddressMap)

连接复位信号(ResetSignals)和插入适配器(Adapters)

建立数据模式校验器(DataPatternChecker)

建立新的Qsys系统并设置时钟源

加入管道桥(PipelineBridge)

加入1-2流解复用器(One-to-TwoStreamingDemultiplexer)

加入定制模式校验器(CustomPatternC)

加入PRBS模式校验器

校验存储器地址映射(MemoryAddressMap)

连接复位信号

Ch3.装配层级系统(AssemblingHierarchicalSystems)

建立层级存储器检测器(HierarchicalMemoryTester)

加入数据模式发生器(DataPatternGenerator)

加入模式校验器(DataPatternChecker)

加入存储器主元件(MemoryMasterComponents)

连接复位信号

指定存储器地址映射(MemoryAddressMap)

完成顶层系统(Top-LevelSystem)

编译并下载软件到开发板

Ch.4在系统控制台(SystemConsole)验证硬件

理解脚本(UnderstandingtheScripts)

打开实例工程(TutorialProject)

加入JTAG-to-Avalon主桥(MasterBridge)

编译并使用系统控制台控制开发板

Ch5.仿真定制元件(CustomComponents)

在Qsys中产生Testbench系统

打开实例工程(TutorialProject)

为设计测试(DesignUnderTest)建立一个新的Qsys系统

导出所有设计测试接口(DesignUnderTestInterfaces)

产生一个QsysTestbench系统

产生QsysTestbench系统仿真模型

在ModelSim-Altera软件中执行仿真

设置仿真环境

执行仿真

附加信息

文档版本历史

如何联系Altera

Ch1.绪论

本指南介绍可在QuartusII软件中使用的Qsys系统集成工具。

本指南介绍了如何设计一个使用不同的测试模式来测试一个外部存储器件的系统。

通过系统需求分析,硬件设计任务,以及系统性能分析,重点在于构架系统。

在理解Qsys开发流程的基础上,可以进一步设计自己的Qsys系统。

1.1软硬件需求

本指南需要下面的软件支持:

⏹AlteraQuartusIIV11.0以上软件系统需求及安装指令请参考AlteraSoftwareInstallationandLicensing

⏹NiosIIEDSV11.0以上

⏹Tt_qsys_design.zip设计实例文件,可以从QsysTutorialDesignExample网站下载。

该设计实例文件包括可设置选择Altera开发板的工程文件。

如果满足下面的要求,可以根据本指南建立任何Altera开发板或自定制板的Qsys系统。

⏹板上必须包括Altera的Arria、Cyclone或Stratix系列FPGA。

⏹FPGA必须包括至少12K逻辑单元(LEs)或自适应查找表(ALUTs)。

⏹FPGA必须包括至少150Kb嵌入式存储器。

⏹板上必须有JTAG接口,用于主机监控板上FPGA内部存储器程序执行。

⏹板上必须包括用于设计测试的存储器。

例如,任意具有Avalon-MM从接口的基于Qsys控制器的存储器。

为了在开发板上完成本指南,请参考开发板文档中对时钟频率和引脚描述。

对于Altera开发板,可以在相关参考手册中找到对应信息。

1.2概述

本指南中建立的Qsys系统用来测试一个同步动态随机存储器(SDRAM)。

最终的系统在层级子系统中包括SDRAM控制器,一个NiosII处理器和一些嵌入式外设。

通过添加不同的Qsys元件来产生测试数据,访问存储器以及验证返回数据,从而完成Qsys系统。

最终系统包括下面的元件:

⏹基于NiosII/e的处理器子系统(包含在Altera完整的设计套件中)

⏹SDRAM控制器(包含在Altera完整的设计套件中)

⏹伪随机二进制序列(Pseudo-randombinarysequence,PRBS)模式发生器和校验器

⏹定制模式发生器和校验器

⏹模式选择复用器(Multiplexer)和解复用器(Demultiplexer)

⏹模式读写器(Patternwriterandreader)

⏹存储器测试控制器

无需license即可在硬件中应用本最终系统。

通过Altera免费的OpenCorePlus评估特性,可以进一步完成下面的工作:

⏹仿真系统行为以及验证其功能

⏹产生时限的器件编程文件

⏹器件编程并进行硬件验证

设计实例文件包含了在任何设计中均可免费使用的元件。

NiosII/e处理器核和DDRSDRAMIP核可以免费在QuartusII订购license中使用。

为了匹配开发板上的存储器,设计文件对于不同的开发板使用不同的DDRSDRAM控制器。

⏹关于OpenCorePlus更多信息,请参考AN320:

OpenCorePlusEvaluationofMegafunctions.

图1-1给出了设计实例完整的顶层系统。

图1-1给出了作为一个Qsys系统,在存储器测试器系统中的元件,具有三个主要设计功能,如图中虚线框内所示。

本指南采用层级结构表示——将数据模式发生器和数据模式校验器分别例化为两个独立系统,然后包含在存储器检测器(MemoryTester)系统中。

在一个高层系统中,层次表示可以例示某个系统作为一个元件。

图1-1顶层系统结构

1.2.1下载、安装设计实例

按照下面的步骤下载并安装本指南设计实例:

(1)从QsysTutorialDesignExample网站下载QsysTutorialDesignExample(.zip)文件;

(2)解压缩文件中所有内容到某个目录中,注意在目录路径名种不要使用空格。

1.2.2打开实例工程

本指南设计实例文件提供必需的定制IP设计模块和工程文件用于开始工作,并包括部分完成的QuartusII工程和Qsys系统。

设计实例文件包括下面全部工程:

⏹QuartusII工程I/O引脚分配,指定的Synopsys设计约束(.sdc)时序分配。

⏹参数化的NiosII处理器核,可与主PC机通讯来控制存储器测试系统。

⏹参数化的DDRSDRAM控制器,用于开发板上的存储器。

按照下面的步骤打开实例工程:

(1)打开QuartusII软件。

(2)对应所用的开发板,打开QuartusII工程文件(.qpf):

a.在File菜单中,点击OpenProject。

b.浏览目录“tt_qsys_design\quartus_ii_projects_for_boards\\”目录。

c.选择相关开发板.qpf文件,点击Open。

设计中的定制存储器测试元件是VerilogHDL元件,随同硬件元件描述文件(_hw.tcl)描述了每个元件的接口和参数。

这些文件在tt_qsys_design\memory_tester_ip目录中。

在Qsys中查看这些元件,在ComponentLibray标签上展开MemoryTestMicrocores,如下图中红色圆圈所示。

一个IP索引(.ipx)文件为包含这些存储器测试元件的memory_tester_ip目录提供了参考。

图展开MemoryTestMicrocores

Ch2.建立Qsys系统

本章介绍如何例化(Instantiate)、参数化(Parameterize)以及连接元件到新建的Qsys系统。

本章建立如图1-1所示的Qsys系统,包括下列设计模块:

⏹数据模式发生器(DataPatternGenerator)

⏹数据模式校验器(DataPatternChecker)

如果已经熟悉创建Qsys系统的过程,可以跳过本章直接进入第三章。

实例设计文件包括了本章完整的系统。

数据模式校验器产生高速流数据,完成PRBS或者软可编程序列,例如,“walkingones”。

设计通过Avalon-ST连接发送数据到存储器主控器的模式写入器和控制逻辑。

数据模式发生器根据控制逻辑发出的命令将数据写入存储器。

当设计将数据写入存储器时,模式读逻辑读回内容并将它们发送给数据模式验证逻辑。

数据模式校验器接收由模式读出器从Avalon-ST连接读回的数据。

设计验证数据模式(DataPattern),确保其写入存储器的模式与其读回的数据相同。

当在系统中加入元件并产生连接时,QsysMessages标签中的错误和警告信息指明了在系统完成之前必须要完成的步骤。

某些错误信息不能立即解决,可能需要在后续步骤中得以解决。

2.1建立数据模式发生器(DataPatternGenerator)

本节将建立数据模式发生器系统,包括两个用来产生测试模式的元件,以及一个用来处理器控制的数据多路复用的第三个元件。

数据模式发生器可以配置成匹配不同的存储器接口宽度。

由于数据模式发生器在每个时钟周期可以提供一个完整字的数据,配置该元件来匹配存储器宽度可以提供足够的带宽来快速访问存储器。

在建立该Qsys系统之前,确保已经下载并安装了本指南实例文件,并打开QuartusII工程。

2.1.1建立新的带有时钟源的Qsys系统

请按照下面的步骤来建立一个新的Qsys系统,并设置时钟源:

(1)在QuartusII软件中,选择Tools菜单,并点击Qsys。

(2)在Qsys,选择File菜单,点击NewSystem。

Qsys打开并显示一个新的空系统。

在SystemContents标签,Qsys显示出一个时钟源实例,clk_0。

(3)右键点击clk_0并选择Edit,或在clk_0实例上双击即可打开时钟源的设置。

(4)在建立系统时,关掉Clockfrequencyisknown选项,意味着由例化该子系统的高层系统提供时钟频率。

(5)点击Finish。

(6)保存并命名系统:

a.在File菜单,点击SaveAs。

b.输入文件名pattern_generator_system并点击Save。

确保输入的系统名无误,因为本指南脚本被配置为使用该名称。

2.1.2加入管道桥(PipelineBridge)

构建该系统的元件包括几个Avalon-MM从接口。

为了让高层系统通过读和写一个单独从接口来访问所有Avalon-MM从接口,可以在Avalon-MM管道桥(Avalon-MMpipelinebridge)后面合并(consolidate)从接口,从该系统中引出一个单独的Avalon-MM从接口。

该桥也加入一级流水线(pipelining),可以改善时序性能。

按照下面的步骤来加入管道桥:

(1)在ComponentLibrary标签中,展开BridgesandAdapters,然后展开MemoryMapped。

另外一种方法是,在查找框中输入bridge,会显示只有桥元件的列表。

点击查找框右边的“x”,即可清除查找滤波条件。

(2)点击Avalon-MMPipelineBridge元件并点击Add。

也可以双击Avalon-MMPipelineBridge。

即可打开参数编辑框。

(3)在参数编辑框,Addresswidth输入11,即设定了在该系统中映射存储器元件的范围。

(4)点击Finish。

默认桥加入了系统中,该桥的例化名为mm_bridge_0。

(5)设置mm_bridge_0的时钟域为clk_0:

⏹在Clock列对应mm_bridge_0的clk接口,从下拉列表中选择clk_0。

⏹也可以在Connections列设置连接。

点击clk_0的clkoutput和mm_bridge_0的clkinput之间的圆点,使圆点填充即可。

⏹也可以在mm_bridge_0的clkinput上点击右键,鼠标指向mm_bridge_0.clkConnection,并选择clk_0.clk。

(6)用名字slave导出mm_bridge_0s0接口。

点击Export列并输入slave。

2.1.3加入定制模式发生器(CustomPatternGenerator)

通过配置定制模式发生器可以产生多种测试模式。

用模式(样本)数据和模式(样本)长度对元件进行编程。

当达到样本结尾时,定制模式发生器循环回样本的第一个元素。

该元件产生下面的样本:

⏹Walkingones

⏹Walkingzeros

⏹Lowfrequency

⏹Alternatinglowfrequency

⏹Highfrequency

⏹Alternatinghighfrequency

⏹SynchronousPRBS

同步PRBS样本是最长的样本,包括256个元素。

存储器的宽度规定了walkingones或walkingzeros样本的长度。

例如,当测试32位存储器时,walkingones或walkingzeros样本长度即为32个元素。

High和lowfrequency样本仅包含2个元素。

定制模式发生器包括三个接口,其中两个控制产生的样本。

另外一个控制定制模式产生的方式。

处理器访问pattern_access接口(只能写),编程要发送到样本记录器核的定制样本元素。

St_pattern_output是流源接口,该接口发送数据到样本记录器核。

按照下面的步骤加入定制模式发生器:

(1)在ComponentLibrary标签页,在Project下方展开MemoryTestMicrocores,并且双击CustomPatternGenerator,参数编辑窗口出现。

(2)接受默认参数设置,点击Finish按钮。

(3)在SystemContents标签页,重命名定制模式产生器为custom_pattern_generator:

a.在Name列,右键单击custom_pattern_generator_0,并且选择Rename。

b.从名字中去掉_0字符。

(4)设置custom_pattern_generator时钟域为clk_0。

(5)连接custom_pattern_generatorcsr接口到mm_bridge_0m0接口:

⏹在Connections列,点击custom_pattern_generatorcsr接口和mm_bridge_0m0接口之间的圆点,使之填充。

⏹也可以,在custom_pattern_generator.csr上点击鼠标右键,在右键菜单中点击custom_pattern_generator.csrConnections,并且选择mm_bridge_0.m0。

(6)连接custom_pattern_generatorpattern_access接口到mm_bridge_0m0接口。

(7)分配custom_pattern_generatorcsr接口的基地址为0400:

a.在Base列,在地址0x00000000上双击鼠标左键。

b.输入十六进制格式的基地址400。

分配该基地址比pattern_access接口的终止地址高,是为了避免与pattern_access接口的地址空间冲突。

(8)保持custom_pattern_generatorpattern_access接口的基地址0000。

2.1.4加入PRBS模式发生器

PRBS模式发生器的输出是一个定义为静态(statically-defined)PRBS样本。

在参数编辑器中,在样本重复之前可以指定样本长度。

样本长度定义为2^(数据宽度)-1。

例如,一个32位的PRBS模式发生器,在发送2^32=个元素后开始重复该样本。

根据开发板上存储器的数据宽度来设置PRBS发生器的宽度。

PRBS模式发生器有两个接口。

Csr接口控制产生PRBS样本的方式。

St_pattern_output流源接口发送数据到样本记录器元件。

按照下面的步骤加入PRBS模式发生器:

(1)在MemoryTestMicrocores组双击PRBSPatternGenerator,即可出现参数编辑器。

(2)采用默认参数设置,点击Finish。

(3)重命名为prbs_pattern_generator。

(4)设置prbs_pattern_generator时钟域为clk_0。

(5)连接prbs_pattern_generatorcsr接口到mm_bridge_0m0接口。

(6)分配prbs_pattern_generatorcsr接口的基地址为0x0420(高于custom_pattern_generatorcsr接口的基地址0x0400)。

2.1.5加入2-1流复用器(Two-to-OneStreamingMultiplexer)

由于系统有两个样本源(patternsources),并且样本记录器(writer)元件只能从一个流源(streamingsource)接收数据,因此需要在模式发生器和模式写入器之间加入一个2-1流复用器。

2-1流软件可编程多路复用器IP核允许处理器选择某个样本发送到样本记录器元件。

元件具有下面的接口:

⏹两个流输入端:

st_input_A和st_input_B。

⏹一个流输出端:

st_output。

⏹一个csr从接口,由处理器控制选择输入A或输入B发送到流输出端。

定制模式发生器连接到A输入端;PRBS模式发生器连接到B输入端。

按照下面的步骤加入2-1流复用器:

(1)在MemoryTestMicrocores组双击Two-to-oneStreamingMux即可出现参数编辑窗口。

(2)采用默认参数,点击Finish。

(3)重命名为two_to_one_st_mux。

(4)设置two_to_one_st_mux的时钟域为clk_0。

(5)连接two_to_one_st_muxst_input_A接口到custom_pattern_generatorst_pattern_output接口。

(6)连接two_to_one_st_muxst_input_B接口到prbs_pattern_generatorst_pattern_output接口。

(7)连接two_to_one_st_muxcsr接口到mm_bridge_0m0接口。

(8)用st_data_out导出two_to_one_st_muxst_output接口。

(9)分配two_to_one_st_muxcsr接口基地址为0x0440(高于prbs_pattern_generatorcsr接口的基地址0x0420)。

2.1.6校验存储器地址映射(MemoryAddressMap)

为了确保建立系统的存储器映射与本指南其它部分所使用的存储器映射匹配,需要校验系统中的基地址。

点击AddressMap标签,确认表中的入口(entries)与表2-1中的值匹配。

红色感叹号标志表示地址范围重叠。

修改地址映射,确保没有重叠地址,保证映射与本指南匹配。

2.1.7连接复位信号(ResetSignals)和插入适配器(Adapters)

必须连接所有的复位信号,从而消除Messages标签中的某些错误信息。

Qsys运行系统有多个复位域(resetdomains),或者一个复位信号。

本设计中,我们连接所有的复位信号到引入的复位信号上,以至于我们可以使用Qsys自动连接特性。

为了将所有的复位信号连接在一起,在System菜单,选择CreateGlobalResetNetwork。

在Messages标签中剩下的错误信息与模式发生器和多路复用器之间的准备延迟(readylatency)不匹配有关。

为了消除流源(Source)与接收器(Sink)时序特性之间的不匹配,在System菜单选择InsertAvalon-STAdapters,从而Qsys自动插入流时序适配器到适当的数据路径。

Qsys显示没有剩余的错误或警告信息。

如果在Messages标签中还有任何错误信息,回顾前面建立系统的过程,确保没有错过任何步骤。

可以在SystemContents标签查看复位连接和时序适配器。

保存系统,在File菜单选择Save。

现在已经为设计(如图图1-1)建立了包括数据模式发生器的一个系统。

在整个系统中,2-1流复用器的输出加载定制模式发生器或PRBS模式发生器的模式数据到模式记录器(writer)。

从2-1流复用器输出的数据可以达到每个时钟周期一个字的吞吐量。

2.2建立数据模式校验器(DataPatternChecker)

本节将建立数据模式校验器系统,和数据模式发生器系统类似。

系统从SDRAM读回样本,并发送到模式校验器来根据数据模式发生器产生的样本进行校验。

样本阅读器(reader)发送数据到1-2流解复用器,进而将数据路由到定制模式校验器或PRBS模式校验器。

1-2流解复用器是软件可编程的,处理器可以选择哪一个模式校验器IP核校验样本阅读器读出的数据。

定制模式校验器也是软件可编程的,可以配置为与定制模式发生器相匹配的相同的样本。

2.2.1建立新的Qsys系统并设置时钟源

按照下面的步骤来建立一个新的Qsys系统并设置时钟源:

(1)在File菜单,点击NewSystem,Qsys打开并显示一个新的空系统。

在SystemContents标签,Qsys显示一个时钟源,clk_0。

(2)双击该时钟源并编辑时钟源设置。

(3)在建立新系统时,关闭Clockfrequencyisknown表明调用该模块的高层系统来提供时钟频率。

(4)点击Finish。

(5)保存模式校验器系统:

a.在File菜单,点击SaveAs。

b.输入文件名pattern_checker_system并点击Save。

2.2.2加入管道桥(PipelineBridge)

根据下面的步骤来加入管道桥合并从接口:

(1)在ComponentLibrary标签,展开BridgesandAdapters,展开MemoryMapped。

(2)点击Avalon-MMPipelineBridge元件并点击Add,出现参数编辑窗口。

(3)在参数编辑器,输入Addresswidth为11,满足系统中的存储器映射元件宽度。

(4)点击Finish,默认的名称为mm_bridge_0。

(5)设置mm_bridge_0时钟域为clk_0。

(6)导出mm_bridge_0s0接口,名称为slave。

2.2.3加入1-2流解复用器(One-to-TwoStreamingDemultiplexer)

1-2流解复用器完成2-1流复用器相反的操作。

解复用器具有一个流输入接口,st_input,从样本阅读器接收数据,两个流输出接口,st_output_A和st_output_B,连接定制模式发生器和PRBS模式发生器。

为了允许处理器对通过元件的数据进行编程,系统还包括

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2