使用Quartus13进行VHDL工程的编写与仿真

使用Quartus13进行VHDL工程的编写与仿真


徐晓峰

2021.4.19


编写代码

  • 点击新建一个工程


    在这里插入图片描述

    在这里插入图片描述

  • 选择工程保存的路径,填写工程名称,注意,三个圈起来的应该相同


    在这里插入图片描述

  • 与上一步的文件名也相同;


    在这里插入图片描述

  • 选择设备类型,一定要进行选择,否则后面编译仿真时可能会出错

    我们使用的开发板芯片为EP4CE10F17C8


    在这里插入图片描述

  • EDA Tools Settings中的仿真工具选择None,不需要自动进行波形仿真。


    在这里插入图片描述

  • 点击Finish


    在这里插入图片描述

  • 点击新建文件,选择 vhdl file


    在这里插入图片描述

    在这里插入图片描述

  • 编写vhdl语言程序,以我们上次实验做的七段显示译码器为例(注意文件名和器件名一定要一致)


    在这里插入图片描述
    附上本次实验的实验代码:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY	yimaqi IS
	PORT( bcd: IN STD_LOGIC_VECTOR( 3 DOWNTO 0 );
	      a,b,c,d,e,f,g: OUT STD_LOGIC);
END yimaqi ;

ARCHITECTURE work1 OF yimaqi IS
	SIGNAL dout: STD_LOGIC_VECTOR( 6 DOWNTO 0 );
BEGIN
	WITH bcd SELECT
		dout <= "0111111" WHEN "0000",
				"0000110" WHEN "0001",
				"1011011" WHEN "0010",
				"1001111" WHEN "0011",   --教材有误!
				"1100110" WHEN "0100",  				
                "1101101" WHEN "0101",
				"1111101" WHEN "0110",
				"0000111" WHEN "0111",
				"1111111" WHEN "1000",
				"1101111" WHEN "1001",
				"0000000" WHEN OTHERS;
		a <= dout( 6 );
		b <= dout( 5 );
		c <= dout( 4 );
		d <= dout( 3 );
		e <= dout( 2 );
		f <= dout( 1 );
		g <= dout( 0 );

END work1 ;
  • 如果刚刚新建的VHDL没有保存,可以再File里选择另存为;


    在这里插入图片描述

  • VHDL文件名和工程名相同;


    在这里插入图片描述

  • 右键单击将写好的文件设置为顶层文件


    在这里插入图片描述

  • 点击编译,没有报错即VHDL文件编写成功


    在这里插入图片描述

  • 如出现以下内容,是因为项目名称叫做test,但是找不到这个名称叫test。顶级模块的名称必须与项目名称一致。


    在这里插入图片描述

  • 故更正程序如下所示

    在这里插入图片描述


生成部件

  • 将刚才的vhdl文件生成为部件,并用它进行画图,进行如下操作:

  • 点击 File->Create/Update->Create symbol files for current file,没有报错即可


    在这里插入图片描述

    在这里插入图片描述


生成顶层图

  • 如果你想用上面的部件画一个顶层图,那么就新建一个Block Diagram/Schematic File


    在这里插入图片描述

  • 双击空白处可调出Symbol界面,在这里可以看到自己工程文件生成的部件


    在这里插入图片描述

  • 选中后点击OK即可放置在原理图上,然后进行保存即可。


    在这里插入图片描述


仿真测试

  • 对生成的部件进行仿真测试,则进行如下操作:

  • 点击Processing->Start->Start Test Bench Template Writer,没有报错即可


    在这里插入图片描述

    在这里插入图片描述

  • 新建一个University Program VWF文件


    在这里插入图片描述

  • 双击左侧空白处,可调出Insert Node or Bus窗口


    在这里插入图片描述

  • 点击list按钮就会显示出Entity(实体)定义的所有变量,之后全部导入即可;
    在这里插入图片描述

  • 分别给四个输入信号加上激励波形,分别为10、20、40、80,满足BCD码条件


    在这里插入图片描述

  • 保存后点击Run Functional Simulation,稍等即可弹出仿真后的界面


    在这里插入图片描述

  • 【注】此处仿真不出图,很麻烦,需要新建仿真库https://blog.csdn.net/u013753393/article/details/50350138<> 参考本文

  • 另一简便途径是,下载ModelSim-Altera。附上下载链接:https://pan.baidu.com/s/16nEjS6Tx1NHKpU_e4ale1g 提取码:1234

  • 【注】想对哪个文件进行仿真,就需将哪个文件设置为顶层文件,并进行组建编译,然后重新建立一个VWF文件。


这样一个编写代码->生成部件->生成顶层图->仿真测试的流程就完成了。


下一篇:如何将写的程序下入正点原子_新起点开发板

  • 18
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于cyclone FPGA VHDL语言设计交通信号灯quartus9.0工程源码+文档说明, 设计任务 1. 模拟十字路口交通信号灯的工作过程,利用交通信号灯上的两组红,黄,绿LED发光二极管作为交通信号灯,设计一个交通信号灯控制器。 2. 模拟两条公路,一条交通主干道,一条交通支干道,在主干道和支干道的交叉路口上设置红,绿,蓝灯进行交通管理。 3. 应用VHDL硬件描述语言编写程序; 4. 利用软件仿真出结果; 2总体设计 十字路口交通灯控制系统设计 任务和要求:该数字系统完成对十字路口交通信号灯的控制,十字路口由一条东西方向的主干道(简称A道)和南北方向的支干道(简称B道)构成。 十字路口交通灯控制规则为: (1) 初始状态为4 个方向的红灯全亮,时间1s。 (2) 东西方向绿灯亮,南北方向红灯亮。东西方向通车,时间30s。 (3) 东西方向黄灯亮,南北方向红灯亮,时间5s。 (4) 东西方向红灯亮,南北方向绿灯亮。南北方向通车,时间20s。 (5) 东西方向红灯亮,南,北方向黄灯亮,时间5s。 (6) 返回(2),继续运行。 (7) 如果发生紧急事件,例如救护车,警车通过,则按下单脉冲按钮,使得东,南,西,北四个方向红灯亮。紧急事件结束后,松开单脉冲按钮,将恢复到被打断的状态继续运行。 3 详细设计及实现 此题即为一个典型的时序状态机,共有六个大的状态,现设定: S0: 四个方向的红灯全亮 S1: 东、西方向绿灯亮,南、北方向红灯亮 S2:东、西方向黄灯闪烁,南、北方向红灯亮 S3:东、西方向红灯亮,南、北方向绿灯亮 S4:东、西方向红灯亮,南、北方向黄灯闪烁 S5:东、西、南、北四个方向的红灯亮 则状态图如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY state_machine IS PORT( clk,reset_n,hold,clk_1hz,select_model: IN STD_LOGIC;--clk为50M时钟信号,hold为紧急信号,reset为复位信号 second_count_ge_out: OUT std_logic_vector(3 downto 0);--秒的个位 second_count_shi_out:OUT std_logic_vector(3 downto 0);--秒的十位 red1_out,green1_out,yellow1_out:OUT STD_LOGIC; --控制东西方向的交通灯 red2_out,green2_out,yellow2_out:OUT STD_LOGIC);--控制南北方向的交通灯 END;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值