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,观看输出转变规律。