QUARTUS II 快速入门与实战教程

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:QUARTUS II是Altera公司开发的FPGA设计软件,提供了从设计输入到硬件实现的全套解决方案。本指南将引导新手通过"10分钟掌握QUARTUS II.pdf"学习设计环境、项目管理、硬件描述语言、设计输入、编译综合、仿真调试、适配优化、编程下载和高级特性等关键步骤,并通过实验和设计挑战巩固知识。 QUARTUS-II-.rar_quartus II

1. QUARTUS II 设计软件概述

1.1 设计软件的简介

QUARTUS II是Altera公司(现为Intel旗下)推出的一款先进的FPGA和CPLD设计软件,它以其强大的设计能力、简洁的用户界面、高效的编译速度和完善的调试工具,在数字逻辑设计领域享有盛名。QUARTUS II不仅支持硬件描述语言(HDL)设计,还兼容原理图设计,提供了从设计输入到硬件编程的全流程支持。

1.2 软件的主要特点

QUARTUS II的主要特点体现在以下几个方面:

  • 集成化开发环境 :将设计、仿真、编译、综合和分析等各个步骤集成在一个环境中,提供一站式解决方案。
  • 多语言支持 :不仅支持VHDL和Verilog,还能够处理AHDL和Schematic等设计输入方式。
  • 优化编译器 :高效的FPGA/ CPLD 编译器能够对设计进行时序约束和优化,以满足性能要求。
  • 丰富的仿真工具 :为设计的验证提供了广泛的仿真功能,包括时序仿真和功能仿真等。

1.3 适用的项目场景

QUARTUS II适用于多种项目场景:

  • 高性能数字信号处理 :QUARTUS II提供的高性能编译器可以应对复杂的数字信号处理项目。
  • 自定义处理器设计 :用户可以通过该软件设计定制化的处理器,并在FPGA上进行验证。
  • 嵌入式系统集成 :QUARTUS II能够与Nios II软核处理器等工具配合,用于嵌入式系统的开发与集成。
  • 原型开发与验证 :快速原型设计功能便于在较短的时间内完成新产品的原型验证。

QUARTUS II的成功应用案例遍布通信、工业控制、航天航空等众多行业,是数字逻辑设计不可或缺的工具之一。通过本章的介绍,读者将对QUARTUS II有一个全面的了解,并为进一步深入学习打下基础。

2. 设计环境与界面熟悉

设计环境是工程师们探索数字设计世界的起始点。熟悉设计软件的界面布局和功能区是提高工作效率的关键一步。本章节将带领您从安装步骤开始,逐步熟悉QUARTUS II的设计环境。

2.1 设计软件的安装与启动

2.1.1 系统要求与安装步骤

QUARTUS II 是一款强大的FPGA与CPLD设计软件,适用于多种操作系统平台。安装前需确认系统配置符合最低要求,如处理器性能、内存容量以及可用的硬盘空间。现代的Windows操作系统,以及部分版本的Linux发行版都是QUARTUS II 支持的环境。

安装过程分为以下几个步骤:

  1. 下载安装包 :前往Altera官网或其授权代理商网站下载与您的操作系统相对应的QUARTUS II 安装文件。
  2. 运行安装向导 :解压下载的安装包,并双击运行安装向导。请确保您具有管理员权限以执行安装。
  3. 选择安装组件 :安装向导会列出所有可用组件,如编译器、仿真器等。根据实际需求选择安装的组件。
  4. 配置安装路径 :指定QUARTUS II 的安装位置。一般而言,默认路径即可,除非有特殊需求。
  5. 完成安装 :跟随安装向导提示,完成剩余步骤,直至安装向导显示“安装完成”。

2.1.2 软件界面布局与功能区介绍

QUARTUS II 的用户界面设计简洁直观,帮助新用户快速上手,老用户高效工作。界面主要分为几个功能区:

  • 工具栏 :提供文件操作、编辑、视图、项目管理等快捷方式。
  • 菜单栏 :提供详细的操作选项,覆盖QUARTUS II 的所有功能。
  • 项目导航器 :显示项目中的文件结构,并允许对文件进行管理。
  • 设计编辑区 :编写和编辑设计文件的主界面,支持多种硬件描述语言。
  • 编译控制台 :编译过程中的信息输出,错误和警告的显示区。
  • 信息显示区 :显示设计信息、编译结果和其他相关的项目信息。

为了确保用户可以最大限度地利用QUARTUS II,下面的章节将会介绍一些工具使用技巧,帮助您进一步定制化自己的设计环境。

2.2 设计项目的基本概念

2.2.1 项目结构和文件类型

在QUARTUS II 中,一个设计项目是由多种文件和文件夹组成的集合,它们共同定义了一个FPGA或CPLD的设计。

项目结构通常包含以下文件类型:

  • Quartus II Project File (.qpf) : 包含项目的基本设置和项目文件列表。
  • Quartus II Settings File (.qsf) : 存储有关项目设置的详细信息。
  • Verilog/VHDL Source File (.v/.vhd) : 设计的源代码文件。
  • Text Editor File (.tcl) : 可用于批处理和自动化操作的文本文件。
  • Block Diagram/Schematic File (.bdf/.sch) : 图形化的设计表示文件。

这些文件类型将共同构建您的项目结构。QUARTUS II 也允许用户添加其他文件类型,如文档、图形和脚本。

2.2.2 工具链和设计流程概述

QUARTUS II 集成了一个复杂的工具链,涵盖了从设计输入到硬件编程的全流程。设计流程通常分为以下步骤:

  1. 项目创建与设置 : 在QUARTUS II 中创建一个新项目,并进行必要的配置。
  2. 设计输入 : 编写硬件描述语言代码或使用图形化界面输入设计。
  3. 编译与综合 : 对设计进行编译并将其综合成硬件可理解的逻辑网表。
  4. 仿真与验证 : 在实际下载到硬件之前,使用仿真工具验证设计的正确性。
  5. 适配与优化 : 将综合后的设计适配到具体的FPGA/CPLD设备,并进行性能优化。
  6. 硬件编程 : 将适配后的设计下载到目标硬件,并进行测试。
  7. 调试与维护 : 分析设计在硬件上的表现,并进行必要的调试和维护。

在本章节的后续部分,我们将深入了解如何使用工具进行高效设计,并掌握项目管理的技巧。

2.3 工具使用技巧

2.3.1 快捷键和个性化设置

QUARTUS II 提供了许多快捷键,能够帮助设计者快速执行常用操作。例如, Ctrl+N 可以快速创建新项目, Ctrl+S 用于保存当前项目。用户还可以自定义快捷键,以适应个人的使用习惯。

个性化设置包括界面布局的调整、工具栏和菜单栏的定制,以及对快捷键的自定义。通过这些设置,可以打造一个符合您个人工作流程的QUARTUS II 环境。

2.3.2 项目文件的管理与维护

良好的项目文件管理习惯能够显著提升设计效率。QUARTUS II 提供了灵活的项目文件管理选项,其中包括:

  • 版本控制 : 可以集成如Git等版本控制系统,以便跟踪设计的更改历史。
  • 备份 : 支持备份整个项目,以便在发生错误或需要回滚到特定版本时使用。
  • 模块化 : 鼓励使用模块化的文件结构,这有助于设计的复用性和维护性。

项目文件管理是一个持续的过程,需要根据项目的发展不断调整和完善。

以上是第二章:设计环境与界面熟悉的核心内容。每个小节都深入浅出地介绍了如何安装和启动QUARTUS II,理解项目结构和文件类型,以及如何利用工具使用技巧来提高设计效率。在后续章节中,我们将继续深入学习如何创建项目、进行设计输入、编译与仿真、适配和优化设计,以及如何进行编程和硬件下载等关键流程。

3. 项目创建与管理

3.1 项目设置与资源配置

3.1.1 新建项目向导的使用

在QUARTUS II中创建一个新项目是开始任何设计工作的首要步骤。QUARTUS II 提供了直观的项目向导来引导用户完成创建过程,包括选择合适的FPGA或CPLD设备、定义项目名称和位置、添加设计文件,以及设置项目特定的参数和选项。向导流程简化了项目初始化的复杂性,使得即使是新用户也能迅速启动。

graph LR
    A[开始创建项目] --> B[运行新建项目向导]
    B --> C[选择目标设备]
    C --> D[定义项目名称和路径]
    D --> E[添加或创建设计文件]
    E --> F[设置项目参数]
    F --> G[完成项目创建]

3.1.2 设备选择与资源分配

确定项目所针对的硬件设备是进行资源配置的关键步骤。QUARTUS II 提供了广泛的设备支持,并允许用户对资源分配进行微调。在资源分配过程中,需要考虑FPGA/CPLD的逻辑单元数量、存储资源、时钟网络以及I/O引脚的数量和特性等。正确的资源配置不仅能够保证设计的物理实现,还能够在满足性能要求的同时优化设计资源的使用。

**资源分配建议:**
- **逻辑单元**:选择能支持设计逻辑需求的最小数量。
- **存储资源**:确保有足够的内存块或寄存器支持数据存储。
- **时钟网络**:合理分配全局时钟网络以满足时序要求。
- **I/O引脚**:合理布局引脚位置,满足外部接口的物理连接需求。

3.2 设计文件的组织

3.2.1 文件的添加、删除与排序

QUARTUS II 提供了灵活的项目文件管理功能,可以帮助设计者组织各种设计文件,包括源代码文件(.vhd, .v, .qpf等)、图形设计文件(.bdf)和仿真文件(.vho, .vtf等)。设计者可以根据需要添加或删除文件,并且可以使用文件夹结构来管理文件,以及对文件进行排序,以优化工作流程和提高效率。

**文件管理建议:**
- 创建文件夹逻辑结构以存储不同类型的文件,比如源代码、图形和仿真文件。
- 使用版本控制系统来管理文件变更和更新,如Git。
- 定期清理不再需要的文件,以避免项目混乱。

3.2.2 库和模块的管理技巧

在大型或复杂的设计项目中,合理使用库和模块可以显著提高工作效率。QUARTUS II 支持使用库来组织常用的设计模块,允许设计者在多个项目之间共享和重用这些模块。为了有效地管理这些库和模块,设计者应遵循一定的命名约定,确保模块的接口清晰明确,并且及时更新文档,这样有助于维护和理解项目结构。

**库和模块管理建议:**
- **命名规则**:使用一致的命名约定,便于识别和查找模块。
- **接口文档**:维护详细的模块接口说明文档,方便设计者理解和复用。
- **版本控制**:为库和模块维护版本历史,便于跟踪修改和回溯。

3.3 版本控制与备份

3.3.1 版本控制系统的集成

为了管理项目代码的变更,QUARTUS II 支持与流行的版本控制系统(如Git)的集成。集成版本控制系统可以协助团队成员追踪项目历史、共享代码变更以及处理并行开发中可能出现的冲突。正确配置版本控制系统可以显著提高团队协作的效率和项目的可维护性。

**版本控制集成建议:**
- **初始化仓库**:在项目初始化时,创建并配置版本控制仓库。
- **提交策略**:采用频繁提交更改的策略以保持历史清晰。
- **分支管理**:利用分支来管理不同的开发线路,如特性开发、热修复等。

3.3.2 项目备份与恢复机制

在设计过程中,意外的断电、硬件故障或其他不可预见事件可能会导致项目文件的丢失。QUARTUS II 提供的备份机制可以在这些情况下保护你的工作成果。通过定期备份项目数据,设计者可以在遇到问题时迅速恢复到先前的状态,从而最小化风险和损失。

**备份与恢复建议:**
- **自动备份**:利用QUARTUS II 的自动备份功能定期保存工作。
- **远程备份**:考虑将备份存储在远程服务器上,以防本地设备故障。
- **备份验证**:定期检查备份文件的完整性,确保可以成功恢复。

总结本章节,详细介绍了QUARTUS II 中项目创建与管理的重要方面。通过运用向导创建项目、精心组织设计文件、利用版本控制以及制定备份策略,设计者可以确保设计工作的顺利进行,提高项目的效率和质量。掌握这些技巧是进行有效项目管理的基础。

4. ```

第四章:硬件描述语言基础

4.1 VHDL与Verilog语言概述

VHDL与Verilog语言特点与选择

VHDL(VHSIC Hardware Description Language)和Verilog是硬件描述语言(HDL)中广泛使用的两种标准。VHDL语言的定义更为严谨,而Verilog则因其易用性在工业界流行起来。在选择语言时,应考虑项目需求、团队熟悉度以及目标设备的支持情况。

VHDL的特点:

  • 支持更精确的时间控制和并发进程。
  • 设计的可读性和重用性较高,适合复杂项目的开发。
  • 静态类型检查增加了设计的可靠性。
  • 主要用于航空航天和军事领域的应用。

Verilog的特点:

  • 语法类似于C语言,更易于上手。
  • 主要用于集成电路设计和验证。
  • 在FPGA(现场可编程门阵列)开发中应用广泛。

选择建议:

  1. 项目应用领域:如果面向的是航空航天、军事或需要严格时间控制的项目,VHDL可能是更佳选择;如果面向的是通用FPGA开发,Verilog可能更合适。
  2. 团队技能:根据团队成员的技能背景选择语言,以提高开发效率。
  3. 设备支持:确认目标FPGA或ASIC(应用特定集成电路)厂商支持的语言,这通常与开发工具和库资源紧密相关。

硬件描述语言的设计原理

硬件描述语言允许设计师描述数字电路的逻辑功能,而无需关心物理实现。设计原理的核心在于将复杂的电路功能分解为更小的可管理单元,这些单元通过定义明确的接口进行交互。HDL的模块化特性使得设计可以层次化,并且易于修改和扩展。

设计原理包含的主要方面:

  • 描述风格:有结构化、行为化、数据流等不同描述风格,每种风格有不同的适用场景。
  • 参数化设计:模块可以带有参数,这样相同的模块就可以适用于不同的配置。
  • 重用性:设计库和IP核的使用大大提高了设计的重用性。
  • 并发与顺序语义:HDL区分了并发执行(硬件行为)和顺序执行(软件逻辑)的概念。
  • 时间控制:时间控制允许设计者描述硬件操作的时间顺序,这对于时序电路尤其重要。

理解这些设计原理,对于高效地使用HDL进行设计工作至关重要。接下来的章节中,我们将深入探讨基本语法和设计实践技巧。


# 5. 设计输入方法

设计输入方法是数字逻辑设计的基础,决定了项目从概念到实现的准确性和效率。在QUARTUS II设计软件中,主要有三种设计输入方法:文本编辑器的使用、原理图输入方法以及设计验证与对比。每种方法都有其特定的应用场景和优势。

## 5.1 文本编辑器的使用

文本编辑器是编写硬件描述语言(HDL)代码的主要工具,QUARTUS II支持VHDL和Verilog两种主流硬件描述语言。

### 5.1.1 VHDL/Verilog代码编写与模板

VHDL和Verilog各有特点,VHDL的语法更为严谨,适合复杂系统的描述;Verilog则更加简洁,易于上手,适合进行快速原型设计。在QUARTUS II中,可以通过内置的文本编辑器编写HDL代码。代码编写前,通常使用软件提供的模板功能,这些模板包含了一些常用结构和定义,有助于提高编码效率。

```vhdl
-- VHDL 示例代码模板
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity my_entity is
    Port ( input_signal : in STD_LOGIC;
           output_signal : out STD_LOGIC);
end my_entity;

architecture Behavioral of my_entity is
begin
    process(input_signal)
    begin
        if rising_edge(input_signal) then
            output_signal <= not output_signal;
        end if;
    end process;
end Behavioral;

5.1.2 语法检查与代码优化

编写代码后,QUARTUS II提供语法检查功能,可以即时发现并修正语法错误。此外,代码优化是提高设计性能的关键步骤,软件内置的分析工具可以帮助识别未使用信号、冗余逻辑以及潜在的性能瓶颈。

// Verilog 示例代码模板
module my_module(
    input wire clk,
    input wire rst,
    input wire [3:0] in_data,
    output reg [3:0] out_data
);

always @(posedge clk or negedge rst) begin
    if (!rst) begin
        out_data <= 4'b0000;
    end else begin
        out_data <= in_data + 4'b0001;
    end
end

endmodule

5.2 原理图输入方法

原理图输入方法允许工程师通过图形化的方式绘制电路图,适合进行小规模设计或是与非技术背景团队成员沟通。

5.2.1 原理图编辑器的界面与操作

QUARTUS II的原理图编辑器提供了丰富的图形组件库,用户可以通过拖拽的方式在画布上添加逻辑门、触发器等组件,并设置相应的属性。此外,原理图可以与文本输入的HDL代码同步转换,便于管理和验证。

5.2.2 原理图与代码的同步与互转

原理图与代码之间可以实现双向转换,这意味着设计者可以在原理图中进行修改后,同步更新到文本代码;同样,也可以在文本代码中进行逻辑修改后,更新到原理图中。这一特性使得原理图与代码的维护和验证变得更加便捷。

5.3 设计验证与对比

不同的设计输入方法对设计效率有着直接的影响,且每种方法都需要通过设计验证来确保逻辑的正确性。

5.3.1 输入方法对设计效率的影响

一般而言,文本编辑器适合于复杂的设计,原理图更适合于快速验证和小规模设计。设计者需要根据项目需求和团队习惯选择合适的输入方法。

5.3.2 设计验证的策略与方法

设计验证应包括代码的功能仿真、时序仿真以及在硬件上的实际测试。在QUARTUS II中,可以通过ModelSim等仿真工具进行仿真测试,确保设计逻辑的正确性和性能满足要求。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:QUARTUS II是Altera公司开发的FPGA设计软件,提供了从设计输入到硬件实现的全套解决方案。本指南将引导新手通过"10分钟掌握QUARTUS II.pdf"学习设计环境、项目管理、硬件描述语言、设计输入、编译综合、仿真调试、适配优化、编程下载和高级特性等关键步骤,并通过实验和设计挑战巩固知识。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

Quartus使用入门及一些实验经验 Maxplus主要是教学使用,对于一般的教学需求,Maxplus软件可以很好的满足要求了, 但是为了以后学习的需要,还是得尝试学会使用更加专业的软件,比如Altera公司的Quartus 软件。 Quartus软件是Alter公司提供的FPGA/CPLD开发集成环境,Altera公司是世界上最大 的可编程逻辑器件供应商之一。Quartus是Maxplus的更新替换产品,其界面友好,使用方 便。在Quartus中可以完成设计输入,HDL综合,布线布局(适配),(前)仿真,下载等测 试。 Quartus软件主要有网页版订购版,都可以从Altera公司的网站上下载到。网络版相比 订购版只是少了一点小小支持,但是对我们的实验是没有任何影响的。本人使用的是Quartus 9.0订购版,大家可以在网络上查找下Quartus的crack来生成license,一般流行的都是俊龙 提供的。如果在网络上没有找到的话可以发我邮箱(yuanpuhao@gmail.com)索要。 关于Quartus软件的使用,及FPGA后续学习,个人推荐一本书《基于Alter FPGA/CPLD 的电子系统设计及工程实践》。湖大图书馆藏有这本书,是一本很好的入门书籍,图书馆藏 编号为:TP332.145。里面很详细介绍了Quartus的使用入门及一些简单的工程的建立流程, 等一些知识。 Quartus软件破解完成后,进入Quartus软件,界面如图1.(第一次登陆使用会让你选 择使用Quartus风格还是Maxplus界面风格) 图1 更具个人使用爱好,自己取舍界面需求,一般建议使用standard Quartus。在工具栏 工具栏 空白处右击,然后选择custom,然后显示如图2,选择标签toolbars,勾选standard Quartus, 确定。 图2 在custom里面有很多选项,如果都想了解,可以自己都去点选试试,那些英文都很直 观的告诉了用户对应的风格选项。 自己可以在工具栏直接右击后选择哪些显示,哪些不显示,当然那也可以通过菜单栏中 的view—>utility windows中选择。 利用快键按钮或者快捷键,可以节省自己很多操作,使自己的使用更加方便。 软件的用户界面都是很友好且相似的,Quartus的工具栏和菜单栏的使用和word是很相 像的,连新建,保存,另存为图标的样子都一样。 每一个设计项目都是以工程为单位的,里面可以包含设计图,波形图,管脚绑定,芯片 选择等信息。(就如同vc软件的工作空间这个概念) 点选工具栏中的new,新建一个工程。 接下来就是设置工程的一些基本信息。 输入完工程名字后,点选next。如果所在的文件夹下还有其他工程,Quartus会显示提 示信息,自己阅读后进行选择。 当然也可以直接点选finish,在后续的设计中,可以通过菜单栏中的Assignment进行修 改,如Device选项,修改使用的器件。 接下来是在工程中添加文件,比如自己曾经设计好的VHDL源码,原理图等或者库之 类信息。如果不要添加任何文件,直接选择next。 接下来就是器件芯片的选择。 更具实验箱上的芯片进行选择。在Device family中选择Cyclone,在Available devices 中选择EP1C6Q240C6。 点选next,让自己选择第三方软件,如ModelSim,Synplify等,不做任何修改,直接 next,最后finish,整个工程配置完成。 当我们以后再建立工程的时候,由于我们下载使用的芯片都是一样的,工程的基本信息 都是一样的,我们可以使用先前的工程的settings。 在输入工程name的时候,点选use existing project settings,选择指定的工程settings或 者上一次的工程settings,然后直接点选finish,省去了每一次新建工程都需要选择器件。 图3 建立完工程后,假使我们使用原理图的设计方案,因此新建一个block diagram,如图 4. 图4 如果我们设计一个16位计数器,选用74163芯片来制作一个简单的16位计数器。 在bdf文件的空白处双击然后在name选项中直接输入芯片名称。 插入input,output 后,连接进行布线。光标移动到线的一段后就会自动变成十字形, 表示可以进行线输入,连接完线后,如图5. 图5 为了显示清晰,可以将一些功能相同的线或者输入输出合并,即利用总线。比如将输出 端QD,QC,QB,QA合并。先将输出端连出线,然后给各线命名。直接点选中线后从键盘输入 可以看到每条线都有了自己的name。 每条线有了name后可以方便很多,比如我们进行连线的时候,就可以不必每次将需要 相连的线连上,只需取上相同的名字,编译的时候编译器就知道这些线是相连的。因此如果 采用命名的方式连接,一定要注意线的命名,不要使得不相连的线命名相同,这样就会导致 错误,请注意Quartus的编译器是不区分英文大小写的。 如果是进行总分线连接,则一定要按照规定命名。在首先分线的名字一定要一样,然后 表示哪条分线的数字一定要用[ ]括起来,否则编译无法通过。该实验中命名为 Q[0],Q[1],Q[2],Q[3],因此总线应为Q[3..0]或者Q[0..3]。最后连接一个输出端,其中输出端命 名也要注意宽度,和总线宽度保持一致。并注意输入输出端的和总线的顺序,比[3..0],[0..3] 对应是不一样的,为了自己使用的方便,一定要养成自己的总线,输入输出命名方式风格, 个人建议全部从高到低命名,并使得最低位为0,这样符合数字电路的习惯,如本例中8位 总线命名为Q[7..0],输出命名为Q[7..0]。 如果这只是自己设计的一个模块,自己可以试着将该文件编译一下。本例中memory是 顶层设计图,如果要单独编译该设计图,应点选project——set as top-level entity。如图8. 图8 点选编译的快件按键,鼠标移上去会显示:Start compilation。 对这一自己设计的芯片进行打包。点file——create——create symbol file for current file, 如图9. 图9 生成一个和设计图名字一样的bsf文件,即为打包的芯片。 在memory设计图中,双击空白处,输入cdu16(名称为刚才自行设计模块的文件名) 就可以调出自己打包的芯片,也可以双击后在project中点选,如图10. 图10 电路设计完成后,就是在此编译了,如果前面点选了别的文件为top-level entity不要忘 了设置下,把memory设为top-level entity。 在原理图的设计时,自己可以尝试用用工具栏中的各种辅助工具,比如注释工具,使得 自己的原理图更加直观易懂,如下图。 其中观察的zoom in,zoom out选项,单击是zoom in,按住shift后单击是zoom out, 当然直接右击就是zoom out,这和后面波形仿真中观察波形是一样的。 进行波形仿真,验证设计的正确性。新建一个vector waveform file,如图11. 图11 个人比较喜欢把设计图,波形图等界面单独显示,利用自己电脑windows7系统的预览 功能,切换起来十分方便,便于观察。点detach window,就可实现,如图12. 图12 然后在edit里面编辑end time和grid size。如图13. 图13 在左边name一栏双击,如下图。 点选node find。 第一次的时候有可能需要设置Filter中为Pin:all。 点选List,列出所有Pin。 选择Nodes Found中到Selected Nodes。(利用两者直接的四个按钮可以方便传送,删除) 完成后,如图14(此图我已经进行过波形仿真,顾不是原始的波形图) 图14 自己开始进行波形仿真。其中会发现总线上的信号D0,D1等信号左边符号显示的是io, (D0,D1本来的属性就是IO)这个问题后面再说。左边工具栏的功能,自己一个个点点试 试就知道什么功能了,很容易上手。第一次做波形仿真的时候有可能会遇到无法点选珊格, 需要自己小心意义,选满珊格,其实是没有勾选snap to grid。在工具栏倒数第二个键就是此 功能键,当然也可以在view里面选择,如图15. 图15 将一些类似的信号进行合并,一起选中后右击,点选group,进行合并或者拆分。在对 一些信号合并的时候,个人使用Quartus有个小瑕疵,不能命名为SW R1 R2 R3 BUS,这样 的信号名,有空格或者“【”等符号都会显示illegal node name。 对于那些名称很类似的信号合并,由于你需要重新排序,可以点工具栏最后那个按钮, 看英文你就知道选按照升序或者降序排列,默认的是升序,由于波形仿真需要一般都选 descenting。 点选波形仿真的快捷键。 波形仿真中有个需要注意的是,波形图的名称一定要你所在的工程名相同。因为波形 仿真是和编译后的文件关联的。因此如果你在设计16位计数器的时候进行了波形仿真来测 试是否符合要求,如果想保留此波形图,请save as其他名称,因为后面进行memory的波 形仿真图的时候,会把原图覆盖。如果不取和工程名相同名称的波形图名称,将无法进行波 形仿真。 波形仿真完后,出来一个类似波形仿真对话框的界面,他的label 名称为:simulation如 图16. 图16 会发现该波形图比原波形图多出了8个信号,正好原来波形图中的双向信号对应,只 是多了个后缀result。这正是你要总线输出信号。你可以试着去修改波形图(其实修改不了, 所以我一般随便双击一段波),会弹出对话框如图17. 图17 点选I want那个选项。然后出现一个对话框,点yes,发现自己创建的波形图变了。两 个英文对话框的意思就是我要重修原来的input file,你点了修改了,系统检测到你点波形图 已经改变了,因此询问你是否替换成修改后的波形图,点yes后就发现自己原来的波形图上 也多出了那几个信号。将这些信号排序组合,命名,如图18. 图18 你会发现波形仿真的结果原来的总线信号还是处于高阻态信号,后来出现的信号显示了 你预期的结果。这个时候注意,原来那些高阻态的信号不能删除,如果删除波形仿真会出错。 (不信可以自己试试,到底哪里会错误)为了避免影响自己观察,既然已经将他们打包了, 把他们放在波形仿真末尾,不碍着自己。 在设计的过程中,如果通过波形仿真发现问题错了,得修改电路图。如果没有改变顶层 的输入输出,如只改变了内部连线,则直接点波形仿真好了,不用再次重新建立波形仿真图。 同样,如果打包的芯片内部连线改变了,只用去修改下内部的连线就可以了,重新编译一下。 但是如果某个打包的芯片需要改变输入输出,那么只能将该芯片重新create symbol file for current file了,将原来的bsf文件覆盖了。不然编译的时候会显示被改变的输入或者输出端 原来的不符合。在顶层芯片图中,也需要右击该芯片,然后选择update symbol or block。 如图19. 图19 三个选项自己英文都能够看懂,更新后引脚的位置有可能改变了,自己需要注意下,然 后重新连接正确。重新编译。 得到正确的波形图后,写实验报告的时候需要对波形图进行说明,此时点选A工具, 进行注释十分方便。 波形仿真正确后,需要进行下载电路的设计(有些图甚至不需要添加外围下载电路), 然后进行只需进行管脚绑定了。 点选Assignment->Pin Planner 只需在管教的location 选项直接输入管教的数字,就可以很简单的绑定了。 管教绑定后结果如图20. 图20 管脚绑定完再次编译,自己可以看到原来的设计图中的输入输出旁边都会显示已经绑定 好的管教,非常直观,便于自己观察。如图21. 图21 下载: 点选tools->Programmer 第一次有可能使用Hardware Setup。(本人使用的USB下载,写此文时未接上所以显示 No Hardware。实验室的下载线使用的都是并口下载线(有个学长做好了USB下载线,不知 道有没有广泛使用)。Mode选择JTAG,选中sof文件后就可以start了。) 关于下载的一些经验: 每个人都有自己的下载习惯,根据我们实验需要,我们可以养成自己的下载习惯。由于 下载需添加下载电路,万一我们要仿真原来的设计图就显得麻烦了,因此个人建议,在工程 所在的文件夹下再次新建一个工程,然后将原来的设计文件全部add all进去。(在工程建立 的时候那个add file步骤,也可以点选Project->Add/Remove Files in Project进行操作)如图 22 图22 将原来的顶层图打包,作为下载的一个模块,然后添加下载电路。如下图所示: 由于我们下载经常要用到一些下载辅助模块,如扫描电路,消抖电路,7端译码器,可以专 门新建一个文件夹保存这些设计文件,然后在Project中add就可以。然后依次生成对应的 bsf文件(即打包,bsf 文件必须在工程所在的文件下),添加到下载电路中。 管脚绑定也可以利用tcl 命令来完成,我们做实验的时候要反复用到数码管的下载,数 码管的绑定每次都是一样的,而且我们都是用自己设计的扫描电路和7段译码器,因此我们 可以利用tcl命令来简化我们自己的绑定。一种比较省事的办法就是在第一次使用Pin Planner 后,点选file->export,导出文件类型选择tcl。 查看tcl 文件,我们可以看到里面的信息如下: # Copyright (C) 1991-2009 Altera Corporation # Your use of Altera Corporation's design tools, logic functions # and other software and tools, and its AMPP partner logic # functions, and any output files from any of the foregoing # (including device programming or simulation files), and any # associated documentation or information are expressly subject # to the terms and conditions of the Altera Program License # Subscription Agreement, Altera MegaCore Function License # Agreement, or other applicable license agreement, including, # without limitation, that your use is for the sole purpose of # programming logic devices manufactured by Altera and sold by # Altera or its authorized distributors. Please refer to the # applicable agreement for further details. # Quartus II Version 9.0 Build 132 02/25/2009 SJ Full Version # File: E:\code\computer system\cpu design\result\memory\mem_download.tcl # Generated on: Thu Dec 24 19:08:02 2009 package require ::quartus::project set_location_assignment PIN_184 -to q[2] set_location_assignment PIN_183 -to q[1] set_location_assignment PIN_182 -to q[0] set_location_assignment PIN_29 -to scan set_location_assignment PIN_186 -to y[6] set_location_assignment PIN_187 -to y[5] set_location_assignment PIN_188 -to y[4] set_location_assignment PIN_193 -to y[3] set_location_assignment PIN_194 -to y[2] set_location_assignment PIN_195 -to y[1] set_location_assignment PIN_196 -to y[0] set_location_assignment PIN_116 -to CLR_INDATA set_location_assignment PIN_115 -to EN_INDATA set_location_assignment PIN_152 -to CLK_COUNT set_location_assignment PIN_117 -to 161ar set_location_assignment PIN_105 -to 161pc set_location_assignment PIN_118 -to ldar set_location_assignment PIN_28 -to H set_location_assignment PIN_107 -to pcclrn set_location_assignment PIN_108 -to memenab set_location_assignment PIN_113 -to rd set_location_assignment PIN_114 -to we set_location_assignment PIN_106 -to pcload set_location_assignment PIN_123 -to pc_bus set_location_assignment PIN_124 -to sw_bus set_location_assignment PIN_122 -to reset set_location_assignment PIN_64 -to T3 保留我们所要的下载信息: package require ::quartus::project set_location_assignment PIN_184 -to q[2] set_location_assignment PIN_183 -to q[1] set_location_assignment PIN_182 -to q[0] set_location_assignment PIN_29 -to scan set_location_assignment PIN_186 -to y[6] set_location_assignment PIN_187 -to y[5] set_location_assignment PIN_188 -to y[4] set_location_assignment PIN_193 -to y[3] set_location_assignment PIN_194 -to y[2] set_location_assignment PIN_195 -to y[1] set_location_assignment PIN_196 -to y[0] 以后每次进行下载的时候,只需在Project中添加该tcl 文件,然后点选菜单栏tools->Tcl Scripts 然后选择Project中的那个tcl 文件,点选Run,即运行下这个tcl 命令。当我们去查看 原图的时候,会发现那几个数码管的下载管教已经成功绑定了。其余的利用Pin Planner可 以快速绑定。 p.s:一些补充的内容 1.关于Quartus使用 去图书馆借阅一本Quartus的书,很多书籍都有介绍如何入门使用,而且写的很详细。要学 会充分利用图书馆的书籍资源。 Quartus的使用和其他软件一样,完全是孰能生巧。比如放大缩小,自己可以使用鼠标的单 击,右击,其实还可以通过ctrl键和鼠标的滚轮结合使用。如果你不知道某项操作,一种方 法是在他人寻求帮助,找有经验的人,而Google恐怕是每个人最好的老师。还有一种办法 就是自己去尝试。毕竟很多软件做的都是很人性化的,作者设计的软件是很为用户考虑的, 而且通过那些选项的英文提示,我们就很容易完成我们所设想的事情。比如要用到建立mif 文件,你会发现无法填入16进制数,他会提示你请输入十进制的数,这个时候就知道他默 认的是10进制,因此你第一个想到的就是采用16进制,自己右击一下就会发现有地址和内 容的16进制选项了,我们要学会自己去尝试,一个软件很大,不可能全部由别人来告诉自 己怎么使用,自己也会养成自己使用软件的习惯和窍门。 2.HDL语言 实验中的下载模块,我们尝试着使用VHDL或者Verilog来完成设计,你会发现很简单使用。 不管是使用原理图还是HDL语言,我们都可以在顶层框图导航,右击 locate in RTL viewer, 查看编译后的RTL图。为了进一步学习,应当熟练掌握HDL描述语言,在工业界以Verilog 占主导地位。查看RTL如下: 选择完后显示如下: RTL查看的好处有很多,很方便自己排错,如果你是图形输入,可以很轻松的检查线是否 存在连接错误。(光标移动到某根线就知道为什么了) 3.例化原件 本人做的时候也遇到过这种问题,自己在使用VHDL完成课程设计的时候,自己使用语言 写了一个存储器,结果编译的时候过了,但是综合的时候出错,显示逻辑单元不够,在后来 的学习当中,知道了这个是Quartus综合工具的问题,因为他不够智能。在我们每次编译完, 我们可以看到编译信息,使用了多少逻辑单元,使用了多少存储资源。Quartus综合的时候 将我们的语言使用逻辑单元来实现,因此逻辑单元被全部用光。解决的办法有两个:使用第 三方综合工具,例化原器件。 点选菜单栏的tools->MegaWizard Plug-in Manager,如下图: 会显示对话框如下: 点选next 在左边的方框中选择Memory Compiler->RAM:1-PORT,右半部分第一个是Cyclone芯片选 项,自己选不同的Device family可以看到左边有些资源就不可以例化,因为每个芯片的ip core不一样造成的,比如我们的Cyclone芯片就有两个pll让我们调用,第二个选项选择例 化语言:VHDL,AHDL,Verilog HDL,然后选择例化后的文件名极其位置,点选next,进 行存储字的大小,线宽等选项。 可以如果还需要更加详细的参数设置,只需next下去,当然可以直接finish,利用默认的参 数。 我们可以看到可以有很多原件可以让我们调用,就如同图形输入的元器件库。 4.第三方软件 当我们熟练掌握了使用Quartus后,可以试着尝试使用第三方软件来完善我们的工程, 有些第三方软件确实比Quartus自带的工具强大,如用于仿真的Modelsim,用于综合的 Synplify,而且这些软件和Quartus软件都能很方便的配合使用。 新建工程的向导当中就有一步是选择第三方软件,我们起初选择的默认参数,即都没有 使用,当我们熟练使用后就可以试着通过调用第三方软件来实现。 ModelSim可以进行前仿真,也可以进行后仿真。(前仿真即功能仿真,不考虑延时等器 件性能,后仿真即模仿实际情况的仿真,Quartus也可以实现,在仿真的opinion选项里有勾 选是否考虑器件等因素),ModelSim的仿真功能还是很强大的。 Synplify软件是一款很流行的综合软件。就比如前面的存储器,如果自己用语言描述, Synplify的综合就知道调用存储单元来实现该功能,Synplify的好处有很多,对于逻辑资源 的节省是其一大特色。Quartus的编译,综合 完成后会显示消耗的资源,如果通过Synplify 综合,逻辑资源有时候能节省很多。Synplify软件和Quartus软件能够很好的配合使用,可 以通过Synplify软件调用Quartus软件,也可以通过Quartus软件调用Synplify软件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值