一步一步开始FPGA逻辑设计-快速上手篇
来源:互联网 发布:mac系统怎么看电脑空间 编辑:程序博客网 时间:2024/06/16 22:46
也许是我不会用吧,CSDN的Markdown太难用了,写起来太难看了,这是最后一篇用Markdown写
根据我的学习习惯呢,总要先简单的搞个好玩的HelloWorld之流简单项目,先体验一把,有个整体的感性认识,然后开始系统学习。
其实吧,我实在是想不起来我当初上手玩的是样的小练手了,但是我觉得流水灯应该是做过了,从51单片机,到430,到STM32,到ARM,到FPGA,我想流水灯应该是可以作为硬件界的HelloWorld吧。
那我们就开始流水灯吧!
当然我们做的流水灯不会这么高级的,可以说是一个简单的序列生成器,生成如下序列
反应在波形上就应该是这样的,上升沿我们作为时钟的有效沿,每次上升沿到来的时候波形变化。理想情况如下图,这幅图就是功能仿真时序图。
注意LEDs这一行(最后一行),序列是按照我们预想的方式变化,那么下面我们看这样子功能该如何描述成电路
注意:这里我使用【描述】,不适用【编程】,算是逻辑设计人员的小洁癖吧,我不喜欢称之为编程,虽然也没什么问题。后面再解释为什么要使用描述这个词吧
代码
module top( // 定义一个名称为top的模块 input clk, // 定义一个输入端口,用来输入时钟 input rst, // 定义一个输入端口,用来输入复位 output reg [7:0]led // 定义一组输出总线,用来输出LED灯的序列,0:灭,1:亮 ); // 下面这个叫做 always块,描述了一组逻辑 always@(posedge clk)begin if(rst) led <= 8'b0000_0001; // 复位情况下输出 else led <= {led[6:0],led[7]}; // 循环向左移位 end endmodule // 所有代码必须组成一个module,用module/endmodule包含
就这么简单!
就这么简单!
就这么简单!
电路
既然使用了【描述】,那么我们看一下这段代码出来的电路时什么样的。你可以将之理解为编译的结果,只是在逻辑里头,我们称之为综合Synthesis,综合的结果成为网表netlist
关于【描述】这个词:这段代码就是用一种HDL(硬件描述语言)的规则来描述了这堆电路,所以我们称之为描述。
0 0
- 一步一步开始FPGA逻辑设计-快速上手篇
- 一步一步开始FPGA逻辑设计
- 一步一步开始FPGA逻辑设计 - 工具使用和项目管理篇
- 一步一步开始FPGA逻辑设计-写作计划
- 一步一步开始FPGA逻辑设计-学习资料篇
- 一步一步开始FPGA逻辑设计 - 高速接口之PCIe
- 关于FPGA逻辑设计的21个小贴士
- FPGA - DE0上手准备工作
- MongoDB快速上手PHP篇
- MongoDB快速上手PHP篇
- 在Tomcat中快速上手 - 开始Hibernate入门之旅
- 快速上手
- JavaScript快速上手——基础篇
- Fragment篇——快速上手Fragment
- 快速排序——一步一步算法篇
- 开始Hibernate之旅 第 1 章 在Tomcat中快速上手
- 开始Hibernate之旅 第 1 章 在Tomcat中快速上手
- 学习SpringMVC——从HelloWorld开始,简单快速上手springmvc
- Servlet处理HTTP响应
- MySQL基础
- 自定义ActionBar标题与菜单中的文字样式
- 【Android】原生DBUtils工具类
- C语言函数返回值的相关问题
- 一步一步开始FPGA逻辑设计-快速上手篇
- ios 日志文件
- hadoop中ssh免密码登录设置不成功
- .net面试题
- Java中10内0奇数的和
- 为什么`forward_list`不支持`push_back`操作?
- MySQL连接数据库命令
- PIC16F1933点亮LCD1602(汇编)
- python 中 替换json不认识的格式