Quartus工程的qsf配置约束文件介绍

news2024/9/21 2:32:29

一、qsf文件概述

qsf:Quartus Setting File,是Quartus工程的配置文件;

包含一个Quartus工程的所有约束,包括工程的软件版本信息、FPGA器件信息、引脚约分配、引脚电平分配,编译约束和用于Classic TimingAnalyzer的时序约束;

二、文件配置格式

2.1 set_global_assignment--配置属性格式

语法:set_global_assignment

set_global_assignment [-h | -help] [-long_help] [-comment <comment> ] [-disable] [-entity <entity_name> ] -name <name> [-remove] [-section_id <section id> ] [ <value> ]

note:这里,[]内的内容是可选的,被<>扩起来的就是必须填写的参数

新建空的工程时,Quartus软件根据配置自动生成的qsf文件有如下内容

set_global_assignment -name FAMILY "Cyclone V"
set_global_assignment -name DEVICE 5CGXBC3B6U19C7
set_global_assignment -name TOP_LEVEL_ENTITY quartus_prj_demo
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 18.1.0
set_global_assignment -name PROJECT_CREATION_TIME_DATE "21:43:09  FEBRUARY 07, 2024"
set_global_assignment -name LAST_QUARTUS_VERSION "18.1.0 Standard Edition"
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 256
set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim (Verilog)"
set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id eda_simulation
set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_simulation

只需看懂意思即可:由上图可以知道

  1. FPA器件的系列与具体型号:FAMILYDEVICE
  2. 顶层实体名称:TOP_LEVEL_ENTITY
  3. Quartus软件版本:创建工程时的Quartus版本与最终打开的Quartus版本:ORIGINAL_QUARTUS_VERSION LAST_QUARTUS_VERSION
  4. 创建工程的时间:PROJECT_CREATION_TIME_DATE
  5. 工程输出路径:PROJECT_OUTPUT_DIRECTORY
  6. 最小与最大核心半导体核心节点温度:MIN_CORE_JUNCTION_TEMPMAX_CORE_JUNCTION_TEMP
  7. EDA仿真软件:EDA_SIMULATION_TOOL
  8. EDA仿真时间单位:EDA_TIME_SCALE
  9. EDA输出数据格式:EDA_OUTPUT_DATA_FORMAT
  10. CRC校验时钟频率:ERROR_CHECK_FREQUENCY_DIVISOR

Specifies the divide value of the internal clock, which determines the frequency of the CRC. The divide value must be a power of two(分频值为2的幂次). Refer to the device handbook to find the frequency of the internal clock for the selected device.

其他部分有:

set_global_assignment -name PRESERVE_UNUSED_XCVR_CHANNEL ON
set_global_assignment -name MESSAGE_DISABLE 332157
set_global_assignment -name MESSAGE_DISABLE 113015
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
set_global_assignment -name ENABLE_SIGNALTAP ON

set_global_assignment -name PROJECT_IP_REGENERATION_POLICY NEVER_REGENERATE_IP
set_global_assignment -name USE_SIGNALTAP_FILE output_files/stp1.stp

set_global_assignment -name SIGNALTAP_FILE output_files/stp1.stp

set_global_assignment -name QSYS_FILE ../rtl/aux_mux.qsys

set_global_assignment -name IP_FILE ../rtl/ip/aux_mux_vid_clk.ip

set_global_assignment -name VERILOG_FILE ../rtl/temp_sensor.v

set_global_assignment -name MIF_FILE pll.mif

set_global_assignment -name SDC_FILE ../rtl/user_constr.sdc

set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/xcvr_reconfig_arbiter.sv

set_global_assignment -name TCL_SCRIPT_FILE ../tcl/Pin_Location.tcl

2.2 set_location_assignment--配置管脚格式

语法:set_location_assignment

set_location_assignment [-h | -help] [-long_help] [-comment <comment> ] [-disable] [-fall] [-remove] [-rise] [-tag <data> ] -to <destination> [ <value> ]

qsf文件中的引脚分配举例:

set_location_assignment PIN_AB1 -to global_resetn
set_location_assignment PIN_AB2 -to hdmi_rx[0]

set_location_assignment PIN_AB3 -to "hdmi_rx[0](n)"

注释:

  1. 普通的引脚分配,设置一个全局reset引脚,低电平有效
  2. hdmi_rx[0]与hdmi_rx[0](n)分别是一对hdmi差分对接收端的p网络和n网络
  3. 有空格或者或者括号(n)这种网络,需要加双引号

2.3 set_instance_assignment

语法:set_instance_assignment

set_instance_assignment [-h | -help] [-long_help] [-comment <comment> ] [-disable] [-entity <entity_name> ] [-fall] [-from <source> ] -name <name> [-remove] [-rise] [-section_id <section id> ] [-tag <data> ] [-to <destination> ] [ <value> ]

qsf文件中的实例分配举例:

set_instance_assignment -name IO_STANDARD LVDS -to refclk_135m_p

或者:

set_instance_assignment -name IO_STANDARD LVDS -to refclk_100m_p -entity top_instance

注释:

  1. 设置差分时钟P网络为LVDS电平标准
  2. Quartus中指定差分网路电平标准时,只需要指明P网络的电平标准即可,N网络默认同P网络的电平标准
  3. 这里还给差分时钟网络refclk_100m_p指定了顶层模块名

三、应用场景

3.1 普通IO引脚

set_location_assignment PIN_AB1 -to led_0

set_instance_assignment -name IO_STANDARD "1.8 V" -to led_0

3.2 低速IO引脚

set_location_assignment PIN_AB1 -to hdmi_scl

set_instance_assignment -name IO_STANDARD "1.8 V" -to hdmi_scl

set_instance_assignment -name SLEW_RATE 0 -to hdmi_scl -entity top_instance

set_instance_assignment -name CURRENT_STRENGTH_NEW 2MA -to hdmi_scl -entity top_instance

3.3 差分时钟约束

set_location_assignment PIN_AB1 -to refclk_100m_p

set_location_assignment PIN_AB2 -to "refclk_100m_p(n)"

set_instance_assignment -name IO_STANDARD LVDS -to refclk_100m_p

或者:

set_instance_assignment -name IO_STANDARD LVDS -to refclk_100m_p -entity top_instance

偶尔也有:

set_instance_assignment -name INPUT_TERMINATION DIFFERENTIAL -to refclk_100m_p

3.4 高速差分对tx

set_location_assignment PIN_AB1 -to hdmi_tx[0]

set_location_assignment PIN_AB2 -to "hdmi_tx[0](n)"

set_instance_assignment -name IO_STANDARD "HIGH SPEED DIFFERENTIAL I/O" -to hdmi_tx[0] -entity top_instance

3.5 高速差分对rx

set_location_assignment PIN_AB0 -to dp_rx_p[0]

set_location_assignment PIN_AB1 -to dp_rx_p[0]

set_instance_assignment -name XCVR_VCCR_VCCT_VOLTAGE 1_0V -to dp_rx_p[0]

set_instance_assignment -name IO_STANDARD "HIGH SPEED DIFFERENTIAL I/O" -to dp_rx_p[0]

如下这种只有P脚,没有N脚的差分对还没看懂,待后续分析:

set_location_assignment PIN_AB1 -to hdmi_rx_p
set_instance_assignment -name IO_STANDARD "HIGH SPEED DIFFERENTIAL I/O" -to hdmi_rx_p -entity top_instance -disable
set_instance_assignment -name XCVR_VCCR_VCCT_VOLTAGE 1_0V -to hdmi_rx_p -entity top_instance -disable
set_instance_assignment -name XCVR_A10_RX_EQ_DC_GAIN_TRIM NO_DC_GAIN -to hdmi_rx_p -entity top_instance -disable
set_instance_assignment -name XCVR_A10_RX_ONE_STAGE_ENABLE NON_S1_MODE -to hdmi_rx_p -entity top_instance -disable
set_instance_assignment -name XCVR_A10_RX_ADP_VGA_SEL RADP_VGA_SEL_4 -to hdmi_rx_p -entity top_instance -disable
set_instance_assignment -name XCVR_A10_RX_LINK SR -to hdmi_rx_p -entity top_instance -disable

四、Quartus导入导出qsf文件

4.1 导入qsf文件方法

Assignments 》 Import Assignments,单击添加qsf文件(该qsf文件可以是其他工程里面的),再OK即可。

4.2 导出qsf文件方法

Assignments 》 Export Assignments,无特别要求,默认即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1441485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

函数及函数的定义

前言&#xff1a; 在之前介绍指针的时候&#xff0c;小编发现有些地方需要用函数&#xff0c;所以小编决定先带领大家学习函数&#xff0c;然后再学习指针。 函数是从英文function翻译过来的&#xff0c;其实function在英文中的意思就是函数&#xff0c;也是功能的意思&#xf…

Electron基本介绍

Electron基本介绍 Electron 官方网站&#xff1a;https://www.electronjs.org/zh/ Electron安装方法&#xff1a;npm install electron -g 全局安装 Electron简介&#xff1a;Electron提供了丰富的本地&#xff08;操作系统&#xff09;API&#xff0c;使你能够使用纯JavaScr…

Git分支常用指令

目录 1 git branch 2 git branch xx 3 git checkout xx 4 git checkout -b xx 5 git branch -d xx 6 git branch -D xx 7 git merge xx(含快进模式讲解) 1 git branch 作用&#xff1a;查看分支 示例&#xff1a; 2 git branch xx 作用&#xff1a;创建分支&#xf…

WordPress函数wptexturize的介绍及用法示例,字符串替换为HTML实体

在查看WordPress你好多莉插件时发现代码中使用了wptexturize()函数用来随机输出一句歌词&#xff0c;下面boke112百科就跟大家一起来学习一下WordPress函数wptexturize的介绍及用法示例。 WordPress函数wptexturize介绍 wptexturize( string $text, bool $reset false ): st…

Redis Centos7 安装到启动

文章目录 安装Redis启动redis查看redis状况连接redis服务端 安装Redis 1.下载scl源 yum install centos-release-scl-rh2.下载redis yum install rh-redis5-redis 3. 创建软连接 1.cd /usr/bin 2. In -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server 3. …

一周学会Django5 Python Web开发-Django5创建项目(用命令方式)

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计11条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

vue3 之 商城项目—一级分类

整体认识和路由配置 场景&#xff1a;点击哪个分类跳转到对应的路由页面&#xff0c;路由传对应的参数 router/index.js import { createRouter, createWebHashHistory } from vue-router import Layout from /views/Layout/index.vue import Home from /views/Home/index.vu…

【Java IO】同步异步和阻塞非阻塞真正的区别!!!

先上结论&#xff1a; 同步异步和阻塞非阻塞真正的区别&#xff01;&#xff01;&#xff01; 假设某个进程正在运行下面这段代码&#xff1a; ...... operatorA......; read(); operatorB......; operatorC......;当进程执行完operatorA后开始进行read系统调用&#xff0c;…

机器学习系列——(二十)密度聚类

引言 在机器学习的无监督学习领域&#xff0c;聚类算法是一种关键的技术&#xff0c;用于发现数据集中的内在结构和模式。与传统的基于距离的聚类方法&#xff08;如K-Means&#xff09;不同&#xff0c;密度聚类关注于数据分布的密度&#xff0c;旨在识别被低密度区域分隔的高…

TCP/IP协议以及UDP(超详细,看这一篇就够了)

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录专栏&#xff1a;TCP/IP协议以及UDP(超详细,看这一篇就够了) &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 TCP/IP协议以及UDP(超详细,看这一篇就够了 前提概括接收端和发送端客户…

[Java][算法 双指针]Day 02---LeetCode 热题 100---04~07

LeetCode 热题 100---04~07 第一题&#xff1a;移动零 思路 找到每一个为0的元素 然后移到数组的最后 但是需要注意的是 要在给定的数组原地进行修改 并且其他非零元素的相对顺序不能改变 我们采用双指针法 定义两个指针i和j i和j一开始分别都在0索引位置 然后判断j所…

Node.js之npm单独与批量升级依赖包的方式

Node.js之npm单独与批量升级依赖包的方式 文章目录 Node.js之npm单独与批量升级依赖包的方式npm查看与升级依赖包1. 单独安装或升级最新版本2. 查看依赖但不升级1. npm outdated2. npm update 3. 批量升级新版本4. npm-check-updates1. 全局安装2. ncu查看可升级的版本3. 升级依…

排序算法---堆排序

原创不易&#xff0c;转载请注明出处。欢迎点赞收藏~ 堆排序&#xff08;Heap Sort&#xff09;是一种基于二叉堆数据结构的排序算法。它将待排序的元素构建成一个最大堆&#xff08;或最小堆&#xff09;&#xff0c;然后逐步将堆顶元素与堆的最后一个元素交换位置&#xff0c…

新年新展望

去年其实是收获颇丰的一年&#xff0c;除了工作中各项工作都得到了很大的推进&#xff0c;个人生活中也有很多变化&#xff0c;其中还拿到了功能安全工程师的证书&#xff0c;以及功能安全经理的证书。 展望一下2024年准备输出的内容&#xff0c;一个是对ISO26262的解读&#x…

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书添加模块-图书类别ComboBox下拉框初始化数据实现

锋哥原创的PyQt6图书管理系统视频教程&#xff1a; PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

Java玩转《啊哈算法》纸牌游戏之小猫钓鱼

缘起性空 文章目录 缘起代码地址纸牌游戏分析代码演示优化 缘起 各位小伙伴们好呀&#xff0c;还有几天就要过年了&#xff0c;祝大家新年快乐&#xff0c;万事胜意&#xff01; 本人最近看了下《啊哈算法》&#xff0c;确实阔以。 但稍显遗憾的是&#xff0c;书籍示例代码是…

Web后端开发:登录认证案例

登录功能 需求分析 在登录界面中&#xff0c;输入用户的用户名以及密码&#xff0c;然后点击 “登录” &#xff0c;服务端判断用户输入的用户名和密码是否都正确。如果正确&#xff0c;则返回成功结果&#xff0c;前端跳转至系统首页面&#xff1b;否则报错&#xff0c;停留在…

火星符号运算 - 华为OD统一考试

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 已知火星人使用的运算符号为 #和$ 其与地球人的等价公式如下 x#y2*x3*y4 x$y3*xy2x y是无符号整数。地球人公式按照c语言规则进行计算。火星人公式中&#xff0…

Qt PCL学习(三):点云滤波

注意事项 版本一览&#xff1a;Qt 5.15.2 PCL 1.12.1 VTK 9.1.0前置内容&#xff1a;Qt PCL学习&#xff08;一&#xff09;&#xff1a;环境搭建、Qt PCL学习&#xff08;二&#xff09;&#xff1a;点云读取与保存 0. 效果演示 1. pcl_open_save.pro QT core guigr…

【RT-DETR改进涨点】更加聚焦的边界框损失Focaler-IoU、InnerFocalerIoU(二次创新)

一、本文介绍 本文给大家带来的改进机制是更加聚焦的边界框损失Focaler-IoU已经我进行二次创新的InnerFocalerIoU同时本文的内容支持现阶段的百分之九十以上的IoU,比如Focaler-IoU、Focaler-ShapeIoU、Inner-Focaler-ShapeIoU包含非常全的损失函数,边界框的损失函数只看这一…