跟着我从零开始入门FPGA(一周入门系列)第五
5、同步和异步设计
前面已有铺垫,同步就是与时钟同步。 我们举个例子,SPI接口,他是一个低成本的单端的高速串行数据传输协议。 下面是一个Slave SPI的接口部分,简化了, model mySPI(input nCS, input SCK, input MOSI, output MISO); reg[7:0] data_wt; always @(posdge SCK) 这段代码是同步的还是异步的? 大致一看,丫的还配时钟呢,按钟点走步,八成是同步的。 实际情况如何呢? 比如某ARM core的MCU内置SPI模块,为了简化问题,我们只谈Slave的情况,问题就来了。 当你发愁的时候,你该庆幸自己遇到了几乎所有入门的人都必须解决的问题----多时钟系统。 多时钟,各自都是同步,放在一起就是异步。 model mySPI(input clk, input nCS, input SCK, input MOSI, output MISO); always @(clk) clk是自家的全局CLK信号,对方的SCK信号,只在自家CLK触发才看一眼对方的各个信号,包括SCK信号。 当然,这个处理方法是有前提的,就是clk的频率要远远高于SCK信号。 前面有朋友谈到了复位信号的同步化处理,最简单的就是复位和释放都同步处理,我前面几个帖子有用到。 所以,我们称之为,异步复位,同步释放。 再举个例子,Memory的访问,为了简化,我们做个ROM,这样只有读的一种情况,适合理解记忆 model memory8(input clk, input[7:0] addr, output[7:0] dat) assign dat = outbuf; 简单的是异步的,只要地址变化了,输出立马就表现。 复杂的就是同步的了,我不管你地址变了没,在CLK上升沿到来之前,我懒的理你。 一般实际用的时候,异步SRAM肯定比同步的好用,同步的老要CLK,你是IO口模拟呢,还是怎么输出呢? 该往回说了,为何同步电路可以提高更高的速度呢? 异步,就是赛跑,速度以跑得慢的人为准,团队精神嘛,这不能平均,只能搞木桶原理。 这样负责协调的那个人,就是喊一二一的那个人(clk),可以把握全局的节奏来达到速度最大化。 所以一般FPGA里面都有全局时钟,强大的扇出能力,最小的传输延迟,因为他是老大,好资源他先挑的。 异步,2个队伍,各自有自家的老大,比如一个是地址线,一个是数据先,某个时刻,主控一抓。 作为设计而言,应尽量避免竞争冒险。 Asynchronous 和 Synchronous 这两个单词我老是分不清 明天要讲的有限状态机,是以同步设计为基础的设计方式 |
跟着我从零开始入门FPGA(一周入门系列)第五相关推荐
- 真正从零开始,TensorFlow详细安装入门图文教程!(linux)
读懂智能&未来 首页 专栏 专题 公开课 AI慕课学院 爱搞机 极客购 申请专栏作者 业界人工智能智能驾驶AI+Fintech未来医疗网络安全AR/VR机器人开发者智能硬件物联网GAIR 业界 ...
- TensorFlow 真正从零开始,TensorFlow详细安装入门图文教程
https://www.leiphone.com/news/201606/ORlQ7uK3TIW8xVGF.html 读懂智能&未来 首页 专栏 专题 公开课 AI慕课学院 爱搞机 极客购 申 ...
- 【PaddlePaddle学习笔记】从零开始学习图像分类01——图像处理入门基础
本系列文章链接 [PaddlePaddle学习笔记]从零开始学习图像分类01--图像处理入门基础 未完待续...... 目录 一.关于图像的几个基本概念 1. 像素及其坐标 2. 图像的四种基本类型 ...
- FPGA极易入门教程----汇总篇(直达链接)
为什么要写这个系列? 根据费曼学习法,最好的学习方法就是教会一个外行人(初学者).知识分享,独乐乐不如众乐乐.现在FPGA市场巨大,人才缺口很大.我本着能拉一个上贼船就拉一个上贼船的想法来写这个系列文 ...
- boot spring test 文档_SpringBoot入门建站全系列(五)使用Spring-data-jpa操作数据库
SpringBoot入门建站全系列(五)使用Spring-data-jpa操作数据库 SpringBoot操作数据库有多种方式,如 JDBC直接操作:太古老了,没人愿意这样玩 Mybatis插件:比较 ...
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...
- 【原创】OllyDBG 入门系列(五)-消息断点及 RUN 跟踪
标 题: [原创]OllyDBG 入门系列(五)-消息断点及 RUN 跟踪 作 者: CCDebuger 时 间: 2006-02-19,16:02:46 链 接: http://bbs.pediy. ...
- (224)FPGA数字信号处理入门指导
(224)FPGA数字信号处理入门指导 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA数字信号处理入门指导 5)技术交流 6)参考资料 2 FPGA入门与提 ...
- 柿饼UI入门课程第一周作业
入门课程第一周 基础 如何看帮助文档 API帮助 控件帮助 设计器使用帮助及反馈 举个例子 附加 目标 架构 范进中举 相册 其他 基础 只需要按照视频里面就可以做到90%.但是,dotIndicat ...
- RT-thread 柿饼UI demo(文本浏览+电子相册) ---- 暨柿饼入门课第一周作业附加题
一.题目要求 完成下图的应用制作,范进中举复制群文件内的范进中举.txt内的内容. 二.实现过程 2.1.整体思路 整体的框架是在一个page中放入三个button控件(负责控制三个显示界面的切换)和 ...
最新文章
- IoC容器和Dependency Injection模式
- uniapp 自定义进度条_如何解决uniapp小程序下载进度条问题
- 大数据平台CDH搭建
- 为什么TypedReference在幕后
- 看电影的计算机配置,专门看电影的电脑主机需要什么配置?
- IBM行贿案凸显外企在华的非正常之道
- android 仿qq it蓝豹,十大Android开源项目-IT蓝豹
- 音乐播放微信小程序基于node.js后台
- 【Unity3D插件】FancyScrollView插件分享《通用UI滑动列表》
- 软件测试项目案例.pdf,最经典软件测试案例.pdf
- Python制作自己的软件安装包程序
- SPA项目开发 之 登录注册
- linux归档和压缩的区别,文件的归档和压缩
- DP问题(动态规划)
- 【Leetcode】5 longestPalindrome python解法
- c#使用PortableDeviceApiLib读取便携式设备(WPD:Windows Portable Devices)信息
- 【20天快速掌握Python】day10-面向对象基础
- 在微信小程序中如何引入iconfont
- 无线应用安全剖析-sanr
- 串口示波器 serial_port_plotter 二次开发环境搭建(含 QT搭建)