[原创]FPGA/CPLD系列实验教程:实验一点亮LED
 
- UID
- 115233
- 性别
- 男
|
要是能把图片加上最好啦!~
这个实验的VHDL源代码:
--lightled1
library ieee;
use ieee.std_logic_1164.all;
entity ledlight1 is
port(led ut std_logic_vector(7 downto 0));
end;
architecture behav of ledlight1 is
begin
led<="10101010";
end; |
|
|
|
|
|

- UID
- 116449
- 性别
- 男
|
本来直接用ubb就可以,但是我没有找到怎么用,这个使用实在有点痛苦 |
|
|
|
|
|

- UID
- 116449
- 性别
- 男
|
|
|
|
|
|

- UID
- 116449
- 性别
- 男
|

[原创]FPGA/CPLD系列实验教程:实验一点亮LED
原文:http://www.5ifpga.com/ 不怎么会用这个论坛的功能,图没有弄上来,希望bbs能改进这个功能,能够编辑来自外来网站的图片连接。
实验一:点亮LED(发光二极管)
1. 实验要求及目的: 点亮发光二极管。通过这个实验,熟悉CPLD/FPGA开发软件的使用方法和开发流程及Verilog HDL 的编程方法。通过这个实验可以实际使用一下Quartus II软件,一通百通,下次就不讲那么详细了:) 使用软件:Quartus II 5.0。
2. 硬件原理图:

这个是我自己制作的开发板上的LED的原理图,一共有8个,IO和别的共用的,使用八个LED的时候板上的JP1和JP5全部戴上短接帽,JP2则空出。如果要点亮这些LED,只需要把与其相连接的FPGA管脚输出低电平“0”就可以实现这个功能了。(我焊板子的时候把LED1弄坏了,不能用。) LED管脚对应的情况如下: D1------PIN_97 D2------PIN_94 D3------PIN_91 D4------PIN_84 D5------PIN_82 D6------PIN_78 D7------PIN_76 D8------PIN_74 本文均采用输出“0”点亮的模式,以下就不再另外再说明了。
3. 程序设计
(1)利用连续赋值语句assign实现,文件名ledlight1.v
程序代码: [ Copy ] // Light 8 LED // Designed By Smokingfish @ www.51FPGA.com zhiyuh@163.com module ledlight1 (LED); output [7:0] LED; assign LED=8’b10101010; endmodule
(2)利用过程赋值语句来实现,文件名ledlight2.v
程序代码: [ Copy ] // Light 8 LED // Designed By Smokingfish @ www.51FPGA.com zhiyuh@163.com module ledlight2 (LED); output [7:0] LED; reg [7:0] LED; always begin LED=8'b10101010; end endmodule
4. 实验步骤
(1)打开Quartus II软件,进入集成开发环境,点击File->New project wizard..新建工程项目ledlight1,直接点击Finish。(也可以在这里选择所用器件,这次我就不这样弄,你可以自己试试,点击Next>,后面我会讲怎么选择芯片的)

(2)点击File->New..在该项目下新建Verilog HDL源程序文件ledlight1.v(或者直接点快捷图标,下图中红色部分),输入上面的源程序代码并保存。

(3)下面选择所用的FPGA器件----EP1C3T144C8,以及进行一些配置。点击Assignments->Device..,出现下面的对话框。面对一堆的器件如何选择呢?有个快捷的办法:

第一步:选择封装——TQFP; 第二步:选择管脚数目——144; 第三步:选择器件速度等级——8。 这下就只有两个选择了,容易吧:)选择EP1C3T144C8,先不要着急ok,还有一些要设置的。看见蓝色那部分没有,点一下。出现下面这个对话框。

点击红色的部分Configuration,出现下面一个对话框,从Configuration Device下拉菜单里面选择EPCS1。

然后再点击红色的部分Unused Pins,选择不需要使用的IO功能。选择As inputs,tri-stated。这个的含义写的很清楚,不需要我多讲了吧: Reserves all unused pins on the target device in one of three states: as inputs that are tri-stated, as outputs that drive ground, or as outputs that drive an unspecified signal.

点击两次ok,回到主界面。
(4)为工程项目锁定引脚: 点击Assignments-> ins,出现下面的窗口,点击蓝色方,填入LED[0],红色的下拉框里选择PIN_97,以此类推,把LED[0]---LED[7]全部分配好。

分配好之后如下图所示:

(5)编译工程项目:点击Processing->Start Compilation,然后就是编译了,很快就能看到成功的字样,如下图:

(6)仿真:这么简单的一个东西就暂时不需要仿真了,以后再讲这个吧:)
(7)下载目标文件到板子上:点击Tools-> rogrammer,出现下面这个窗口。选中Jtag模式,并且选中红色部分里面的框框,然后点Start:

下载过程中可以看到Progress进度条的进展:

终于完成了,可以看到板子上的8个LED间隔点亮了(我的第一个灯焊盘坏了,前面说过了)——如下图,高兴吧,原来一切都这么简单,通过这个实验,基本就知道了如何使用Quartus II了,开发的流程也有一个比较清楚的认识,也方便进行以后的实验了。

采用第二种方法编写的源代码的开发流程一样的,大家可以实验一下,不过记得注意,文件夹的名字一定要和工程名一样才行,否则编译是没有办法通过的。
第一次写这么长的教程,贴图把我弄得够戗,还是不熟这些东西啊,以后一定加油,希望大家也能多多支持:)有什么问题和建议也请给我意见和建议,不要给我板砖就行。
www.51FPGA.com 抽烟的鱼版权所有,转载需注明出处,谢谢。
[此贴子已经被作者于2006-11-30 17:35:49编辑过] |
|
|
|
|
|

- UID
- 107137
- 性别
- 男
|
入门挺好,不过如果手动绑定管脚,要先编译,在绑定,再编译。建议用脚本文件。 |
|
|
|
|
|

- UID
- 116449
- 性别
- 男
|
不用先编译,可以直接输入名字然后绑定,脚本绑定我准备后面再讲,新手一时可能还接受不了那么多新的东西,要慢慢来 |
|
|
|
|
|