giftFPGA 发表于 2011-5-25 20:03:00

【FPGA入门图文教程之一】|基于Cyclone III和Quartus II 10.0SP1

FPGA入门图文教程(一)LED 基于quartus10.0和FPGA礼物开发板
LED程序对于Verilog HDL就像Hello World程序对于C语言一样,初学者首先应该完成的程序应该就是LED程序。
本实验的软硬件环境:
1 软件Quartus II 10.0SPI
2 硬件:FPGA礼物开发板 giftFPGA-A3 mini 核心芯片是Cyclone III EP3C5
与单片机相比,FPGA点亮LED更加容易,只需将相应的的引脚输出高电平即可。以下是A3 mini开发板的LED部分电路图。
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642923NK8AHR.JPG
LED1-4分别于Cyclone III EP3C5的PIN_34,PIN_38,PIN_39,PIN_42相连,只需根据需要将这四个引脚输出高电平即可。
以下是详细步骤:
打开Quartus II 10.0SPI软件
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642924HWW1J6.JPG
点击工具条上的“新建”标签,如上图所示,
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642925O5APJR.JPG
默认为 “New Quartus II Project”,不用更改,直接点击”OK”;
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642926DX67M8.JPG
直接点击 Next
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642927S8AQX3.JPG
此处需要输入工程路径和工程名称,注意:路径不要有中文和空格,工程名不能以数字开头,工程名要与后面Verilog代码的模块名和文件名一致。
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642928ND1I5Z.JPG
直接点击 Next
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642929BH6YX2.JPG
这一步选则FPGA礼物开发板A3 mini使用的器件Cyclone III ,和EP3CE144C8。
后面不用更改,直接点击Finish即可。
       再次点击工具条上的“新建“标签。
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642930CXN9X1.JPG
选择Verilog HDL File.。
在文件中输入以下代码内容
module led (input CLK, output LED);
    reg led_r;
    always @(posedge CLK) led_r=4’b1111;
    assign LED=led_r;
endmodule
保存为led.v文件,注意,此处文件名必须为led.v。第一次接触FPGA人的可能对上面的代码不能完全理解,不过没关系,完成几个实验后,自然就理解了。上面代码中CLK为时钟输入,在FPGA礼物开发板中,与EP3C5 PIN_22对应。LED为LED输出,与PIN_34,PIN_38,PIN_39,PIN_42对应。通过上面的代码,几个简单的赋值语句,就可以点亮A3 mini开发板上四个LED.
文件保存后,首先编译以下,看有没有错误。方法是点击工具条上的紫色三角形标签

<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642931RZRWY8.JPG
接下来需要进行引脚分配,点击下图中标签。
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642932K375GS.JPG
按下图分配引脚
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642933VFA5CV.JPG
重新编译一次。接下来就可以将程序下载到开发板中运行了,点击下图中的标签,
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642934BX8S87.JPG
确保开发板和Usb blaster下载线连接正确,点击Start,开发板上四个LED应该就被点亮了。
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642935IFROCL.JPG
实现点亮LED,下面来实现经典的LED跑马灯程序,你可以先将上面的代码注释掉,方法与C语言相同,单行用 //, 多行用/**/,将下面的代码输入。
module led (input CLK, output LED);
    reg led_r;
    reg cnt;//26为计数器
   
    always @(posedge CLK)
      begin
            cnt<=cnt+1'b1;
            if(cnt==26'd50000000)//修改此值,可以改变跑马灯的频率
                begin
                  led_r=led_r<<1;
                  if(led_r==4'b0000)
                        led_r<=4'b0001;
                                                  cnt<=0;
                end
      end
    assign LED=led_r;
endmodule

上面的代码与第一个代码主要的不同,就是增加了一个计数器和移位运算,我们的FPGA礼物开发板上使用的晶振是50M, 在语句if(cnt==26'd50000000)中,此时跑马灯的频率就是1秒,显得有些慢,可以改为26’d10000000。频率0.2秒。移位运算是将一个四位二进制数(其中三位为零,一位为一)中的一不断的循环左移,这样就实现了跑马灯效果。
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642936NT0DQT.JPG
<center>http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_642937VIH3BQ.jpg


下载PDF文件保存   点击此处下载 ourdev_642938ASZU3T.pdf(文件大小:785K) (原文件名:1.pdf)

yuphone 发表于 2011-5-26 00:01:40

回复【楼主位】giftFPGA
-----------------------------------------------------------------------

兄弟不容易呀。我现在都不做开发板了,改做FAE了。你还在坚持,努力呀。

andriy 发表于 2011-5-26 00:05:31

坚持出系列教程的话 还是很多人关注的

sweetgirl 发表于 2011-5-26 04:39:28

mark

wangxiaoacc 发表于 2011-5-26 22:05:55

做的挺好。如果有系列教程的话,我也买个开发板

zjy9430 发表于 2011-5-27 08:29:54

有兴趣,观望中!

ajiantc 发表于 2011-5-27 09:18:47

回复【楼主位】giftFPGA
-----------------------------------------------------------------------

关注。。。

solojimes 发表于 2011-5-27 10:13:40

FPGA黑金动力学习板,资源很多,资料齐全。由浅入深,而且专门为初学者编写了(NIOSII那些事儿)和(verilogHDC那些事儿)的教程。每部都长达300页。它将是你的不二之选。http://shop65335156.taobao.com。

SHE6253 发表于 2011-5-27 15:37:45

关注。。。 有兴趣要一个开发板

skyfyy 发表于 2011-6-15 00:17:05

呵呵,我已经买到了!正在学习中

guochang02 发表于 2012-2-2 11:58:33

学习中 谢谢
页: [1]
查看完整版本: 【FPGA入门图文教程之一】|基于Cyclone III和Quartus II 10.0SP1