FPGA 物理时序不合理的体现(体现方式:数字钟的行扫描和列扫描)
本人在这只讨论建模好的模块来比较解释现象,如有不周到请大家指正。
软件功能仿真和在硬件上的区别:可以从这个数码管的行扫描和列扫描实例来体会一下,物理时序的影响和改进方法。
数码管的行扫描、列扫描要求同步。即当列扫描扫到一个数码管时、对应该数码管的数字显示必须准备好赋值,依次循环下去。否则显示出现重叠,混乱。
一开始如下建模(行扫描和列扫描都是延时10ms,每隔10ms十位和各位交替工作,同时数码管的段选码给个位和十位赋值)功能仿真:结论很明显,逻辑上是可用的。因为只有两个数码管(十位(10)各位(01))显然十位应该显示一个不变的数字,但是下载到板子上并不是,而是显示混乱重叠,两个管子同时显示一个数字,个位和十位数字一样。这个现象出现的原因是,行列扫描必须是严格同步的,功能仿真没有考虑硬件的物理时序的误差。所以软件仿真是可用的。而在板子上是不可以的。


解决方法:把这两个模块的内部联系在一起即可。例如
方法1.把他们内部建成一个相互联系的模块。这样他们的延时,扫描数据同时在目标位同步有效。
row_scan U1
(
.i_clk( i_clk ),
.i_rst( i_rst ),
.i_ten_smg_data( i_ten_smg_data ), // input - from top
.i_one_smg_data( i_one_smg_data ), // input - from top
.o_row_scandata( o_row_scandata ) // output - to top
);
column_scan U2
(
.i_clk( i_clk ),
.i_rst( i_rst ),
.o_column_scan_sig( o_column_scan_sig ) // output - to top
);
顶层文件如下所示;(问题就解决了)数码管就不会乱码

方法2 行列扫描写在一个**.v的文件了。做到同步。和以上的方式异曲同工。
这个实例体会,物理时序和理想时序非常到位。
工匠小建--原创--转载请注明出处--长风破浪会有时,直挂云帆济沧海。
FPGA 物理时序不合理的体现(体现方式:数字钟的行扫描和列扫描)的更多相关文章
- FPGA VGA时序的理解
最近在做FPGA毕业设计,毕业设计规划的是摄像头采集图像,经过均值滤波,中值滤波,高斯滤波,然后通过VGA接口控制显示器显示出来,所以最近学习了一下FPGA的VGA驱动的相关内容. VGA接口 如上图 ...
- 每天进步一点点------FPGA 静态时序分析模型——reg2reg
2. 应用背景 静态时序分析简称STA,它是一种穷尽的分析方法,它按照同步电路设计的要求,根据电路网表的拓扑结构,计算并检查电路中每一个DFF(触发器)的建立和保持时间以及其他基于路径的时延要求是否满 ...
- 基于FPGA视频时序生成中的库文件
上一篇分享了一个视频时序生成代码,下面我根据之前项目中用到的时序,对各个参数做了库文件,方便调用. -- -- Package File Template -- -- Purpose: This pa ...
- 使用Megacli64对服务器物理磁盘做Raid并通过uuid方式挂载
需求说明:公司最近来了一批服务器,用于大数据业务部署.数据节点服务器由14块物理磁盘,其中有2块是900G的盘,12块是4T的盘.在服务器系统安装时,进入系统的BIOS界面:1)将2块900G的磁盘做 ...
- Verilog HDL那些事_建模篇笔记(实验九:VGA驱动)
1.了解VGA协议 VGA协议有5个输入信号,列同步信号(HSYNC Signal),行同步信号(VSYNC Signal),红-绿-蓝,颜色信号(RGB Signal). 一帧屏幕的显示是由行从上至 ...
- FPGA开发流程1(详述每一环节的物理含义和实现目标)
要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...
- FPGA时序约束——理论篇
在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布 ...
- FPGA基础学习(4) -- 时序约束(理论篇)
在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布 ...
- 【转载】FPGA静态时序分析——IO口时序
转自:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟约束 ...
随机推荐
- java中的过滤器 --Filter
package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.Filter ...
- spring boot + mybatis + layui + shiro后台权限管理系统
后台管理系统 版本更新 后续版本更新内容 链接入口: springboot + shiro之登录人数限制.登录判断重定向.session时间设置:https://blog.51cto.com/wyai ...
- lr_save_string和sprintf、lr_eval_string的使用
一.lr_save_string函数 1.该函数主要是将程序中的常量或变量保存为参数: //将常量保存为参数 lr_save_string("777","page&quo ...
- html上传文件
不太懂Html 做备用 html的文件上传分两个 第一个是Html文件 浏览器加载用的 另一个是PHP文件 处理上传文件的 下面是Html文件 叫index.html <html> < ...
- Python的复制,浅拷贝和深拷贝
https://www.cnblogs.com/xueli/p/4952063.html 如果给一个变量赋值一个对象,那么新变量和原对象变量将会是同一个引用,其中一方改变,另一方也会改变. 该问题可以 ...
- lazarus 给应用程序创建 配置文件哈哈
lazarus 给应用程序创建 配置文件哈哈procedure TForm1.Button2Click(Sender: TObject);beginForceDirectoriesUTF8(GetAp ...
- Servlet 三种创建方式
servlet 是运行在 Web 服务器(tomcat)中的小型 Java 程序(即:服务器端的小应用程序) (其实就是一个java类,只不过不用再new了).servlet 通常通过 HTTP(超文 ...
- tensorflow学习之tf.placeholder
placeholder函数相当于一个占位符,tf.placeholder(dtype, shape=None, name=None) dtype:数据类型.常用的是tf.float32,tf.floa ...
- 【Linux开发】OpenCV在ARM上的移植
与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方法很麻烦,不仔细操作很容易出错 ...
- angular5 给元素添加自定义属性
今天尝试给一个a 标签添加一个自定义属性,用于存放相关数据,但是angular templates 编译不通过. <a href="javascript:void(0);" ...