最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

maxplus2软件的运用步骤

IT圈 admin 35浏览 0评论

2024年2月21日发(作者:宁含巧)

图形的层次化设计和BUS利用

层次化设计

数字系统设计通常采纳自顶向下与自底向上相结合的方式,在MAX+PLUSII中,可利用层次化设计方式来实现数字系统的设计。一样是先组建底层设计,然后设计顶层。下面设计能给出时、分和秒的时钟。

第一成立一个新的图形设计文件“”,对其编译、仿真以保证正确。注意连线命名。完成设计后执行File→Create Default Symbol生成“counter60”即编译成用户库中的一个元件。然后成立顶层设计文件“”

BUS利用

BUS泛指多个信号线的组合,能够减轻设计中重复连线,清楚易读。

语言描述输入法

ALTERA开发环境利用入门

ALTERA公司的MAX+plusII是其中较常被利用的EDA开发环境,它操作方便、功能壮大,提供了原理图输入和VHDL语言输入功能,在环境中能够完成编译、查错、设计驱动信号、逻辑功能模拟、时序功能模拟、对FPGA/CPLD芯片编程等功能。

MAX+plusII支持以下FPGA/CPLD器件的编程:

FPGA器件包括ACEX1K系列、FLEX系列;

CPLD器件MAX系列。

下面以VHDL语言输入设计为例,一步一步描述在MAX+plusII开发环境中如何完成EDA的设计流程。原理图输入方式只是在新建设计文件类型上与VHDL语言不同,其他大体一样。

1. 成立工作文件目录。咱们将一个设计称为一个项目,在硬盘上成立一个工作文件目录,目录名应命名为英文名。以后与该项目有关的所有设计文件都保留在此目录下。MAX+plusII软件安装好后,会在硬盘上生成一个MAX2WORK目录,咱们在MAX2WORK之下成立一个工作文件目录,命名为“EX”,本例中所有文件都存在此目录下。

1. 新建设计文件。启动MAX+plusII开发环境,选择菜单[File]下的[New]功能,显现对话框,要求确认“新建”何种类型的文件,有四种类型文件可选择,因为咱们新建VHDL文本,因此选择第三个“Text Editor file”。对话框如图所示。确认对话框后,开发环境生成一空的文本编辑窗口用于输入VHDL文本。

图 新建设计文件

3. 输入VHDL设计描述。在窗口输入如下VHDL程序,本例完成的是一个全加器的功能。

LIBRARY IEEE;

USE ENTITY EX1 IS

PORT (

a : IN STD_LOGIC;

b : IN STD_LOGIC;

c_in : IN STD_LOGIC;

sum : OUT STD_LOGIC;

c_out: OUT STD_LOGIC

);

END EX1;

ARCHITECTURE behv OF EX1 IS

BEGIN

sum <= a XOR b XOR c_in;

c_out <= (a AND b) OR (c_in AND (a OR b));

END behv;

其中“a”和“b”表示全加器的“输入1”和“输入2”,“c_in”表示“低位进位输入”,“sum”表示全加器的“和”,“c_out”表示全加器的进位。

图 输入VHDL设计描述

4.保留VHDL文本。 输入VHDL语言后,选择菜单[File]下的[Save As]功能,显现如图对话框,在“Directories”当选择适才新建的项目文件目录“C:MAX2WORKEX”,在“File Name:”处填上文件名“”。 按“OK”确认退出。

5.将当前文件设为项目的主文件。因为在EDA设计中,一个项目按功能不同或层次不同,能够包括很多设计描述文件,这些文件能够是原理图也能够是VHDL,也能够是混合的。设计时,能够按功能分模块来完成,也能够自底向上慢慢完成。将当前文件设为项目的主文件后,以后所进行的编译、仿真、测试都是以此文件为顶层文件,包括其基层文件来完成的,而此文件的上层文件和并行文件都不受阻碍。选择菜单[File]的[Project]的“Set

Project to Current File”功能能够将当前文件设成项目的主文件。如图所示。

图保留VHDL文本 图 将当前设计文件设为项目主文件

6.选择设计所利用的器件。那个地址的器件确实是指每一个设计所利用的FPGA或CPLD芯片,ALTERA公司具有代表性的FPGA为FLEX 10K系列的 EPF10K10LC84-4。具有代表性的CPLD为MAX7000S系列的EPM7128SLC84-15。选择菜单[Assign]的[]功能,显现如图所示对话

框,在“Device Family”当选择ALTERA公司的器件系列,被选定了器件系列后,“Devices”框内显现该系列的各类芯片,若是“Show Only Fastest Speed Grades”被选中,那么器件框中只显示最快速度的器件,去掉“只显示最快芯片”前的勾,器件框中显示该系列所有芯片。本例中,咱们选择MAX7000S系列中的EPM7128SLC84-15芯片。

图 选择设计所利用的器件

7.编译设计项目。选择[MAX+plus II]菜单的[Compiler]功能,显现如图窗口,按“Start”开始编译。若是有错,程序会自动停止并指犯错误,用户解决错误后,再从头编译,直到全数编译完成。

8.成立输入操纵波形。在对设计进行验证时,要给输入信号加上驱动,用波形文件来描述驱动信号的高低状态和前后时序,并加在芯片相应的管脚上。选择[File]的[New]功能,在对话框当选择“Waveform Editor file”,开发环境打开一空的波形编辑窗口。如图所示。

图 编译时,执行各步骤的流程 图 成立输入操纵波形

9.加入信号结点。 在窗口中加入需要驱动的信号和想要观看的信号,选择波形窗口上方的[Node]菜单的[Enter Node from SNF]功能。显现如图所示对话框,按“LIST”按钮,在左侧“Available Nodes & Groups”显现设计中所有信号名,能够在窗口当选中其中想要观看的信号和需要驱动的信号,按“=>”按钮将信号加入右边选中窗口。确认退出。

图 加入信号接点

10.编辑波形。波形窗口中已经有需要驱动的信号和想要观看信号的信号名,此刻咱们概念需要驱动的信号状态和时序,在本例中只有三路输入信号:c_in、b、a,三路信号共有8

个状态,在波形概念时,只要列举出这8个状态就能够够从输出波形中观看到设计的功能是不是正确。在图所示波形概念窗口中,选中将要概念的信号名,按鼠标右键,选择弹出菜单的[Overwrite]下的[]功能,显现如下图的时钟脉冲波形概念对话框,来概念等宽度的时钟信号,“Starting Value”表示该信号的初始状态,“Multiplied By”表示信号脉冲的宽度。别离选中三个信号,在弹出菜单中别离将c_in信号的宽度填为4、b信号的宽度填为1、a

信号的宽度填为2,完成概念后三路信号的波形如图。三路时钟信号组成了8种状态,sum和c_out两路为输出信号,现临时无法显示,要等待模拟完成后才会有波形输出。

图 编辑波形 图 时钟脉冲波形概念对话框

图 已经概念好的三路输入信号波形

11.保留波形文件。选择菜单[File]的[Save as]功能将波形文件保留下来,便于下次模拟时挪用。波形文件的后缀为“.SCF”。

12.软件模拟仿真。当有了驱动信号以后,就能够够对设计进行模拟仿真,验证设计是不是正确。选择[MAX+plus II]菜单的[Simulator]功能,显现如图对话框,按“Start”按钮,开始运行软件模拟仿真,图为仿真后的波形,能够看到仿真输出的sum和c_out信号,“Value”表示标尺位置上各信号的当前值,在窗口内拖动标尺,观看各信号的当前值是不是符合设计要求。在波形窗口中,上方有几个显示框用来显示标尺的时刻位置、鼠标的时刻位置及二者的时

刻差,能够用这种方式来观看两信号间的延时。若是信号过量,可用垂直转动棒移动窗口,若是想要观看的时刻不在当前窗口内,可用水平转动棒将窗口移动到相应的时刻段,用窗口左侧的放大、缩小功能能够将波形时刻展开、收缩,以观看波形的局部细节或全局概况。

图软件模拟仿真 图 仿真后的波形

13. 时序分析。为了能了解软件模拟仿真中各信号之间的具体延时量,能够用MAX+plusII提供的时序分析功能来做时序分析。选择[MAX+plus II]菜单的[Timing Analyzer]功能,显现如图对话框,按“Start”按钮,启动时序分析,分析完成后,各信号之间的延不时刻以表格形式显示出来。

图 延时分析及结果

14.将信号锁定到芯片的管脚。前面所做的只是逻辑功能的软件模拟仿真,即便模拟仿真、时序分析都达到设计要求,这只是理论上的结果,实际硬件的执行与软件模拟不必然完全一样,最后必需做硬件的验证。在做硬件验证时,各个输入、输出信号必需锁定到具体芯片的脚上,才能将外部信号加进来,将输出信号接出去,依照你的外部电路设计或依照EDA实验仪的要求,将设计中各个输入、输出信号锁定到芯片的管脚上。选择菜单[Assign]下的[Pin/]功能,显现如图所示信号与芯片管脚锁定的对话框,在“Node Name”框内填入需要输入、输出的信号名,在“Pin Type”框内显示出该信号的输入、输出类型,在“Pin”复选框内选择芯片的管脚,按右下角的“Add”按钮将信号与管脚的锁定关系加入“Existing Pin / Location / Chip Assignments”框内,当所有的信号都加入后,按“OK”

确认退出。注意:若是你的设计中有时钟信号、复位信号、输出许诺信号等能够全局利用的信号,编译器会自动将这些信号分派到芯片的相应全局信号管脚,若是你锁定的管脚不是全局信号脚,在编译综合时,系统会提示有错,解决的方式是,选择[Assign]菜单下的[Global

Project Synthesis] 功能,在弹出的对话框的“Automatic Global”栏内,去掉所利用全局信号前的选中勾,使其可不能被自动分派。按“OK”钮确认退出。

图 信号与芯片管脚锁定对话框

15.从头编译设计项目。当设计项目中的信号被锁定到芯片的各管脚上后,需要对项目从头进行编译,从头编译产生的数据文件就会包括管脚的概念。选择[MAX+plus II]菜单的[Compiler]功能,显现编译窗口,按窗口内的“Start”按钮,从头编译。

16.数据下载到芯片上。当用软件仿真验证设计的电路工作正常。就能够够将编译产生的位图文件编程下载到FPGA或CPLD的芯片上,与外围电路一路一起对设计进行硬件验证。在编程下载之前,第一用下载电缆将运算机的打印口连接到有FPGA/CPLD芯片目标板,接通目标板(实验仪)的电源。

图 编程下载及连接方式

选择[MAX+plus II]菜单的[Programmer]功能,启动编程下载程序,若是是第一次运行编程功能,软件会自动弹出对话框,让用户设置编程下载硬件连接方式,如图所示,在对话框中的“Hardware Type”选择框内 “ByteBlaster(MV)”编程下载方式,在软件安装好后只需设置编程下载方式一次,设置好以后若是下载的硬件没有转变,无需再次设置。

在编程下载窗口中,CPLD的下载与FPGA下载略有不同,EPLD的下载按“Program”钮,软件会对目标板上的芯片检测、编程、校验,完成后显示“编译完成”,FPGA的下载要按“Configure”钮,软件将程序下载到目标板上芯片中。如图所示

图 数据下载到芯片上

EDA实验一 基于原理图输入方式的全加器设计

一、实验目的

1. 熟悉通用编程EDA2000实验学习系统

1. 熟悉MAX+PLUS II软件。

1. 熟悉原理图输入方式。

二、所用器件

通用编程EDA2000实验学习系统、flex10k器件。

三、实验内容

1. 熟悉通用编程EDA2000实验学习系统。

2. 用原理图输入方式设计全加器。

四、实验步骤

1.启动MAX+PLUS II

利用的软件为MAX+PLUS II系统。MAX+PLUS II启动后的MAX+PLUS II系统如图所示。

图 MAX+PLUS II界面

2.成立工程项目

选择File菜单中Project中的Name子项给工程命名。如图所示。在弹出的菜单中键入工程名称add_zh,选择OK保留工程。

图 给项目命名

3.输入设计项目

选择File菜单中New项,如图所示。以后选择文件类型,共有四种编辑模式能够选择:

Graphic Editor file:原理图编辑模式

Symbol Editor file:符号文件编辑模式

Text Editor file:文本文件编辑模式

Waveform Editor file:波形编辑模式

选择其中的原理图输入项“Graphic Editor file”,按ok后打开原理图编辑窗。

图 选择原理图编辑方式

第一,点击鼠标右键,选择输入元件项Enter symbol,双击元件库”symbol libraries”中的c:maxplus2max21libmf项,选择74183双全加器

然后,再点击鼠标右键,选择输入元件项Enter symbol,在c:maxplus2max21libprim项当选择输入端口input,输出端口output,如图所示,再将输入输出端与相应管脚连线。

图 加入元件

双击PIN-NAME对管脚进行命名,如图 所示

图 编辑后的全加器

连接好原理图后,存盘。

4.编译源文件

(1)在File菜单下,选择Project下的Set project to current 选项将文件设为当前文件。

(2)MAX+PLUS II左上角的MAX+PLUS II菜单为系统菜单,其中包括:

Hierarchy Display:设计的层次显示

Graphic Editor:图形编辑器

Symbol Editor:符号编辑器

Text Editor:文本编辑器

Waveform Editor:波形编辑器

Floorplan Editor:平面布局编辑器

Compiler:编译器

Simulator:仿真器

Timing Analyzer:时序仿真器

Programmer:编程器

Message Processor:信息处置器

如图所示

图 系统菜单

那个地址选择Compiler对源文件进行编译。Compiler包括7个部份:如图所示。

Compiler Netlist Extractor:网表提取

Database Builder:生成工程所需数据

Logic Synthesize:逻辑综合

Partitioner:分区

Filter:适配

Timing SNF Extractor:提取时序信息

Assembler:程序下载

选择Start进行编译。编译终止后,会弹出消息框说明编译情形,关于警告信息能够忽略。

图 编辑器

5.仿真

(1)从MAX+PLUS II系统菜单当选择Waveform Editor项,显现如图所示的窗口。

图 仿真界面

(2)从Node菜单当选择Enter Nodes 项,进入图 所示的窗口。

图 添加结点

(3) 选择List以后本逻辑设计项目的所有管脚名在左侧的Available Nodes & Groups窗口中列出来了,如图所示。选择各个管脚如A1、B1、C01、S1、C1…点击“=>”将相应的管脚选择到右边Selected Nodes & Groups窗口中,点击OK确信。

图 选择结点

(4)编辑输入鼓励A1、B1、C01…。

从MAX+PLUS II系统菜单当选择Simulator,如图所示。确信仿真起始时刻,终止时刻。点击Start进行仿真。结果如下图。

图 仿真进程

图 仿真结果

6.选择器件及分派引脚

(1) 选择Assign菜单中Device项,因为子板的FLEX芯片为EPF10K10LC84-4。从Device

Family当选择FLEX10K,将Show Only Fastest Speed Grades选择去掉,Devices中显现EPF10K10LC84-4器件选项,选择该器件,点击OK确信,如图所示。

图 器件选择

(2)从系统菜单MAX+PLUS II当选择Floorplan Editor,从Layout菜单当选择Device

View,如图所示。将Unassigned Nodes & Pins中的引脚选上,拖到下面芯片中相应的引脚上。本设计管脚对应关系如下:

A1-I/O41(PIN22) A2-I/O46(PIN28)

B1-I/O40(PIN23) B2-I/O45(PIN29)

C01-I/O43(PIN24) C02-I/O47(PIN30)

S1-I/O42(PIN25) S2-I/O49(PIN35)

C1-I/O44(PIN27) C2-I/O48(PIN36)

图 管脚分派

7. 程序下载

从系统菜单MAX+PLUS II当选择Programmer,如图所示。从Options菜单中Hardware Setup,在Hardware Type当选择ByteBlaster,点击OK确信。然后,在Program中点击Configure进行程序下载。

图 下载界面

8. 逻辑功能验证

启动EDA2000软件,按“连接EDA2000”键,按图编辑输入输出模式,通过“启动/暂停”键下载模式。

图 利用EDA2000编程

观看输入输出转变规律,列出真值表

表 全加器真值表

输 入 输出

A

0

B

0

C0

0

S

C1

0

0

0

1

1

1

1

0

1

1

0

0

1

1

1

0

1

0

1

0

1

EDA实验二 基于VHDL语言输入方式的全加器设计

一、实验目的

1.熟悉通用编程EDA2000实验学习系统

2.熟悉MAX+PLUS II软件。

3.熟悉VHDL语言输入方式。

二、所用器件

通用编程EDA2000实验学习系统、FLEX10K器件。

三、实验内容

1.悉通用编程EDA2000实验学习系统。

2.用VHDL语言输入方式设计全加器。

3.将8位加数a (7 downto 0)与8位被加数b (7 downto 0)相加,结果输出到sum(7

downto 0)

四、实验步骤

1.启动文本编辑模式

与原理图输入方式一样,第一打开MAX+PLUS II,选择菜单“file”,再选择“new”选项,显现图所示对话框,在框当选中“Text Editor file” 文本文件编辑模式,单击OK。

注意:在maxplus2中,程序文本保留的文件名必需与文件的实体名一致,此处为EX3。

图 选择文本编程模式

2.VHDL程序输入

在文本编辑窗口图内键入8位硬件加法器的VHDL程序,并保留。

源程序如下:

library ieee;

use EX3 is

port(a:in std_logic_vector(7 downto 0);

b:in std_logic_vector(7 downto 0);

sum:out std_logic_vector(7 downto 0));

end entity;

architecture bhv of EX3 is

begin

sum<=a+b;

end bhv;

图 VHDL程序存盘

3. 编译源文件

第一把此文件设为顶层文件,即选择“File” 菜单下的“project” “set project to

current file”。然后选择系统菜单MAX+PLUS II菜单下的Compiler选项对源文件进行编译,如图所示。

图 编译进程

4.编译成功

编译成功后,如图所示,若是没有成功,那么需检查源程序,直到没有错误。

图 编译成功

5.仿真

从MAX+PLUS II系统菜单当选择Waveform Editor项;从Node菜单当选择Enter Nodes from

项。选择List以后,在左侧的Available Nodes & Groups窗口当选择a0-a7、b0-b7、sum0-sum7管脚点击“=>”选择到右边Selected Nodes & Groups窗口中,点击OK确信以后,

编辑输入鼓励a0、a1、a2、a3、a4、a5、a6、a7;b0、b1、b2、b3、b4、b5、b6、b7。也能够全数选择后,以十六进制编辑输入鼓励a、b、sum,仿真结果如图所示。

图 仿真结果

6.器件选择

选择Assign菜单中Device项,因为子板的FLEX芯片为EPF10K10LC84-4。从Device Family当选择FLEX10K,将Show Only Fastest Speed Grades选择去掉,Devices中显现EPF10K10LC84-4器件选项,选择该器件,点击OK确信,如图所示。

图 器件选择

7.分派管脚

从系统菜单MAX+PLUS II当选择Floorplan Editor,从Layout菜单当选择Device View。将Unassigned Nodes & Pins中的引脚选上,拖到下面芯片中相应的引脚上。本设计管脚对应关系如下:

A(7)-I/O47 B(7)-I/O55 S(7)- I/O15

A(6)-I/O46 B(6)-I/O54 S(6)- I/O14

A(5)-I/O45 B(5)-I/O53 S(5)- I/O13

A(4)-I/O44 B(4)-I/O52 S(4)- I/O12

A(3)-I/O43 B(3)-I/O51 S(3)- I/O11

A(2) -I/O42 B(2)-I/O50 S(2)- I/O10

A(1) -I/O41) B(1)-I/O49 S(1)- I/O09

A(0) -I/O40 B(0)-I/O48 S(0)- I/O08

8.程序下载

从系统菜单MAX+PLUS II当选择Programmer,如图所示。从Options菜单中Hardware Setup,在Hardware Type当选择ByteBlaster,点击OK确信。然后,在Program中点击Configure进行程序下载。

图 程序下载

9.逻辑功能验证

启动EDA2000软件,按“连接EDA2000”键,按图编辑输入输出模式,通过“启动/暂停”键下载模式,观看设计结果。

图 利用EDA2000编程

EDA实验三 4位加法计数器设计

一、实验目的

1.熟悉通用编程EDA2000实验学习系统

2.熟悉MAX+PLUS II软件。

3.熟悉VHDL语言输入方式。

二、所用器件

通用编程EDA2000实验学习系统、FLEX10K器件。

三、实验内容

1.熟悉通用编程EDA2000实验学习系统。

2.用VHDL语言输入方式设计计数器。

3.实现一个含异步清零和同步时钟使能的4位加法计数器。

四、实验步骤

1.启动文本编辑模式

与原理图输入方式一样,第一打开MAX+PLUS II,选择菜单“file”,再选择“new”选项,显现图所示对话框,在框当选中“Text Editor file” 文本文件编辑模式,单击OK。

注意:在maxplus2中,程序文本保留的文件名必需与文件的实体名一致,此处为EX3。

图 选择文本编程模式

2.VHDL程序输入

在文本编辑窗口图内键入8位硬件加法器的VHDL程序,并保留。

源程序如下:

library ieee;

use ex8 is

port(clk: in std_logic;

rst: in std_logic;

ena: in std_logic;

outy: out std_logic_vector(3 downto 0);

cout: out std_logic);

end entity;

architecture bhv of ex8 is

signal cqi:std_logic_vector(3 downto 0);

begin

process(clk,rst,ena)

begin

if rst='1' then

cqi<="0000";

elsif clk'event and clk='1' then

if ena='1' then

cqi<=cqi+1;

end if;

end if;

outy<=cqi;

end process;

cout<=cqi(0) and cqi(1) and cqi(2) and cqi(3);

end bhv;

图 程序存盘

3.编译源文件

第一把此文件设为顶层文件,即选择“File” 菜单下的“project” “set project to

current file”。然后选择系统菜单MAX+PLUS II菜单下的Compiler选项对源文件进行编译。

4.编译成功

编译成功后,如图所示,若是没有成功,那么需检查源程序,直到没有错误。

图 编译完成

5.仿真

从MAX+PLUS II系统菜单当选择Waveform Editor项;从Node菜单当选择Enter Nodes from

项。选择List以后,在左侧的Available Nodes & Groups窗口当选择a0-a7、b0-b7、sum0-sum7管脚点击“=>”选择到右边Selected Nodes & Groups窗口中,点击OK确信以后,编辑输入鼓励a0、a1、a2、a3、a4、a5、a6、a7;b0、b1、b2、b3、b4、b5、b6、b7。也能够全数选择后,以十六进制编辑输入鼓励a、b、sum,仿真结果如图所示。

图 仿真波形

6.器件选择

选择Assign菜单中Device项,因为子板的FLEX芯片为EPF10K10LC84-4。从Device Family当选择FLEX10K,将Show Only Fastest Speed Grades选择去掉,Devices中显现EPF10K10LC84-4器件选项,选择该器件,点击OK确信示。

7.分派管脚

从系统菜单MAX+PLUS II当选择Floorplan Editor,从Layout菜单当选择Device View将Unassigned Nodes & Pins中的引脚选上,拖到下面芯片中相应的引脚上。

输入信号:clk 时钟输入 I/O42

rst 异步清0输入 I/O40

ena 同步时钟使能 I/O41

输出信号:outy 4位计数结果输出 I/O03…I/O00

cout 计数进位输出

8.程序下载

从系统菜单MAX+PLUS II当选择Programmer,如图所示。从Options菜单中Hardware Setup,在Hardware Type当选择ByteBlaster,点击OK确信。然后,在Program中点击Configure进行程序下载。

I/O04

图 程序下载

9.逻辑功能验证

启动EDA2000软件,按“连接EDA2000”键,按图编辑输入输出模式,通过“启动/暂停”键下载模式,通过手动脉冲观看设计结果,列出真值表如表和表。

图 逻辑功能

表四位二进制加法计数器功能表

ena

0

0

1

1

Rst

0

1

0

1

clk

表 计数器计数时序及显示字型

clk

0

1

2

3

4

5

6

7

字型

clk

8

9

10

11

12

13

14

15

字型

输出

从系统菜单MAX+PLUS II当选择Floorplan Editor,从Layout菜单当选择Device View,将Unassigned Nodes & Pins中的引脚拖到下面芯片中相应的引脚上。

输入信号:clk 时钟输入 I/O30

rst 异步清0输入 I/O40

ena 同步时钟使能 I/O41

输出信号:outy 4位计数结果输出 I/O03…I/O00

cout 计数进位输出 I/O04

那个地址将clk 时钟输入锁定到I/O30引脚上,因为在EDA2000实验仪上,I/O30引脚与持续时钟相连,按图设计模式,并将I/O30持续时钟频率调整到1Hz,观看输出转变规律。

2024年2月21日发(作者:宁含巧)

图形的层次化设计和BUS利用

层次化设计

数字系统设计通常采纳自顶向下与自底向上相结合的方式,在MAX+PLUSII中,可利用层次化设计方式来实现数字系统的设计。一样是先组建底层设计,然后设计顶层。下面设计能给出时、分和秒的时钟。

第一成立一个新的图形设计文件“”,对其编译、仿真以保证正确。注意连线命名。完成设计后执行File→Create Default Symbol生成“counter60”即编译成用户库中的一个元件。然后成立顶层设计文件“”

BUS利用

BUS泛指多个信号线的组合,能够减轻设计中重复连线,清楚易读。

语言描述输入法

ALTERA开发环境利用入门

ALTERA公司的MAX+plusII是其中较常被利用的EDA开发环境,它操作方便、功能壮大,提供了原理图输入和VHDL语言输入功能,在环境中能够完成编译、查错、设计驱动信号、逻辑功能模拟、时序功能模拟、对FPGA/CPLD芯片编程等功能。

MAX+plusII支持以下FPGA/CPLD器件的编程:

FPGA器件包括ACEX1K系列、FLEX系列;

CPLD器件MAX系列。

下面以VHDL语言输入设计为例,一步一步描述在MAX+plusII开发环境中如何完成EDA的设计流程。原理图输入方式只是在新建设计文件类型上与VHDL语言不同,其他大体一样。

1. 成立工作文件目录。咱们将一个设计称为一个项目,在硬盘上成立一个工作文件目录,目录名应命名为英文名。以后与该项目有关的所有设计文件都保留在此目录下。MAX+plusII软件安装好后,会在硬盘上生成一个MAX2WORK目录,咱们在MAX2WORK之下成立一个工作文件目录,命名为“EX”,本例中所有文件都存在此目录下。

1. 新建设计文件。启动MAX+plusII开发环境,选择菜单[File]下的[New]功能,显现对话框,要求确认“新建”何种类型的文件,有四种类型文件可选择,因为咱们新建VHDL文本,因此选择第三个“Text Editor file”。对话框如图所示。确认对话框后,开发环境生成一空的文本编辑窗口用于输入VHDL文本。

图 新建设计文件

3. 输入VHDL设计描述。在窗口输入如下VHDL程序,本例完成的是一个全加器的功能。

LIBRARY IEEE;

USE ENTITY EX1 IS

PORT (

a : IN STD_LOGIC;

b : IN STD_LOGIC;

c_in : IN STD_LOGIC;

sum : OUT STD_LOGIC;

c_out: OUT STD_LOGIC

);

END EX1;

ARCHITECTURE behv OF EX1 IS

BEGIN

sum <= a XOR b XOR c_in;

c_out <= (a AND b) OR (c_in AND (a OR b));

END behv;

其中“a”和“b”表示全加器的“输入1”和“输入2”,“c_in”表示“低位进位输入”,“sum”表示全加器的“和”,“c_out”表示全加器的进位。

图 输入VHDL设计描述

4.保留VHDL文本。 输入VHDL语言后,选择菜单[File]下的[Save As]功能,显现如图对话框,在“Directories”当选择适才新建的项目文件目录“C:MAX2WORKEX”,在“File Name:”处填上文件名“”。 按“OK”确认退出。

5.将当前文件设为项目的主文件。因为在EDA设计中,一个项目按功能不同或层次不同,能够包括很多设计描述文件,这些文件能够是原理图也能够是VHDL,也能够是混合的。设计时,能够按功能分模块来完成,也能够自底向上慢慢完成。将当前文件设为项目的主文件后,以后所进行的编译、仿真、测试都是以此文件为顶层文件,包括其基层文件来完成的,而此文件的上层文件和并行文件都不受阻碍。选择菜单[File]的[Project]的“Set

Project to Current File”功能能够将当前文件设成项目的主文件。如图所示。

图保留VHDL文本 图 将当前设计文件设为项目主文件

6.选择设计所利用的器件。那个地址的器件确实是指每一个设计所利用的FPGA或CPLD芯片,ALTERA公司具有代表性的FPGA为FLEX 10K系列的 EPF10K10LC84-4。具有代表性的CPLD为MAX7000S系列的EPM7128SLC84-15。选择菜单[Assign]的[]功能,显现如图所示对话

框,在“Device Family”当选择ALTERA公司的器件系列,被选定了器件系列后,“Devices”框内显现该系列的各类芯片,若是“Show Only Fastest Speed Grades”被选中,那么器件框中只显示最快速度的器件,去掉“只显示最快芯片”前的勾,器件框中显示该系列所有芯片。本例中,咱们选择MAX7000S系列中的EPM7128SLC84-15芯片。

图 选择设计所利用的器件

7.编译设计项目。选择[MAX+plus II]菜单的[Compiler]功能,显现如图窗口,按“Start”开始编译。若是有错,程序会自动停止并指犯错误,用户解决错误后,再从头编译,直到全数编译完成。

8.成立输入操纵波形。在对设计进行验证时,要给输入信号加上驱动,用波形文件来描述驱动信号的高低状态和前后时序,并加在芯片相应的管脚上。选择[File]的[New]功能,在对话框当选择“Waveform Editor file”,开发环境打开一空的波形编辑窗口。如图所示。

图 编译时,执行各步骤的流程 图 成立输入操纵波形

9.加入信号结点。 在窗口中加入需要驱动的信号和想要观看的信号,选择波形窗口上方的[Node]菜单的[Enter Node from SNF]功能。显现如图所示对话框,按“LIST”按钮,在左侧“Available Nodes & Groups”显现设计中所有信号名,能够在窗口当选中其中想要观看的信号和需要驱动的信号,按“=>”按钮将信号加入右边选中窗口。确认退出。

图 加入信号接点

10.编辑波形。波形窗口中已经有需要驱动的信号和想要观看信号的信号名,此刻咱们概念需要驱动的信号状态和时序,在本例中只有三路输入信号:c_in、b、a,三路信号共有8

个状态,在波形概念时,只要列举出这8个状态就能够够从输出波形中观看到设计的功能是不是正确。在图所示波形概念窗口中,选中将要概念的信号名,按鼠标右键,选择弹出菜单的[Overwrite]下的[]功能,显现如下图的时钟脉冲波形概念对话框,来概念等宽度的时钟信号,“Starting Value”表示该信号的初始状态,“Multiplied By”表示信号脉冲的宽度。别离选中三个信号,在弹出菜单中别离将c_in信号的宽度填为4、b信号的宽度填为1、a

信号的宽度填为2,完成概念后三路信号的波形如图。三路时钟信号组成了8种状态,sum和c_out两路为输出信号,现临时无法显示,要等待模拟完成后才会有波形输出。

图 编辑波形 图 时钟脉冲波形概念对话框

图 已经概念好的三路输入信号波形

11.保留波形文件。选择菜单[File]的[Save as]功能将波形文件保留下来,便于下次模拟时挪用。波形文件的后缀为“.SCF”。

12.软件模拟仿真。当有了驱动信号以后,就能够够对设计进行模拟仿真,验证设计是不是正确。选择[MAX+plus II]菜单的[Simulator]功能,显现如图对话框,按“Start”按钮,开始运行软件模拟仿真,图为仿真后的波形,能够看到仿真输出的sum和c_out信号,“Value”表示标尺位置上各信号的当前值,在窗口内拖动标尺,观看各信号的当前值是不是符合设计要求。在波形窗口中,上方有几个显示框用来显示标尺的时刻位置、鼠标的时刻位置及二者的时

刻差,能够用这种方式来观看两信号间的延时。若是信号过量,可用垂直转动棒移动窗口,若是想要观看的时刻不在当前窗口内,可用水平转动棒将窗口移动到相应的时刻段,用窗口左侧的放大、缩小功能能够将波形时刻展开、收缩,以观看波形的局部细节或全局概况。

图软件模拟仿真 图 仿真后的波形

13. 时序分析。为了能了解软件模拟仿真中各信号之间的具体延时量,能够用MAX+plusII提供的时序分析功能来做时序分析。选择[MAX+plus II]菜单的[Timing Analyzer]功能,显现如图对话框,按“Start”按钮,启动时序分析,分析完成后,各信号之间的延不时刻以表格形式显示出来。

图 延时分析及结果

14.将信号锁定到芯片的管脚。前面所做的只是逻辑功能的软件模拟仿真,即便模拟仿真、时序分析都达到设计要求,这只是理论上的结果,实际硬件的执行与软件模拟不必然完全一样,最后必需做硬件的验证。在做硬件验证时,各个输入、输出信号必需锁定到具体芯片的脚上,才能将外部信号加进来,将输出信号接出去,依照你的外部电路设计或依照EDA实验仪的要求,将设计中各个输入、输出信号锁定到芯片的管脚上。选择菜单[Assign]下的[Pin/]功能,显现如图所示信号与芯片管脚锁定的对话框,在“Node Name”框内填入需要输入、输出的信号名,在“Pin Type”框内显示出该信号的输入、输出类型,在“Pin”复选框内选择芯片的管脚,按右下角的“Add”按钮将信号与管脚的锁定关系加入“Existing Pin / Location / Chip Assignments”框内,当所有的信号都加入后,按“OK”

确认退出。注意:若是你的设计中有时钟信号、复位信号、输出许诺信号等能够全局利用的信号,编译器会自动将这些信号分派到芯片的相应全局信号管脚,若是你锁定的管脚不是全局信号脚,在编译综合时,系统会提示有错,解决的方式是,选择[Assign]菜单下的[Global

Project Synthesis] 功能,在弹出的对话框的“Automatic Global”栏内,去掉所利用全局信号前的选中勾,使其可不能被自动分派。按“OK”钮确认退出。

图 信号与芯片管脚锁定对话框

15.从头编译设计项目。当设计项目中的信号被锁定到芯片的各管脚上后,需要对项目从头进行编译,从头编译产生的数据文件就会包括管脚的概念。选择[MAX+plus II]菜单的[Compiler]功能,显现编译窗口,按窗口内的“Start”按钮,从头编译。

16.数据下载到芯片上。当用软件仿真验证设计的电路工作正常。就能够够将编译产生的位图文件编程下载到FPGA或CPLD的芯片上,与外围电路一路一起对设计进行硬件验证。在编程下载之前,第一用下载电缆将运算机的打印口连接到有FPGA/CPLD芯片目标板,接通目标板(实验仪)的电源。

图 编程下载及连接方式

选择[MAX+plus II]菜单的[Programmer]功能,启动编程下载程序,若是是第一次运行编程功能,软件会自动弹出对话框,让用户设置编程下载硬件连接方式,如图所示,在对话框中的“Hardware Type”选择框内 “ByteBlaster(MV)”编程下载方式,在软件安装好后只需设置编程下载方式一次,设置好以后若是下载的硬件没有转变,无需再次设置。

在编程下载窗口中,CPLD的下载与FPGA下载略有不同,EPLD的下载按“Program”钮,软件会对目标板上的芯片检测、编程、校验,完成后显示“编译完成”,FPGA的下载要按“Configure”钮,软件将程序下载到目标板上芯片中。如图所示

图 数据下载到芯片上

EDA实验一 基于原理图输入方式的全加器设计

一、实验目的

1. 熟悉通用编程EDA2000实验学习系统

1. 熟悉MAX+PLUS II软件。

1. 熟悉原理图输入方式。

二、所用器件

通用编程EDA2000实验学习系统、flex10k器件。

三、实验内容

1. 熟悉通用编程EDA2000实验学习系统。

2. 用原理图输入方式设计全加器。

四、实验步骤

1.启动MAX+PLUS II

利用的软件为MAX+PLUS II系统。MAX+PLUS II启动后的MAX+PLUS II系统如图所示。

图 MAX+PLUS II界面

2.成立工程项目

选择File菜单中Project中的Name子项给工程命名。如图所示。在弹出的菜单中键入工程名称add_zh,选择OK保留工程。

图 给项目命名

3.输入设计项目

选择File菜单中New项,如图所示。以后选择文件类型,共有四种编辑模式能够选择:

Graphic Editor file:原理图编辑模式

Symbol Editor file:符号文件编辑模式

Text Editor file:文本文件编辑模式

Waveform Editor file:波形编辑模式

选择其中的原理图输入项“Graphic Editor file”,按ok后打开原理图编辑窗。

图 选择原理图编辑方式

第一,点击鼠标右键,选择输入元件项Enter symbol,双击元件库”symbol libraries”中的c:maxplus2max21libmf项,选择74183双全加器

然后,再点击鼠标右键,选择输入元件项Enter symbol,在c:maxplus2max21libprim项当选择输入端口input,输出端口output,如图所示,再将输入输出端与相应管脚连线。

图 加入元件

双击PIN-NAME对管脚进行命名,如图 所示

图 编辑后的全加器

连接好原理图后,存盘。

4.编译源文件

(1)在File菜单下,选择Project下的Set project to current 选项将文件设为当前文件。

(2)MAX+PLUS II左上角的MAX+PLUS II菜单为系统菜单,其中包括:

Hierarchy Display:设计的层次显示

Graphic Editor:图形编辑器

Symbol Editor:符号编辑器

Text Editor:文本编辑器

Waveform Editor:波形编辑器

Floorplan Editor:平面布局编辑器

Compiler:编译器

Simulator:仿真器

Timing Analyzer:时序仿真器

Programmer:编程器

Message Processor:信息处置器

如图所示

图 系统菜单

那个地址选择Compiler对源文件进行编译。Compiler包括7个部份:如图所示。

Compiler Netlist Extractor:网表提取

Database Builder:生成工程所需数据

Logic Synthesize:逻辑综合

Partitioner:分区

Filter:适配

Timing SNF Extractor:提取时序信息

Assembler:程序下载

选择Start进行编译。编译终止后,会弹出消息框说明编译情形,关于警告信息能够忽略。

图 编辑器

5.仿真

(1)从MAX+PLUS II系统菜单当选择Waveform Editor项,显现如图所示的窗口。

图 仿真界面

(2)从Node菜单当选择Enter Nodes 项,进入图 所示的窗口。

图 添加结点

(3) 选择List以后本逻辑设计项目的所有管脚名在左侧的Available Nodes & Groups窗口中列出来了,如图所示。选择各个管脚如A1、B1、C01、S1、C1…点击“=>”将相应的管脚选择到右边Selected Nodes & Groups窗口中,点击OK确信。

图 选择结点

(4)编辑输入鼓励A1、B1、C01…。

从MAX+PLUS II系统菜单当选择Simulator,如图所示。确信仿真起始时刻,终止时刻。点击Start进行仿真。结果如下图。

图 仿真进程

图 仿真结果

6.选择器件及分派引脚

(1) 选择Assign菜单中Device项,因为子板的FLEX芯片为EPF10K10LC84-4。从Device

Family当选择FLEX10K,将Show Only Fastest Speed Grades选择去掉,Devices中显现EPF10K10LC84-4器件选项,选择该器件,点击OK确信,如图所示。

图 器件选择

(2)从系统菜单MAX+PLUS II当选择Floorplan Editor,从Layout菜单当选择Device

View,如图所示。将Unassigned Nodes & Pins中的引脚选上,拖到下面芯片中相应的引脚上。本设计管脚对应关系如下:

A1-I/O41(PIN22) A2-I/O46(PIN28)

B1-I/O40(PIN23) B2-I/O45(PIN29)

C01-I/O43(PIN24) C02-I/O47(PIN30)

S1-I/O42(PIN25) S2-I/O49(PIN35)

C1-I/O44(PIN27) C2-I/O48(PIN36)

图 管脚分派

7. 程序下载

从系统菜单MAX+PLUS II当选择Programmer,如图所示。从Options菜单中Hardware Setup,在Hardware Type当选择ByteBlaster,点击OK确信。然后,在Program中点击Configure进行程序下载。

图 下载界面

8. 逻辑功能验证

启动EDA2000软件,按“连接EDA2000”键,按图编辑输入输出模式,通过“启动/暂停”键下载模式。

图 利用EDA2000编程

观看输入输出转变规律,列出真值表

表 全加器真值表

输 入 输出

A

0

B

0

C0

0

S

C1

0

0

0

1

1

1

1

0

1

1

0

0

1

1

1

0

1

0

1

0

1

EDA实验二 基于VHDL语言输入方式的全加器设计

一、实验目的

1.熟悉通用编程EDA2000实验学习系统

2.熟悉MAX+PLUS II软件。

3.熟悉VHDL语言输入方式。

二、所用器件

通用编程EDA2000实验学习系统、FLEX10K器件。

三、实验内容

1.悉通用编程EDA2000实验学习系统。

2.用VHDL语言输入方式设计全加器。

3.将8位加数a (7 downto 0)与8位被加数b (7 downto 0)相加,结果输出到sum(7

downto 0)

四、实验步骤

1.启动文本编辑模式

与原理图输入方式一样,第一打开MAX+PLUS II,选择菜单“file”,再选择“new”选项,显现图所示对话框,在框当选中“Text Editor file” 文本文件编辑模式,单击OK。

注意:在maxplus2中,程序文本保留的文件名必需与文件的实体名一致,此处为EX3。

图 选择文本编程模式

2.VHDL程序输入

在文本编辑窗口图内键入8位硬件加法器的VHDL程序,并保留。

源程序如下:

library ieee;

use EX3 is

port(a:in std_logic_vector(7 downto 0);

b:in std_logic_vector(7 downto 0);

sum:out std_logic_vector(7 downto 0));

end entity;

architecture bhv of EX3 is

begin

sum<=a+b;

end bhv;

图 VHDL程序存盘

3. 编译源文件

第一把此文件设为顶层文件,即选择“File” 菜单下的“project” “set project to

current file”。然后选择系统菜单MAX+PLUS II菜单下的Compiler选项对源文件进行编译,如图所示。

图 编译进程

4.编译成功

编译成功后,如图所示,若是没有成功,那么需检查源程序,直到没有错误。

图 编译成功

5.仿真

从MAX+PLUS II系统菜单当选择Waveform Editor项;从Node菜单当选择Enter Nodes from

项。选择List以后,在左侧的Available Nodes & Groups窗口当选择a0-a7、b0-b7、sum0-sum7管脚点击“=>”选择到右边Selected Nodes & Groups窗口中,点击OK确信以后,

编辑输入鼓励a0、a1、a2、a3、a4、a5、a6、a7;b0、b1、b2、b3、b4、b5、b6、b7。也能够全数选择后,以十六进制编辑输入鼓励a、b、sum,仿真结果如图所示。

图 仿真结果

6.器件选择

选择Assign菜单中Device项,因为子板的FLEX芯片为EPF10K10LC84-4。从Device Family当选择FLEX10K,将Show Only Fastest Speed Grades选择去掉,Devices中显现EPF10K10LC84-4器件选项,选择该器件,点击OK确信,如图所示。

图 器件选择

7.分派管脚

从系统菜单MAX+PLUS II当选择Floorplan Editor,从Layout菜单当选择Device View。将Unassigned Nodes & Pins中的引脚选上,拖到下面芯片中相应的引脚上。本设计管脚对应关系如下:

A(7)-I/O47 B(7)-I/O55 S(7)- I/O15

A(6)-I/O46 B(6)-I/O54 S(6)- I/O14

A(5)-I/O45 B(5)-I/O53 S(5)- I/O13

A(4)-I/O44 B(4)-I/O52 S(4)- I/O12

A(3)-I/O43 B(3)-I/O51 S(3)- I/O11

A(2) -I/O42 B(2)-I/O50 S(2)- I/O10

A(1) -I/O41) B(1)-I/O49 S(1)- I/O09

A(0) -I/O40 B(0)-I/O48 S(0)- I/O08

8.程序下载

从系统菜单MAX+PLUS II当选择Programmer,如图所示。从Options菜单中Hardware Setup,在Hardware Type当选择ByteBlaster,点击OK确信。然后,在Program中点击Configure进行程序下载。

图 程序下载

9.逻辑功能验证

启动EDA2000软件,按“连接EDA2000”键,按图编辑输入输出模式,通过“启动/暂停”键下载模式,观看设计结果。

图 利用EDA2000编程

EDA实验三 4位加法计数器设计

一、实验目的

1.熟悉通用编程EDA2000实验学习系统

2.熟悉MAX+PLUS II软件。

3.熟悉VHDL语言输入方式。

二、所用器件

通用编程EDA2000实验学习系统、FLEX10K器件。

三、实验内容

1.熟悉通用编程EDA2000实验学习系统。

2.用VHDL语言输入方式设计计数器。

3.实现一个含异步清零和同步时钟使能的4位加法计数器。

四、实验步骤

1.启动文本编辑模式

与原理图输入方式一样,第一打开MAX+PLUS II,选择菜单“file”,再选择“new”选项,显现图所示对话框,在框当选中“Text Editor file” 文本文件编辑模式,单击OK。

注意:在maxplus2中,程序文本保留的文件名必需与文件的实体名一致,此处为EX3。

图 选择文本编程模式

2.VHDL程序输入

在文本编辑窗口图内键入8位硬件加法器的VHDL程序,并保留。

源程序如下:

library ieee;

use ex8 is

port(clk: in std_logic;

rst: in std_logic;

ena: in std_logic;

outy: out std_logic_vector(3 downto 0);

cout: out std_logic);

end entity;

architecture bhv of ex8 is

signal cqi:std_logic_vector(3 downto 0);

begin

process(clk,rst,ena)

begin

if rst='1' then

cqi<="0000";

elsif clk'event and clk='1' then

if ena='1' then

cqi<=cqi+1;

end if;

end if;

outy<=cqi;

end process;

cout<=cqi(0) and cqi(1) and cqi(2) and cqi(3);

end bhv;

图 程序存盘

3.编译源文件

第一把此文件设为顶层文件,即选择“File” 菜单下的“project” “set project to

current file”。然后选择系统菜单MAX+PLUS II菜单下的Compiler选项对源文件进行编译。

4.编译成功

编译成功后,如图所示,若是没有成功,那么需检查源程序,直到没有错误。

图 编译完成

5.仿真

从MAX+PLUS II系统菜单当选择Waveform Editor项;从Node菜单当选择Enter Nodes from

项。选择List以后,在左侧的Available Nodes & Groups窗口当选择a0-a7、b0-b7、sum0-sum7管脚点击“=>”选择到右边Selected Nodes & Groups窗口中,点击OK确信以后,编辑输入鼓励a0、a1、a2、a3、a4、a5、a6、a7;b0、b1、b2、b3、b4、b5、b6、b7。也能够全数选择后,以十六进制编辑输入鼓励a、b、sum,仿真结果如图所示。

图 仿真波形

6.器件选择

选择Assign菜单中Device项,因为子板的FLEX芯片为EPF10K10LC84-4。从Device Family当选择FLEX10K,将Show Only Fastest Speed Grades选择去掉,Devices中显现EPF10K10LC84-4器件选项,选择该器件,点击OK确信示。

7.分派管脚

从系统菜单MAX+PLUS II当选择Floorplan Editor,从Layout菜单当选择Device View将Unassigned Nodes & Pins中的引脚选上,拖到下面芯片中相应的引脚上。

输入信号:clk 时钟输入 I/O42

rst 异步清0输入 I/O40

ena 同步时钟使能 I/O41

输出信号:outy 4位计数结果输出 I/O03…I/O00

cout 计数进位输出

8.程序下载

从系统菜单MAX+PLUS II当选择Programmer,如图所示。从Options菜单中Hardware Setup,在Hardware Type当选择ByteBlaster,点击OK确信。然后,在Program中点击Configure进行程序下载。

I/O04

图 程序下载

9.逻辑功能验证

启动EDA2000软件,按“连接EDA2000”键,按图编辑输入输出模式,通过“启动/暂停”键下载模式,通过手动脉冲观看设计结果,列出真值表如表和表。

图 逻辑功能

表四位二进制加法计数器功能表

ena

0

0

1

1

Rst

0

1

0

1

clk

表 计数器计数时序及显示字型

clk

0

1

2

3

4

5

6

7

字型

clk

8

9

10

11

12

13

14

15

字型

输出

从系统菜单MAX+PLUS II当选择Floorplan Editor,从Layout菜单当选择Device View,将Unassigned Nodes & Pins中的引脚拖到下面芯片中相应的引脚上。

输入信号:clk 时钟输入 I/O30

rst 异步清0输入 I/O40

ena 同步时钟使能 I/O41

输出信号:outy 4位计数结果输出 I/O03…I/O00

cout 计数进位输出 I/O04

那个地址将clk 时钟输入锁定到I/O30引脚上,因为在EDA2000实验仪上,I/O30引脚与持续时钟相连,按图设计模式,并将I/O30持续时钟频率调整到1Hz,观看输出转变规律。

发布评论

评论列表 (0)

  1. 暂无评论