实验一:ISE9.1软件基本操作与应用实验
1、实验目的:
(1)掌握ISE9.1软件的基本操作及应用
(2)通过一个简单的3-8译码器的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
,掌握组合逻辑电路的设计方法
(3)掌握组合逻辑电路的仿真方法
2、实验步骤:
(1)建立项目存在的路径:注意问题:
1)不能放在根目录下
2)路径名称符合标识符的命名规范
如:E:\\EDAexp
(2) 打开ise集成开发环境:
双击桌面图标如图1-1所示,或者从执行:程序->Xilinx ise 9.1i -> project navigator
图1-1
(3) 建立一个项目:
首先打开 ISE,每次启动时 ISE 都会默认恢复到最近使用过的工程界面。当第一次使用时,由于此时还没有过去的工程
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
,所以工程管理区显示空白。选择 File/New Project 选项,在弹出的新建工程对话框中的工程名称中输入“decoder3_to_8”。在工程路径中单击 Browse 按键,将所建工程放到指定目录,如图 1-2所示。
图 1-2
(4)点击“Next”进入下一页,选择所使用的芯片类型以及综合、仿真工具。
计算机上所安装的所有用于仿真和综合的第三方 EDA 工具都可以在下拉菜单中找到,如图 1-3 所示。在图中,假设本例采用器件spartan3A系列的XC3S50A芯片,并且指定综合工具为 XST(VHDL/verilog),仿真工具选为ISE自带的ISE simulator,如图1-3所示。
图 1-3
(5)再点击“Next”进入下一页,可以选择新建源代码文件,也可以直接跳过,进入下一页。第4页用于添加已有的代码,如果没有源代码,点击“Next”,进入最后一页,单击finish确认后,就可以建立一个完整的工程。
(6)代码输入
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,会弹出如图 1-4 所示的 New Source对话框。
图 1-4
左侧的列表用于选择代码的类型,各项的意义如下所示:
?? IP(Coregen & Architecture Wizard):由 ISE 的 IP Core 生成工具快速生成可靠的源代码,这是目前最流行、最快速的一种设计方法。
?schematic:原理图类型
State Disgram:状态图类型。
? Test Bench Wavaform:测试波形类型。
? User Document:用户文档类型。
? Verilog Module:Verilog 模块类型。
? Verilog Test Fixture:Verilog 测试模块类型。
? VHDL Module:VHDL模块类型。
? VHDL Library:VHDL库类型。
? VHDL Package:VHDL包类型。
? VHDL Test Bench: Verilog 测试模块类型
在代码类型中选择 VHDL Module选项,在 File Name文本框中输入decoder3_8,单击 Next进入端口定义对话框,如图 1-5所示。
图 1-5
其中ENTITY Name就是输入的“decoder3_8”,下面的列表框用于对端口的定义。“Port Name”表示端口名称,“Direction”表示端口方向(可以选择为 input、output 或 inout),MSB 表示信号的最高位,LSB 表示信号的最低位。对于单位信号MSB 和 LSB 不用填写。 此处可以忽略不填,在后面程序窗口手动添加。
定义了模块端口后,单击“Next”进入下一步,点击“Finish”按键完成创建。这样,ISE 会自动创建一个VHDL模块的例子,并且在源代码编辑区内打开。简单的注释、模块和端口定义已经自动生成,所剩余的工作就是在模块中实现代码。填入的代码如下:
- Company:
-- Engineer:
--
-- Create Date: 16:17:04 10/25/2011
-- Design Name:
-- Module Name: decoder3_8 - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity decoder3_8 is
Port ( din : in STD_LOGIC_VECTOR (2 downto 0);
en : in STD_LOGIC;
y : out STD_LOGIC_VECTOR (7 downto 0));
end decoder3_8;
architecture Behavioral of decoder3_8 is
begin
----------------- 红线中间的语句为手动输入的语句
process(din,en)
begin
if en='1' then
case din is
when "000" => y<="10000000";
when"001" =>y<="01000000";
when"010"=>y<="00100000";
when"011"=>y<="00010000";
when "100"=>y<="00001000";
when"101"=>y<="00000100";
when"110"=>y<="00000010";
when"111"=>y<="00000001";
when others=>y<="00000000";
end case;
else
y<="00000000";
end if;
end process;
---------------------------
end Behavioral;
如1-6选择项目文件,process窗口会出现我们设计中常用的四个操作:综合、实现、生成bit文件、下载
图1-6
(7)综合
Source 窗中,选中要编译的源文件,双击处理窗Processes中的Synthesize-XST 。对出错报告语句进行修改,直到successfully。综合可能有 3 种结果:如果综合后完全正确,则在 Synthesize-XST前面有一个打钩的绿色小圈圈;如果有警告,则出现一个带感叹号的黄色小圆圈;如果有错误,则出现一个带叉的红色小圈圈。综合完成之后,双击处理窗Processes中的Synthesize-XST下的Source 窗中中Generate` post systhesis simulation Model,综合完成之后,可以通过双击Synthesize-XST中的View RTL Schematic 来查看RTL级结构图,察看综合结构是否按照设计意图来实现电路。双击view Technology s Schematic,可看到内部结构如图1-7所示。
图1-7
(8) 建立测试基准波形文件
在代码编写完毕后,需要借助于测试平台来验证所设计的模块是否满足要求。ISE 提供了两种测试平台的建立方法,一种是使用 HDL Bencher 的图形化波形编辑功能编写,另一种就是利用 HDL语言。在 ISE 中创建 test bench波形,可通过 HDL Bencher 修改,再将其和仿真器连接起来,再验证设计功能是否正确。我们使用第一种方法。
首先在工程管理区将 Sources for 设置为 Behavioral Simulation,然后在任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,然后选中“Test Bench WaveForm”类型,输入文件名为“decoder3_8_tbw”,点击 Next 进入下一页。如图1-8所示
图1-8
这时,工程中所有VHDL Module的名称都会显示出来,设计人员需要选择要进行测试的模块。由于本工程只有一个模块,所以只列出了decoder3_ 8,如图1-9所示。
图1-9
用鼠标选中decoder3_8,点击“Next”后进入下一页,直接点击“Finish”按键。此时 HDL Bencher 程序自动启动,等待用户输入所需的时序要求,如图1-10所示。
图1-10
时钟高电平时间和时钟低电平时间一起定义了设计操作必须达到的时钟周期,输入建立时间定义了输入在什么时候必须有效,输出有效延时定义了有效时钟延时到达后多久必须输出有效数据。其他具体参数可以见P58-60页介绍
因为本例是一个组合逻辑电路, 设置如图1-11所示,clock Information 选择Combinatorial,然后点击finish,测试矢量波形显示如图1-12。
图1-11
接下来,初始化输入(注:灰色的部分不允许用户修改),修改的方法为:选中信号,在其波形上单击,从该点击所在周期开始,在往后所有的时间单元内该信号电平反相。点击 din信号前面的“+”号,在 din[0]的第 2 个时钟周期内单击,使其变高;同样的方法修改 din[1]~din[2]信号,使其如图1-12所示。