Lab 1<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
截止日期:2008-9-18 5:00:00pm
1. 安装ModelSim PE 6.4 学生版
(1) 下载 ftp://172.16.3.97/huanghai/fpga/ modelsim-pe_student_edition.exe
(2) 按右键解压该文件
(3) 进入解压目录,运行setup.exe
(4) 安装时全部选择默认即可
(5) 安装完成后,浏览器会自动打开ModelSim的注册网页,用于申请License(证书)http://portal.model.com/modelsim/student_edition/registration.asp
(6) 填写网页上的每一栏,填写完毕后按Request License按钮提交。该表单必须认真填写,特别是email地址,填写完毕后License会发到你的邮箱。License是根据机器的硬件ID号生成的,每台电脑的License都不同,一个License不能用在多台电脑上。填写时可参照下面的例子:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
(7) 把收到的student_license.dat文件保存到ModelSim的安装目录,例如C:\Modeltech_pe_edu_6.4
(8) 安装完毕,可选择“开始”->“程序”->“ModelSim PE Student Edition <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />6.4”->“ModelSim”运行程序
2. 安装Xilinx ISE Webpack
(1) 下载并解压ftp://172.16.3.97/huanghai/fpga/WebPACK_SFD_92i.zip
(2) 运行setup.exe
(3) 选择Next
(4) 选中I accept the terms….,然后按Next (重复3次)
(5) 选择安装路径,然后按Next
(6) 在接下来的三个窗口中,直接按Next就行了
(7) 选择Install,开始安装
(8) 安装完成后,在Xilinx WebUpdate窗口,选择Cancel
(9) 按OK
(10) 选择“开始”->“程序”->“Xilinx ISE 9.2i”->“Project Navigator”运行程序
3. 使用ModelSim
(1) 启动ModelSim
(2) 选择File->New->Project…,在弹出的窗口中的Project Name文本框输入项目的名字(例如:Lab1),然后按OK。其他文本框可用默认值
(3) 在”Add items to the Project”窗口中选择Create New File
(4) 在”Create Project File”窗口中输入文件名,例如:lab1,然后按OK
(5) 重复第(3)和(4)步,创建多一个新文件testbench
(6) 关闭”Add items to the Project”窗口
(7) 双击主窗口左边的”Workspace”栏的lab1.vhd,打开该文件,输入以下内容:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity clkgen is
Port (clkin : in std_logic;
reset : in std_logic;
clkout : out std_logic);
end clkgen;
architecture Behavioral of clkgen is
signal counter : std_logic_vector(7 downto 0);
signal myclk : std_logic;
begin
clkout <= myclk;
process(clkin, reset)
begin
if (reset='0') then
counter <= (others => '0');
myclk <= '0';
elsif rising_edge(clkin) then
if (counter < "00000101") then -- 100MHz/10M/2=5
counter <= counter + "00000001";
else
counter <= (others => '0');
myclk <= not myclk;
end if;
end if;
end process;
end Behavioral;
(8) 双击主窗口左边的”Workspace”栏的testbench.vhd打开该文件,输入以下内容:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;
ENTITY tb_vhd IS
END tb_vhd;
ARCHITECTURE behavior OF tb_vhd IS
COMPONENT clkgen
PORT(
clkin : IN std_logic;
reset : IN std_logic;
clkout : OUT std_logic);
END COMPONENT;
SIGNAL clkin : std_logic := '0';
SIGNAL reset : std_logic := '0';
SIGNAL clkout : std_logic;
BEGIN
uut: clkgen PORT MAP(
clkin => clkin,
reset => reset,
clkout => clkout);
clk_gen: process
begin
clkin <= '1';
wait for 5 ns;
clkin <= '0';
wait for 5 ns;
end process clk_gen;
re_set : process
begin
reset <= '0';
wait for 97 ns;
reset <= '1';
wait;
end process re_set;
END;
(9) 在”Workspace”栏的空白处按鼠标右键,选择Compile->Compile Order…,确定lab1.vhd在testbench.vhd的上方,然后按OK。这样编译器就会先编译lab1.vhd,然后才编译testbench.vhd
(10) 在”Workspace”栏的空白处按鼠标右键,选择Compile->Compile All,这时Transcript栏会显示:
# Compile of lab1.vhd was successful.
# Compile of testbench.vhd was successful.
# 2 compiles, 0 failed with no errors.
ModelSim>
如果显示一下错误提示,就说明程序中存在错误,可双击该错误提示,查看详情:
# Compile of lab1.vhd failed with 1 errors.
(11) 选择”Workspace”的Library标签,展开Work列表,然后在tb_vhd上按鼠标右键,选择Simulate
(12) 在”Workspace”的Sim标签下,鼠标右键单击tb_vhd,选择Add->To Wave->All items in design
(13) 在主界面的Transcript栏,输入run 300 ns(注意空格)
(14) 按Wave标签窗口右上角的+,可以放大画面
(15) 按工具栏的Zoom Full按钮,可以更好的查看波形,clkin的频率是clkout频率的10倍,如下图:
(16) 选择菜单的Simulate->End Simulation,可以中止当前的仿真
4. 使用Xilinx ISE
(1) 启动Project Navigator
(2) 选择File->New Project
(3) 在弹出的窗口输入Project的名称Lab1,Top-Level Source Type选择HDL;
(4) 在“New Project Wizard – Device Properties”窗口中指定开发板上的FPGA的型号和规格,如下图所示:
上图所做选择的含义是:开发板FPGA的种类是General Purpose(通用型),产品家族是Spartan3,型号是XC3S200,封装是PQ208,速度是-4;综合工具是XST,仿真工具是Modelsim-XE VHDL,HDL语言是VHDL
(5) 在“New Project Wizard – Create New Sources”àVHDL Module窗口直接按Next
(6) 在“New Project Wizard –Add Existing Sources”窗口直接按Next
(7) 在“New Project Wizard –Project Summary”窗口按Finish
(8) 双击主界面左边的Process栏中的Create New Source,在弹出的窗口中选择VHDL Module,然后输入文件名lab1,并按Next
(9) 在“New Source Wizard – Define Module”窗口直接按Next
(10) 在“New Source Wizard – Summary”窗口按Finish
(11) 双击主界面左边Sources栏中的lab1.vhd,打开该文件
(12) 编辑lab1.vhd,输入以下内容:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity lab1 is
Port ( button : in std_logic;
led : out std_logic);
end lab1;
architecture Behavioral of lab1 is
begin
led <= button;
end Behavioral;
(13) 展开主界面左边Process栏中的User Constraints,双击Edit Constraints (Text),在弹出的窗口按Yes来创建一个ucf文件
(14) 在打开的lab1.ucf文件输入
NET "led" LOC = "P92";
NET "button" LOC = "P154";
(15) 展开主界面左边Process栏中的Generating Programming File,双击Configure Device (iMPACT)
(16) 编译和综合完成后,会弹出”iMPACT – Welcome to iMPACT”窗口,选择”Configure devices using Boundary-Scan (JTAG)” -> “Automatically connect to a cable and identify Boundary-Scan chain”,然后按Finish
文章评论(0条评论)
登录后参与讨论