原创 by DeeZeng [ Intel FPGA笔记 ]

Intel FPGA Quartus 软件中的 Qsys工具 也就是 Platform Designer 系统集成工具,可以

  1. 图形化界面操作
  2. 使用系统自带ip,自定义ip
  3. 系统自动生成 ip 间的连接
  4. 设计好的 qsys 系统 可作为模块给其他qsys系统调用

如果我们不对 qsys子模块进行设置,那在新的qsys中整合的时候,将只能使用qsys子模块中固定的设置。

那我们如何将 qsys 子系统设置成像自定义ip 一样有参数传入呢?

我们可以通过 Instance Parameters 的方式实现,qsys子系统添加后效果如下图

具体的步骤如下:

  1. 打开需要设置参数传入的 qsys
  2. 在 View -> Instance Parameters 打开 Instance Parameters 窗口
  3. 在 Instance 窗口界面设置  参数传入

  4. 在第3步骤 图章1 Instance Parameters 中: 设置 传入参数 名称,类型,范围,解释等
  5. 在第3步骤 图章2 Instance Script 中: 将参数通过写脚本绑定的 qsys 中的各个 ip。 比如上图中 是将 qsys 的DATA_WIDTH 传给了 dma_write_master_0的 DATA_WIDTH
  6. 如下附录了 比较完整的 Script 代码:
# request a specific version of the scripting API
package require -exact qsys 16.1 # Set the name of the procedure to manipulate parameters
set_module_property COMPOSITION_CALLBACK compose proc compose {} {
set_instance_parameter_value dma_read_master_0 DATA_WIDTH [ get_parameter_value DATA_WIDTH ]
set_instance_parameter_value dma_read_master_0 LENGTH_WIDTH [ get_parameter_value LENGTH_WIDTH ]
set_instance_parameter_value dma_read_master_0 FIFO_DEPTH [ get_parameter_value FIFO_DEPTH ]
set_instance_parameter_value dma_read_master_0 GUI_MAX_BURST_COUNT [ get_parameter_value GUI_MAX_BURST_COUNT ]
set_instance_parameter_value modular_sgdma_dispatcher_0 DESCRIPTOR_FIFO_DEPTH [ get_parameter_value DESCRIPTOR_FIFO_DEPTH ] set_instance_parameter_value mm_clock_crossing_bridge_1 DATA_WIDTH [ get_parameter_value DATA_WIDTH ]
set_instance_parameter_value mm_clock_crossing_bridge_1 MAX_BURST_SIZE [ get_parameter_value GUI_MAX_BURST_COUNT ]
set_instance_parameter_value mm_clock_crossing_bridge_1 RESPONSE_FIFO_DEPTH [ get_parameter_value RESPONSE_FIFO_DEPTH]
set_instance_parameter_value mm_clock_crossing_bridge_1 ADDRESS_WIDTH [ get_parameter_value LENGTH_WIDTH] set_instance_parameter_value mm_bridge_0 DATA_WIDTH [ get_parameter_value DATA_WIDTH ]
set_instance_parameter_value mm_bridge_0 MAX_BURST_SIZE [ get_parameter_value GUI_MAX_BURST_COUNT ]
set_instance_parameter_value mm_bridge_0 ADDRESS_WIDTH [ get_parameter_value LENGTH_WIDTH]
}

操作完如上6个步骤,将qsys 子系统保存好。

在另外的qsys中调用的时候,我们将可以看到:

这样 我们的qsys 子系统,也能够进行参数设置了!类似于一个可设置参数的ip。

如何将 qsys 子模块设置为参数可调的方式给另外的qsys 调用的更多相关文章

  1. 设置JVM参数的几种方式解决java.lang.OutOfMemoryError:Java heap space

    一.首先给出查询当前JVM内存的代码: 下面是查询当前JVM 内存大小的代码,可以测试设置后JVM 的内存是否会变化.增加JVM 内存的配置项后,无需重新启动eclipse .具体的代码如下: pub ...

  2. FastJSON 设置默认参数,全局配置方式 和 一些使用方式、坑

    如果要被序列化的对象含有一个date属性或者多个date属性按照相同的格式序列化日期的话,那我们可以使用下面的语句实现: 在应用的的Main方法体里配置全局参数: JSONObject.DEFFAUL ...

  3. Eclipse设置jvm参数的三种方式

    方式1. 修改Elipse运行JRE默认JVM参数打开Eclipse,选择Window--Preferences...在对话框左边的树上双击Java,再双击Installed JREs,在右边选择前面 ...

  4. myeclipse设置jvm参数的三种方式

    方法一: 打开eclipse,选择Window--Preferences...在对话框左边的树上双击Java,再双击Installed JREs,在右边选择前面有对勾的JRE,再单击右边的“Edit” ...

  5. SpringBoot基础学习(三) 自定义配置、随机数设置及参数间引用

    自定义配置 SpringBoot免除了项目中大部分手动配置,可以说,几乎所有的配置都可以写在全局配置文件application.peroperties中,SpringBoot会自动加载全局配置文件从而 ...

  6. tomcat,zookeeper,activeMQ,Kafka设置jvm参数

    1,tomcat设置jvm参数 设置方法:   在tomcat bin 目录增加配置:setenv.sh   #add tomcat pid CATALINA_PID="$CATALINA_ ...

  7. Scala命令设置JVM参数的规则

    Scala下设置JVM参数简单分析 Scala 启动shell脚本,简化后的scala REPL 启动命令大致如下所示: java -Xmx256M -Xms32M \-Xbootclasspath/ ...

  8. 【Unity】13.2 通过Lighting Window设置相关参数

    分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 Unity 5.3.4的Lighting Window有3个选项卡:Object.Scene.Lightmaps. 二. ...

  9. 设置JVM参数,查看堆大小

    1.在eclipse设置JVM参数     打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效,也就是在eclipse中运行的java程序)编辑当前 ...

随机推荐

  1. 有了VARCHAR,为什么还要有CHAR?

    VarcharVarchar往往用来保存可变长度的字符串.简单的说,我们只是给其固定了一个最大值,然后系统会根据实际存储的数据量来分配合适的存储空间.为此相比CHAR字符数据而言,其能够比固定长度类型 ...

  2. WPF中的文字修饰——上划线,中划线,基线与下划线

    原文:WPF中的文字修饰——上划线,中划线,基线与下划线 我们知道,文字的修饰包括:空心字.立体字.划线字.阴影字.加粗.倾斜等.这里只说划线字的修饰方式,按划线的位置,我们可将之分为:上划线.中划线 ...

  3. .net与.net core学习目录

    .net C#调用python 模拟请求(模拟header/gzip解压/泛型) C#控制台关闭之前做一些操作 C# 元组.匿名对象.ref&out DataTable转换为Entity(反射 ...

  4. jquery通过索引获取元素

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  5. 基于Spring开发

    1. XML Schema 1.1 最简单的标签 一个最简单的标签,形式如: <bf:head-routing key="1" value="1" to= ...

  6. miniui处理多重子表级联,一次性提交多表数据的ui要点

    在一个ui界面上 有a,b,c三个表 a表只有一条记录,b表有多条记录,c表有多条记录 b是a的子表,c是b的子表 都是一对多关系 一次性下载相关联的c表记录 然后mini-datagrid采用cli ...

  7. vs2017 cordova调试ios app

    https://docs.microsoft.com/en-us/visualstudio/cross-platform/tools-for-cordova/first-steps/ios-guide ...

  8. uwp开发:数据绑定——值转换器 的简单使用

    原文:uwp开发:数据绑定--值转换器 的简单使用 今天,我在做最近正在开发的“简影”uwp应用时遇到一个问题,其中有个栏目,叫做“画报”,是分组显示一组一组的 图片,每组图片在界面上只显示9个,点击 ...

  9. C++/CLI 中使用 ref 和 out

    void fun(int^ % i){} // C# ref void fun([out]int^ % i) {} // C# out

  10. EF CodeFirst数据迁移与防数据库删除

    1 开启migrations功能 enable-migrations -force 2 添加迁移版本 add-migration 名称后缀 我们每次修改实体后,都应该使用这个add-migration ...