首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[原创]FPGA/CPLD系列实验教程:实验一点亮LED

要是能把图片加上最好啦!~ 这个实验的VHDL源代码: --lightled1 library ieee; use ieee.std_logic_1164.all; entity ledlight1 is port(ledut std_logic_vector(7 downto 0)); end; architecture behav of ledlight1 is begin led<="10101010"; end;

大浪淘沙
留下的全是金子
本来直接用ubb就可以,但是我没有找到怎么用,这个使用实在有点痛苦
www.5iFPGA.com
终于算是把图弄好了,好累
www.5iFPGA.com

[原创]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编辑过]

www.5iFPGA.com
入门挺好,不过如果手动绑定管脚,要先编译,在绑定,再编译。建议用脚本文件。
爱,不是激情的随口
  
        情,不是瞬间的感动
不用先编译,可以直接输入名字然后绑定,脚本绑定我准备后面再讲,新手一时可能还接受不了那么多新的东西,要慢慢来
www.5iFPGA.com
返回列表