FPGA小白学习日记-基于赛灵思XC7A35T
一、实验目标:设计一个以1s频率闪烁的LED灯(亮灭各500ms)
二、实验用开发板:xilinx大学计划EGO1开发板,板载100Mhz时钟
三、实现思路:板载100Mhz,可知时钟周期为10ns。要想实现亮灭各500ms,可设计一个计数器,可通过计数clk脉冲周期个数来达到计时目的。因此可以算出需要连续计数500ms/10ns=50000000个时钟周期。并使用基本D触发器实现LED亮灭状态的存储。
四、实现过程中的问题:
1、从下图中可以看到高电平持续时间不是500ms整,而是500.000010000ms。
由于上述数字太大,下面以模为4的计数器为例,计数应该是0-1、1-2、2-3、3-4,但是实际还多了一个4-0,实际计数到了因此需要N-1,在本文中计数最大值就是50000000-1=49999999.
2、复位信号在代码不同位置的综合问题,如下图,先放正确的
module led_flash(input clk,input rst,output reg led);
reg [26:0]cnt;
always@(posedge clk or posedge rst)beginif(rst)begin //复位信号单独列写cnt <= 0;endelse if(cnt == 50000000)begin cnt <= 0;endelsecnt <= cnt+1'b1;
end
always@(posedge clk or posedge rst)beginif(rst)beginled <= 0;endelse if(cnt == 50000000)beginled <= ~led;end
end
endmodule
综合出的RTL,可以看到复位信号连接到了计数器和D触发器。
下面再放上错误的代码
module led_flash(input clk,input rst,output reg led);
reg [26:0]cnt;
always@(posedge clk or posedge rst)beginif(cnt == 50000000 || rst)begin //这里又用软件的思维去写硬件了,想着反正都是计数器清零 cnt <= 0; //为了代码精简点,放一起算了。end elsecnt <= cnt+1'b1;
end
always@(posedge clk or posedge rst)beginif(rst)beginled <= 0;endelse if(cnt == 50000000)beginled <= ~led;end
end
endmodule
可以看到复位信号连接到一个mux上了,并没有连接到计数器。
调试看来不能只盯着代码看,还要多看看综合后的RTL啊。
说了半天,上面提到的都是异步复位,同步复位的,以后碰到了在写文章吧,今天就到这里。
FPGA小白学习日记-基于赛灵思XC7A35T相关推荐
- 激光slam学习日记——基于滤波器的激光SLAM方法
激光slam学习日记--基于滤波器的 基于滤波的方法不适合大型场景,因为误差慢慢累积,没办法修复. 贝叶斯与频率学派相对应,贝叶斯估计概率,频率估计数值 粒子滤波:贝叶斯中的一个特例 一.贝叶斯估计 ...
- 生信小白学习日记Day2-2——NGS基础 NGS分析
2019年5月26日下午,无意中看到hanli0902的关于NGS分析的博文https://blog.csdn.net/hanli1992/article/details/82790386有很多需要学 ...
- 生信小白学习日记Day3——NGS基础 NGS分析注解(质量分析软件)
2019年5月27日,天气舒适,忙碌一天之后开始今天的生信学习.今天就昨天Day2-2的一些标记加以查询说明,仅供参考. NGS基础 NGS分析注解 1. 质量分析软件 昨天提到,拿到数据后可以通过一 ...
- 生信小白学习日记Day7——WGS分析流程(picard)
2019年6月2日,周日,天气晴,pass 上午.开始学习NGS分析,继BWA比对和SAM文件排序转BAM后的流程. NGS分析 step5 Mark Duplications 参考这篇:GATK使用 ...
- 小白学习日记4_Python爬虫(requests/get)方式_2020年5月24日
有好几天都没有更新了,但是也不代表博主没有在学习,只是因为去学习了更难的东西(只是博主个人认为哈),其实学下来发现也很简单,不理解就难,理解则易. 那么这几天我到底干嘛去了呢?前两天吧去顺着廖神的教程 ...
- 生信小白学习日记Day2——NGS基础 illumina高通量测序原理
2019年5月26日,周日,小雨 说明:阅读生信宝典和查阅文章的总结,原文请关注公众号生信宝典,参考的博文都附有链接,仅供参考. 生信宝典 NGS基础--高通量测序原理 本文介绍了测序文库构建原理.链 ...
- FPGA小白学习之路(2)error:buffers of the same direction cannot be placed in series
锁相环PLL默认输入前端有个IBUFG单元,在输出端有个BUFG单元,而两个BUFG(IBUFG)不能相连,所以会报这样的错: ERROR:NgdBuild:770 - IBUFG 'u_pll0/c ...
- DSP入门小白学习日记第三篇
信号采集 首先我们要知道dsp芯片是用来处理信号数据的,那这个信号源怎么来呢?一般是通过传感器外设采集连接高速接口啥的(等以后买了再说吧),但是目前学习的时候只有一块开发板,所以只能自己模拟数据了,呜 ...
- 生信小白学习日记Day4Day5——NGS基础 NGS分析注释(BWA软件)
2019年5月30日,晚上,心情变好,好几天没更新了,看到男朋友在学一款软件,我也近朱者赤,来继续注释Day2-2中NGS分析流程中的一个重要软件--BWA NGS基础 NGS分析注释 BWA 对应于 ...
最新文章
- elasticsearch的备份和恢复(转)
- OpenCV入门要掌握的基本函数
- 英国EE:启动TechCity 2.0 首期将部署LTE-Advanced Pro
- Remoting系列(二)----建立第一个入门程序
- 位运算 c语言 头文件 linux,1. 位运算_C语言_C语言入门-Linux C编程一站式学习...
- link引入html5,CSS引入方式 | link和@import的区别 — 生僻的前端考点
- Flink官网自学笔记
- Windows phone应用开发[15]-辅助工具
- LNMP环境SVN钩子脚本的使用
- Git 分支及bug分支合并
- tf.data.Dataset.zip()讲解 和 python自带的zip()的异同
- Smart3D倾斜摄影测量数据处理
- [机器学习导论]——第一课 机器学习概述
- CMSIS应用于研究指南图文教程
- 蛋白质结构预测---残基接触的基础知识(二)
- [DeFRCN] Decouple Faster R-CNN for Few-Shot Object Detection(ICCV 2021)
- 睁开双眼玩立体游戏!3D显示技术解析
- android和手环教程,智能手环怎么连接手机_智能手环连接手机教程
- 特征值和奇异值的关系
- JS-函数进阶笔记二次总结
热门文章
- VxWorks入门06:虚拟机中运行
- 利用百度EasyData智能标注并下载方法
- 盘点我这两年的成与败
- 2008年 斯坦福大学的计算机科学家,2008年,斯坦福大学的计算机科学家设计出了第一个专家系统:1982年,加州理工学院物理学家提出了新_快考试...
- Revit(8)-数据结构-类别、族概念
- Vue2的router-view中子组件与父组件传值
- WAS 服务器负载测试软件使用说明
- Apollo_ADS_路径规划2- 路径优化 --SL 轨迹 Optimizer
- PHP fuser,ubuntu 12.04 - fuser 高cpu
- SpringBoot/Mybatis/Druid, 多数据源MultiDataSource配置思路