Quartus II 入门案例(VHDL)

前言

本文介绍Quartus II的使用方法,通过VHDL硬件描述语言编程来实现简单的电路功能。

一、使用步骤

首先打开Quartus II 新建vhdl文件 

Quartus II 入门案例(VHDL)_第1张图片

Quartus II 入门案例(VHDL)_第2张图片

右侧就是代码编辑界面

Quartus II 入门案例(VHDL)_第3张图片

 本例通过VHDL实现一个简单的非门案例,有利于新手快速入门

Quartus II 入门案例(VHDL)_第4张图片

相关量解释

nottest:实体名称

x:输入端口

y:输出端口

bhv:结构体

实现代码如下:

library ieee ;
use ieee.std_logic_1164.all ;

entity nottest is
	port (x : in std_logic;
		  y : out std_logic);
	
end entity nottest;

architecture bhv of nottest is
	begin 
	y <= not x;

end architecture bhv;

ctrl+s保存文件(注意文件名要和实体名相同否则编译的时候会报错)

Quartus II 入门案例(VHDL)_第5张图片

 接下来出现工程创建向导界面

Quartus II 入门案例(VHDL)_第6张图片

配置工程路径、名称和top-level

Quartus II 入门案例(VHDL)_第7张图片 添加刚才保存的nottest.vhd文件

Quartus II 入门案例(VHDL)_第8张图片

因为此案例没有指定特定的FPGA板子上对应的芯片,所以后面的两页都默认点击next

Quartus II 入门案例(VHDL)_第9张图片 

Quartus II 入门案例(VHDL)_第10张图片 

 完成工程创建

Quartus II 入门案例(VHDL)_第11张图片

点击下方图片的紫色图标进行编译

Quartus II 入门案例(VHDL)_第12张图片 

编译成功

Quartus II 入门案例(VHDL)_第13张图片 

 二:创建Vector WaveForm File进行波形仿真

Quartus II 入门案例(VHDL)_第14张图片

 此时还没有添加节点,在name下方空白区域右键进行插入节点

Quartus II 入门案例(VHDL)_第15张图片

点击Node_Finder添加节点

Quartus II 入门案例(VHDL)_第16张图片 

 

Quartus II 入门案例(VHDL)_第17张图片

最后点击OK完成节点添加

Quartus II 入门案例(VHDL)_第18张图片 

此时波形文件出现了输入、输出节点

Quartus II 入门案例(VHDL)_第19张图片 

对输入节点X提供时钟波形

Quartus II 入门案例(VHDL)_第20张图片 

 Quartus II 入门案例(VHDL)_第21张图片

 对Waveform1.vmf文件进行保存

Quartus II 入门案例(VHDL)_第22张图片

点击下方箭头进行仿真

Quartus II 入门案例(VHDL)_第23张图片 

此时y出现了波形但是和非门的效果相差甚远。这时因为本例只是一个简单的组合逻辑门电路不是时序逻辑电路,进入Assignments界面点击Setting下将Simulation mode从Timing改为Functional。(默认的仿真模式是Timing)

Quartus II 入门案例(VHDL)_第24张图片 

 最后点击Processing中的Generate Functional Simulation Netlist生成仿真节点列表

Quartus II 入门案例(VHDL)_第25张图片 

 

Quartus II 入门案例(VHDL)_第26张图片

重新点击仿真图标可以得到正常的波形

Quartus II 入门案例(VHDL)_第27张图片

 

三:案例扩展

下面我还列举了二选一选择器四选一选择器的代码,有需要的可以按照上述步骤进行工程创建和仿真练习

二选一选择器代码及仿真波形图:

entity select1of2 is 
	port (a, b, s : in bit;
				y : out bit);
end entity select1of2;

architecture bhv of select1of2 is 
	begin
	process(a,b,s)
	begin
		if(s='1') then y<=a; else y<=b;
		end if;
	end process;
end architecture bhv;

Quartus II 入门案例(VHDL)_第28张图片

四选一选择器代码及仿真波形图:

library ieee;
use ieee.std_logic_1164.all;

entity select1of4 is
port(a, b, c, d, s0, s1 : in std_logic;
					 y  : out std_logic);

end entity select1of4;

architecture bhv of select1of4 is
signal s : std_logic_vector(1 downto 0);
begin
s <= s1 & s0;

process(s)  begin
case (s) is
	when "00" => y <= a;
	when "01" => y <= b;
	when "10" => y <= c;
	when "11" => y <= d;
	when others => null;
	end case;
end process;
end architecture bhv;
	

Quartus II 入门案例(VHDL)_第29张图片


 

总结

以上就是本文要讲的全部内容,感谢你能观看到这。

你可能感兴趣的:(fpga开发)