说来很失败,以前没有特意的去学过FPGA。呆滞后来有许许多多的应用与自己擦肩而过。觉得甚是遗憾,这一生我们听了太多的道理,却始终过不好这一世。期初自己是做模拟的,对MCU之类的编程比较有兴趣,却忽略了FPGA之类。以前总想着找个时间去学习VHDL。当时记得看了一个星期书。果断就放弃了。觉得那个太肯跌了。和之前学过的c还是有却别的。但是还是几年前。那个时候VERILOG的书比较少。夏宇闻估计那个时候我也不怎么认识他。知道这几日。发现自己掌握的东西太少。相当有必要来吧verilog搞懂。好在手上有一黑金的板子。今天做的工作很近单。但这仅仅是个开始。来点亮了一个流水灯。并在基础上修改来修改去了好几回。觉得有必要记录下来。不废话了。正文:相信大家都觉得quartus比ISE好用吧。安装过程什么的就不具体说明了。这个如果有必要的话可以传一篇文档上来。先建立工程。每个软件的必要。
打开软件。file->new project rezard之后弹出界面。点击NEXT。出现下图第一个是保存的文件夹名称第二是新建的文件名。第三和第二个会自动填写上去的。然后提示是否创建。点击是。点击next 然后再在next。
填出如下界面。这里是设置选用的芯片。由于自己的黑金石该芯片。所以选择cyclone II.然后一直点击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之间的内容。
。
beginif((!rst) || count[22]==1) //如果复位//了//或者count[22]==1 begincount<=26'b0;//count 26位全部赋值0 endelsecount<=count+1; //否则count就只加1,没来一个上升沿就加1.其实这里就是时间的问题。总会到count[22]=1的。如果等于了那就置0.而只有这个值等于1了。下面的流水灯才会左移加1.这就是需要满足下面左移加以的条件。endalways @ (posedge clk) //这个同样的道理。只要来上升沿就执行,注意。这里的always和上面那个always是并行的。
。
beginif((!rst))//检测如果复位键来了led<=8'b0000_0000;//led全部熄灭else //否则beginif(count[22]==1) //如果,,,beginif (led==8'b1111_1111)//如果全部都是1了。就是都亮了 led<=8'b0;//那就全部置0 else//前往注意这里if lese的关系。这里有好几个if elseled<=((led<<1)+1);//led左移并且加1,这里就很好的解释了流水的过程。左移+1.如果全是1了,那就全部置0.这就是流水的过程。endendendendmodule到了这里然后就完了。点击processing->start compilation 编程成功后配置管脚。点击assignment ->pins弹出对话框,吧下面的脚脱进去就行。这里因为我的时钟是28脚。所以就直接拖进去28脚就好了。其他的LED对照板子原理图直接拖进去。还有复位端也是如此。接下来点击Tools -》programmer弹出对话框。点击上面的mode会弹出4个选项。可以选择JTAG。但是这里我需要掉电也能运行程序。所以选择AS模式。然后点击左上角的hardware setup.填出界面。USB驱动检查下已经有了这里,如果你的没有发现驱动。那就插上你的USB Blaster.可以让他自动安装驱动程序。或者手动安装。驱动在安装软件的driver文件下。然后点击关闭。再打开左边的ADD file 文件。加载.pof文件然后在program configure打钩就行。然后点击左侧一栏的start就可以了。等待一会上面会出现蓝色的100%就代表成功了。借来下一定要先拔掉开关。在拔下下载器。不然会对板子有损坏的。这是习惯。话说优秀也是一种习惯。优秀的工程师就是平时会注重这些。所以成功。
。
切记。然后在吧电源插上。这是就可以看到流水灯的运转了。PS:到这里可能用过quartus的可能觉得没有什么。但是作为新学者。这也算中成功吧。后面楼主会一直坚持吧黑金玩下去。这也代表这一种态度。之所以选择这个时候才来学FPGA。本身前面由于自己懒。觉得不想学。所以没有动力。最近因为项目的需要。需要一个信号源。去调制另外一个大功率信号。考虑到DDS本身的芯片可能会有缺陷。所以考虑到了FPGA的功能。刚好也可以借助它提升自己。后面楼主会继续深造,更新。
0 评论