原创 【博客大赛】零基础到看懂verilog程序以及调试成功(一步一个脚印)

2014-8-4 21:04 5685 8 23 分类: MCU/ 嵌入式
说来很失败,以前没有特意的去学过FPGA。呆滞后来有许许多多的应用与自己擦肩而过。觉得甚是遗憾,这一生我们听了太多的道理,却始终过不好这一世。
    
     期初自己是做模拟的,对MCU之类的编程比较有兴趣,却忽略了FPGA之类。以前总想着找个时间去学习VHDL。当时记得看了一个星期书。果断就放弃了。觉得那个太肯跌了。和之前学过的c还是有却别的。但是还是几年前。那个时候VERILOG的书比较少。夏宇闻估计那个时候我也不怎么认识他。知道这几日。发现自己掌握的东西太少。相当有必要来吧verilog搞懂。好在手上有一黑金的板子。今天做的工作很近单。但这仅仅是个开始。来点亮了一个流水灯。并在基础上修改来修改去了好几回。觉得有必要记录下来。
   
    不废话了。正文:相信大家都觉得quartus比ISE好用吧。安装**过程什么的就不具体说明了。这个如果有必要的话可以传一篇文档上来。


    先建立工程。每个软件的必要!

    打开软件。file->new project rezard之后弹出界面。点击NEXT。出现下图
20140804201543220.jpg

第一个是保存的文件夹名称
第二是新建的文件名。第三和第二个会自动填写上去的。然后提示是否创建。点击是。
点击next     然后再在next!填出如下界面。这里是设置选用的芯片。由于自己的黑金石该芯片。所以选择cyclone  II.
20140804201825443.jpg

然后一直点击next直到finish。

然后点击新建  填出一个对话框。选择verilog HDL file   点击OK。

保存之后然后进行编程。

这里我的程序是让流水灯循环点亮。然后在重复,如此生生不息。


这里是自己的代码。

这里后面每句都解释了。只要你稍微花点时间。绝对能看懂,楼主自己也是新手。对于verilog真的以前不怎么懂的。但是楼主相信。只要花了时间。自己笨就笨点。大方向对了。还怕不会成功吗。

另外这里的脚包括了时钟,复位脚还有8个LED。之后还需要管脚配置!!这个是必须的。要不没有时钟。或者时钟的脚不对应。如何出来效果呢???

module led_12345678(clk,rst,led); //定义时钟。复位脚以及输出led8位的
input clk;//时钟输入
input rst;//复位脚
output [7:0] led; // 8bits led  输出的格式是这样的
reg [7:0] led;   //定义reg型led.
reg [25:0] count;//定义count是26位的
always @ (posedge clk )   //这里的意思是只有时钟上升沿来了就//一//直执行下面的begin-end之间的内容!!
begin
if((!rst) || count[22]==1) //如果复位//了//或者count[22]==1
begin
count<=26'b0;//count 26位全部赋值0
end
else
count<=count+1; //否则count就只加1,没来一个上升沿就加1.其实这里就是时间的问题。总会到count[22]=1的。如果等于了那就置0.而只有这个值等于1了。下面的流水灯才会左移加1.这就是需要满足下面左移加以的条件。
end
always @ (posedge clk) //这个同样的道理。只要来上升沿就执行,注意。这里的always和上面那个always是并行的!!
begin
if((!rst))//检测如果复位键来了
led<=8'b0000_0000;//led全部熄灭
else //否则
begin
if(count[22]==1) //如果,,,
begin
if (led==8'b1111_1111)//如果全部都是1了。就是都亮了
 led<=8'b0;//那就全部置0
 else//前往注意这里if lese的关系。这里有好几个if  else
led<=((led<<1)+1);//led左移并且加1,这里就很好的解释了流水的过程。左移+1.如果全是1了,那就全部置0.这就是流水的过程。
end
end
end
endmodule
到了这里然后就完了。点击processing->start compilation 编程成功后配置管脚。

点击assignment ->pins弹出对话框,吧下面的脚脱进去就行。这里因为我的时钟是28脚。所以就直接拖进去28脚就好了。其他的LED对照板子原理图直接拖进去。还有复位端也是如此。

20140804204214235.jpg

接下来点击Tools -》programmer弹出对话框。
20140804204632249.jpg

点击上面的mode会弹出4个选项。可以选择JTAG。但是这里我需要掉电也能运行程序。所以选择AS模式。然后点击左上角的hardware setup.填出界面。USB驱动检查下已经有了
这里,如果你的没有发现驱动。那就插上你的USB Blaster.可以让他自动安装驱动程序。或者手动安装。驱动在安装软件的driver文件下。

20140804204920455.jpg


然后点击关闭。再打开左边的ADD file 文件。加载.pof文件然后在program configure打钩就行。20140804205257204.jpg

20140804205543992.jpg

然后点击左侧一栏的start就可以了。等待一会上面会出现蓝色的100%就代表成功了。借来下一定要先拔掉开关。在拔下下载器。不然会对板子有损坏的。这是习惯。话说优秀也是一种习惯。优秀的工程师就是平时会注重这些。所以成功!!切记。

然后在吧电源插上。这是就可以看到流水灯的运转了。

20140804205840138.jpg

20140804205919473.jpg


PS:到这里可能用过quartus的可能觉得没有什么。但是作为新学者。这也算中成功吧。后面楼主会一直坚持吧黑金玩下去。这也代表这一种态度。之所以选择这个时候才来学FPGA。本身前面由于自己懒。觉得不想学。所以没有动力。最近因为项目的需要。需要一个信号源。去调制另外一个大功率信号。考虑到DDS本身的芯片可能会有缺陷。所以考虑到了FPGA的功能。刚好也可以借助它提升自己。后面楼主会继续深造,更新。

    

PARTNER CONTENT

文章评论15条评论)

登录后参与讨论

用户292843 2014-10-17 17:40

呵呵,写得不错,就是没时间看完,哈哈! 风之子 楼主,请联系我 QQ:21856514 有事讨论,谢谢!

用户1779878 2014-9-20 17:29

流水灯还是挺简单的, 没必要注释那么多。

风来 2014-9-1 18:08

生活不就是很多很不起眼的小事构成的吗。只要你肯描述

用户377235 2014-8-29 21:35

fpga其实蛮强大的

用户377235 2014-8-29 21:27

一个灯在这里能写这么多挺不容易的

风来 2014-8-27 11:12

明白你的意思。就是重要信息那里最好画红线编辑图片在上传。下次注意,感谢建议

ydcman_691947663 2014-8-26 15:38

不是的,是你每个操作步骤,有条理些最好了

风来 2014-8-24 21:12

以前也用的ISE感觉不是特好使用。后来用的QUARTUS,看个人爱好吧。

风来 2014-8-24 21:11

是程序部分吗?程序部分因为EDn编辑的格式好像是这样的。输进去跳入下一行所以如果直接粘贴可能需要把汉字放到斜杠的后面就好。

用户180107 2014-8-24 20:36

Quartus 只是好上手, ISE才是王道
相关推荐阅读
风来 2015-10-31 20:40
【博客大赛】基于AD转换模块的单片机仿真和C语言开发设计
    大学做过的一小设计,那会没事就弄这些AD\DA\MCU以及功能性的IC.    后来一老师要求做的这个,设计一多路数据采集系统,当时资料大多都是0809,0832之类的ADDA,网上找了部分资...
风来 2015-10-19 22:57
【创客】一路走来的科研之路-----致我的学生年代
      曾几何时,也不知到当初自己默默的走向了硬件嵌入式的道路,或者当初的兴趣只在那么一瞬间,而以后的路却很长。 记得是刚上大一那会,隔壁班的班长到处来宿舍宣传,参加机器人了参加机器人了,...
风来 2015-10-18 11:34
电流型运放资料
       以前对于电流型放大器和电压型放大器很疑惑。看了好多放大器的书,慢慢的了解了部分。下面文档分享出来。以供大家参考吧。电流反馈型运放直流特性不好,适合放大高频的交流信号;带宽不因频率增加...
风来 2015-09-29 08:50
【博客大赛】忆往昔做过小玩具之---摇摇棒
        每个相关专业的人事想必都从最小的系统出发,朝着处理器方面向ARM和DSP看起。但当初做过的那些小玩具,那些奠定了为自己再后面的技术路上走的一些小产品,当我们回过头时,做着那些与当初...
风来 2015-09-23 22:44
【创客】和智能家居无线系统的那些事
       智能家居这个项目的灵感和缘分因为好有一次几年了,自己都忘了,我的印象中只记得那会在西安,去和老同学见面,但是因为手上有这个智能家居的开关无线系统项目,所以在去西安的路上都是带着这板子...
风来 2015-09-22 21:45
【博客大赛】如何测量灵敏度指标
        谈到灵敏度这个指标大家都不陌生,在硬件系统里面很多东西涉及到灵敏度。   狭义的说灵敏度指的是能够接收一个信号的最低值。单位一般为UV或者DBUV. 分为有线和无线的,...
EE直播间
更多
我要评论
15
8
关闭 站长推荐上一条 /3 下一条