发布时间 : 星期六 文章数字频率计设计-毕业设计更新完毕开始阅读a38033b1c1c708a1294a4449
附录2: 软件的安装
MAX+PLUSⅡ软件按使用平台可以分为PC机版和工作站版;按使用的对象可以分为商业版、基本版和学生版。
商业版:支持全部输入方式和版本发行时间的除APEX系列外的所有Altera CPLD器件。商业版运行时需要一个授权码和一个附加的并口硬件狗。
基本版:在商业版的基础上作了一些限制,如不支持VHDL,不能进行功能仿真和时序仿真,不支持某些器件等。基本版不需要并口硬件狗,只需向Altera申请一个基本授权码即可使用。
学生版:支持商业版的全部功能,但可使用的逻辑功能模块受到限制,且只支持几个器件。若要安装学生版,应向Altera公司大学项目部申请学生版授权码。 MAX+PLUSⅡ几种版本的安装方法基本相同,基本安装步骤如下: 将光盘插入光驱(假定光驱号为F:)。
★ 选择[开始]/[运行],然后再打开对话框输入:F:\\PC\\maxplus2\\install,
运行后出现安装对话框,按Next按钮继续。
★ 阅读完授权窗口信息后,选择YES接受协议,再选择适当的安装方式,商
业版选择Full\\Custom\\FLEXlm,基本版或学生版选择BASELINE\\E+MAX。
★ 选择安装目录,假设选择的目录为C:\\Maxplus2,若要改变目录,则按
Browse按钮,选好目录后,即可开始安装。
★ 安装成功后,readme文件将自动出现,它包含一些重要信息。
★ 第一次运行MAX+PLUSⅡ,将会出现MAX+PLUS Ⅱ Manager(管理器)界面,
同时会在管理器窗口上出现License Agreement信息,选择其中的Yes选项。
★ 接着会出现Copy Protection窗口。选择“是(Y)”选项,将显示如何申
请免费版本的授权文件;如果有硬件狗或授权文件,选择“否(N)”选项,并将硬件狗插在计算机并口上。
★ 执行MAX+PLUSⅡ管理器中的菜单命令Option/License Setup,在对话框
中输入带路径名的授权文件名,然后单击OK按钮。
12
附录3: 软件组成
MAX+PLUSⅡ软件采用模块化结构,包括设计输入、项目处理、项目校验和器件编程4个部分,所有这些部分都集成在一个可视化的操作环境下。
★ 设计输入
MAX+PLUSⅡ的设计输入方法有多种,主要包括文本设计输入、原理图输入、波形设计输入等多种方式。另外,还可以利用第三方EDA工具生成的网表文件输入,该软件可接受的网表有EDIF格式、VHDL格式及Verilog格式。MAX+PLUSⅡ是一种层次设计工具,可根据实际情况灵活地使用最适合每一层次的设计方法。
★ 项目处理
设计处理的任务就是对项目进行编译(Compile),编译实际就是将设计者编写的设计改为可以用于生产的“语言”。编译器通过读入设计文件并产生用于编程、仿真和定时分析的输出文件来完成编译工作。MAX+PLUSⅡ提供的编译软件,只需简单的操作,如参数选择、指定功能等,就可进行网表转换、逻辑分割和布线布局。
★ 项目校验
MAX+PLUSⅡ提供的设计校验过程包括仿真和定时分析,项目编译后,为确保设计无误,要再用专用软件进行仿真。如果发现了错误,则应对设计输入进行部分修改直至无误。
★ 器件编程
MAX+PLUSⅡ通过编程器(Device Programmer)将编译器生成的编程文件编程或配置到Altera CPLD器件中,然后加入实际激励信号进行测试,检查是否达到了设计要求?Altera公司器件的编程方法有许多种,可通过编程器、JTAG在系统编程及Altera在线配置等方式进行。
13
附录4: 设计流程
使用MAX+PLUSⅡ进行可编程逻辑器件开发主要包括4个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真、和定时分析)和器件编程,流程如图所示:
设计要求 设计输入 编译处理 验证 器件编程 器件测试 系统产品 设计修改
14
附录5: 计数器模块代码
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity frequency is
port(treset:in std_logic;--异步复位端口
tclk:in std_logic;--时钟输入 tsig:in std_logic;--信号输入
tkeep1:out std_logic_vector(3 downto 0);--计数值个位 tkeep2:out std_logic_vector(3 downto 0);--计数值十位
tkeep3:out std_logic_vector(3 downto 0));--计数值百位 end entity frequency;
architecture one of frequency is
signal tcou1:std_logic_vector(3 downto 0);--内部计数值个位 signal tcou2:std_logic_vector(3 downto 0);--内部计数值十位 signal tcou3:std_logic_vector(3 downto 0);--内部计数值百位 begin
ctrcou:process(treset,tclk)--控制计数功能的进程 begin
if treset='1' then
tcou1<=\
else
if tclk'event and tclk='1' then
if tsig='1' then--时基信号高电平为判断条件有效的时候遇到时 --钟上升沿触发 if tcou3=\
tcou3<=\如果百位为10,百位数值不变 else
if tcou1=\
15