一 实验原理
实验符号 | 对应标号 | 管脚 |
LEDn[7] | D37 | PIN_75 |
LEDn[6] | D36 | PIN_74 |
LEDn[5] | D35 | PIN_73 |
LEDn[4] | D34 | PIN_72 |
LEDn[3] | D33 | PIN_71 |
LEDn[2] | D32 | PIN_70 |
LEDn[1] | D31 | PIN_69 |
LEDn[0] | D30 | PIN_65 |
clk | CLKIN | PIN_17 |
3.点击File>Save,在弹出的对话框中点击OK即可。如图<?XML:NAMESPACE PREFIX = ST1 />2.2.2。
4.在波形文件中点击鼠标右键,选择Insert Node or Bus,在弹出的对话框中点击Node Finder,在新弹出的对话框中的Filter中选择Pins:all,然后点击List,这样在Nodes Founder区域就会出现先前VHDL文件中定义的输入、输出端口,然后再点击>>,选择OK即可,然后在Insert Node or Bus对话框中也选择OK。如图2.2.3。<?XML:NAMESPACE PREFIX = O />
5.对加入到波形文件中的输入端点,进行初始值设置(为了便于观察仿真结果,本实验在波形仿真时将VHDL程序中的时钟分频倍数改为了50,并取时钟信号的周期为1ns),然后点击Processing>Start Simulation,在弹出对话框中点击Yes,系统开始仿真。
6.仿真结束后,查看仿真结果是否符合实验要求。仿真结果如图2.2.4.
7.仿真无误后,根据表2.2-1的引脚对照表,对试验中用到的LED及时钟进行管脚绑定。选择Assignments>Assign Pins,会出现管脚分配对话框,如图2.2.5所示。
8.首先选择对应的引脚,然后在location中输入VHDL设计中对应的端口名称引脚号(参照表2.2-1),回车即可。如图2.2.6所示。
9.重复步骤8,对所有的端口进行分配。
10.编译无误后,用下载电缆通过JTAG接口将对应的LED_shining.sof文件下载到FPGA中。
11.下载结束后,观察实验结果是否与自己的仿真结果相吻合。
表2.2-1引脚对照表
实验符号 | 对应标号 | 管脚 |
clk | CLKIN | PIN_17 |
LEDn | D30 | PIN_65 |
LED_off[6] | D37 | PIN_75 |
LED_off[5] | D36 | PIN_74 |
LED_off[4] | D35 | PIN_73 |
LED_off[3] | D34 | PIN_72 |
LED_off[2] | D33 | PIN_71 |
LED_off[1] | D32 | PIN_70 |
LED_off[0] | D31 | PIN_69 |
五 参考程序
------------------------------库说明----------------------------------
library ieee; --IEEE标准库
use ieee.std_logic_1164.all; --调用库中的程序包
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
-----------------------------实体说明---------------------------------
entity LED_shining is --LED_shining 是实体名
port(
clk : in std_logic;
LEDn : out std_logic;
LED_off : out std_logic_vector(6 downto 0)
); --定义输入输出端口
end LED_shining;
-----------------------------结构体说明-------------------------------
architecture shining of LED_shining is --shining 是结构体名
signal clk_div : std_logic; --分频后的时钟信号,
--周期为5000000/50000000=0.1s
begin
process(clk)
variable count : integer range 0 to 4999999;
begin
if(clkevent and clk = 1) then
if(count = 4999999) then
count := 0 ;
else count := count + 1 ;
if(count < 250000) then
clk_div <= 0 ;
else clk_div <= 1 ;
end if ;
end if ;
end if ;
end process ;
LEDn <= clk_div ; --1个LED灯闪烁,周期为分频后
LED_off <= "1111111" ; --的时钟信号的周期,同时关闭其他7个LED
end shining;
文章评论(0条评论)
登录后参与讨论