写过软件的朋友一般都写过”hello world!”,因为这个是最简单的程序。在FPGA上最简单的应用就是点亮一盏闪烁的LED。 FPGA驱动LED示意图 首先用ISE新建一个工程,双击Xilinx ISE Design Suite 12.4图标 启动软件,打开ISE Project Navigator窗口,如下图 ISE软件界面 点击New Project...按钮 新建工程 打开New Project Wizard 创建新工程 输入新工程名字和路径,按Next按钮 输入工程名和路径 在下一个窗口中指定所使用的FPGA芯片类型,封装,速度 指定FPGA芯片 点击Next弹出确认新建工程信息窗口,确认无误后点Finish 确认工程信息 至此工程已经建好的,但是仅仅是一个空工程,里面没有任何文件。现在为工程加入源文件,右键单击xc3s200a-4vq100,选择New Source Wizard 新建源文件 左边是源文件的类型,选VHDL Module,输入blinker,点Next 定义输入轮输出信号 在Port Name中输入 clk_i 方向 in ,blinker_o 方向out ,点Next 确认端口信息 确认无误后点Finish 。 将生成的源文件模板做如下修改 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values --use IEEE.NUMERIC_STD.ALL; -- Uncomment the following library declaration if instantiating -- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity blinker is Port ( clk_i : in STD_LOGIC; blinker_o : out STD_LOGIC); end blinker; architecture Behavioral of blinker is signal cnt_r : std_logic_vector(22 downto 0) := (others=>'0'); begin process(clk_i) is begin if rising_edge(clk_i) then cnt_r <= cnt_r="" +="">=> end if; end process; blinker_o <=>=> end Behavioral; 其中信号cnt_r将输入时钟做2^23次分频,下图直观的显示了输入时钟分频得到输出信号的过程。 分频输入时钟得到输出信号 保存文件,然后双击Floorplan Area/IO/Logic(PlanAhead)标签 分配引脚 点I/O Ports标签 I/O Ports标签 在Package Pins窗口中指定引脚 指定引脚 保存,退出PlanAhead,在ISE中双击Generate Programming File 生成可下载的位流文件 生成位流文件 在工程文件夹内可找到生成的位流文件 位流文件 用FRF_Loader将位流文件配置进FPGA即可看到LED闪烁 配置FPGA 最后效果 点亮后的LED 这是最简单的应用,以后会为大家带来更多,更好玩的…… |
|
来自: 2017helloworld > 《学术性》