2021-03-30 Quarttus|| 9.0 创建并执行第一个VHDL程序(流水灯程序)

Quarttus|| 9.0 创建并执行第一个VHDL程序(流水灯程序)

前言
本次实验所用软件为Quartus||9.0,所用板载为EPF10K20T144-4

注意事项
(1)创建VHDL工程时选择板载系列一定要按照板载芯片上的系列选中。
(2)目前使用的Quartus || 9.0不支持输入汉字的功能,只支持显示汉字的功能,所以想要在上面显示汉字,得先在记事本中写好自己要写的汉字内容,然后再复制粘贴到Quartus || 9.0上的文件中。
(3)安装驱动程序前一定要记得禁止驱动程序签名。
(4)配置完引脚以后一定要记得要再编译一次。

创建一个VHDL工程
1、点击File->new project Wzarid

2、默认Next即可。

3、在图中灰圈所圈中地方选择工程保存文件,红圈所圈中地方输入项目名称(注:项目名称为自定义,不要出现空格),然后点击Next即可。

4、如果需要添加自己已经写好的文件,在红圈圈中的地方找到文件路径,然后点击Add即可添加,若不需要,则默认Next即可。

5、在图中灰圈所圈中地方选择程序所要烧入板载系类,红圈所圈中地方选择板载芯片上所标系列,然后点击Next即可。

6、默认Next即可。

7、默认Finish即可。

创建一个VHDL程序文件(流水灯程序)
1、点击File->new或直接点击图中红线所圈按钮即可。

2、点击VHDL File即可。

3、在此界面输入自己要写的程序即可。

书写并编译一个VHDL程序(流水灯程序)
1、在创建好的VHDL程序文件中用VHDL语言书写以下程序

Library IEEE;      --调用IEEE库
use IEEE.STD_LOGIC_1164.ALL;     --调用IEEE库中的STD_LOGIC_1164程序包(必须在设计实体前显示出来)

--创建实体hello
entity hello is
port(clk,rst:in std_logic;       --创建时钟端口clk和复位端口rst(输入模式)
	  out1:out std_logic_vector(3 downto 0));       --创建输出端口,对应4个LED。要使用移位操作符(位输出模式)其左侧必须为BIT_VECTOR类型(位矢量类型)                                             
end hello;

--创建结构体behave并综合结构体behave到实体hello上
architecture behav of hello is
signal sta:std_logic_vector(1 downto 0);    --创建两位的逻辑向量   
signal cnt:integer range 0 to 20;    --创建整型的cnt,数值范围为020
begin
	process(clk)          
	begin
		if clk'event and clk='1' then       --如果时钟上升沿,则cnt加1(一个进程只能有一个边缘触发)
		cnt<=cnt+1;          
		if rst='0' then      --如果复位端口为0,则cnt为0
		cnt<=0;
			elsif cnt=1 then     --如果cnt为1,则sta为00
			sta<="00";
			elsif cnt=5 then     --如果cnt为5,则sta为01
			sta<="01";
			elsif cnt=10 then     --如果cnt为10,则sta为10
			sta<="10";
			elsif cnt=15 then     --如果cnt为15,则sta为11
			sta<="11";
			elsif cnt=20 then    --如果cnt为20,则cnt为0
			cnt<=0;
			end if;
				case sta is
				when"00"=>out1<="0001";     --如果sta为00,则outl为0001
				when"01"=>out1<="0010";     --如果sta为01,则outl为0010
				when"10"=>out1<="0100";     --如果sta为10,则outl为0100
				when"11"=>out1<="1000";     --如果sta为11,则outl为1000
				end case;
			end if;
	end process;
end behav;

2、点击红线圈中的按钮保存程序(注:在点击保存弹出的页面中要注意程序文件名必须与工程文件名相同,即图中灰线圈中地方必须一致)

3、点击Assignments->setting,然后在出现的界面里点击红线圈住的地方,按照如图所示设置然后点击“OK”即可。(注:这样做会加快我们的编译速度。)

4、点击红线圈中的按钮编译VHDL程序即可。

4.1——第4步中出现的问题
问题一:编译报错:Error: Top-level design entity "Hello" is undefined

问题原因:
(1)可能的第一种原因:文件名与工程文件名没统一;
(1)的解决办法:找到存储的文件,然后将工程名或者文件名更改,使其一致;
(2)可能的第二种原因:VHDL程序中创建的实体出现问题;
(2)的解决办法:将VHDL程序中实体名改成与工程名一致;(注:实体名即为图中红线圈出的地方的字符)


5、点击Tools->Netlist Viewers->RTL Viewer,即可看到经过综合生成的RTL(寄存器传输级电路原理图)。
在这里插入图片描述
6、点击Tools->Netlist Viewers->Technology Map Viewer,即可看到经过综合生成的RTL(门级电路原理图)。
在这里插入图片描述

对VHDL程序(流水灯程序)进行仿真
1、点击File->new->Vector Waveform File创建一个Vector Waveform File文件。

2、填添加仿真的引脚。(注:如下图所示)

3、点击图中红线所圈中的时序仿真按钮得到如图所示结果即可。

将VHDL程序文件(流水灯程序)烧入板载测试
1、点击Assignments->Pins在图中红线圈中的地方设置对应板载的引脚

2、点击烧入按钮,再在弹出的界面上点击start将VHDL程序烧入板载

3、不断改变CLK相对应引脚的电平,使流水灯显示,成功界面如下



  • 12
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值