- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA_IIC 时序实验
概述:
这篇文章通过FPGA 实现对EEPROM 的读写操作,演示了如何看懂芯片时序和结构建模
风格的verilog 实现的一般方法。以对IIC 总线的FPGA 实现为例子,揭示了芯片时序的分析
的一般方法,和结构化建模风格的verilog 实现如何对算法进行描述以及如何对时序的精确
控制的一般方法。
这篇文章分为两个部分,第一个部分是如何看懂时序图,第二个部分是结构化建模风格
的verilog 如何对算法进行描述和对时序进行精确控制。第一个部分尽量独立于第二个部分,
也就是说这里的如何看懂时序图不仅仅适合FPGA 对时序的描述,也同样适合单片机等控制
器对时序的描述。
我觉得说明时序图是如何看懂的,和代码是如何思考和写出来的,比分析个别时序和解
释个别代码如何工作更具有普遍性。所以这篇文章主要是记录如何看懂时序图和如何把时序
图写成对应的verilog 模块。接下来一部分主要讲结构化建模的思考方式。对如何看懂时序
感兴趣的可以直接跳到时序分析部分。对如何通过verilog 实现IIC 总线感兴趣的可以直接跳
过到代码分析部分。
建模的首要任务是管理复杂度。管理复杂度可以通过以下方法来实现。一般思路是首先
找出要实现功能对应的抽象数据对象(ADT ),然后通过建立原型的方法搭建模块的骨架,以
增量式的开发方式构建肌肉、神经、血管和皮肤,然后构成完整的功能模块。增量式的开发
原则是每一步以能够最快的实现预期现象为目的进行的。如果不能以最快的看到预期现象为
目的,只是搭建完成各模块的后进行整合直接看结果的话,通常结果是什么都没有的。这里
借用了软件开发的一个原理,提高软件工程效率有效方法是把错误产生时间和解决的时间控
制在越早,整个软件工程的代价就越小;否则,解决问题的时间离产生问题的时间越晚,整
个软件工程的代价会成指数增长,最终会导致整个工程崩溃。增量式开发的原则中的最快的
实现预期现象,要运用到测试和调试的方法。这里需要注意的一点是要看到实际的现象,而
不仅仅是仿真的时序图符合预想。通常错误的预想产生仿真的时序图也会符合预想。在完成
这次实验中就遇到了这样的问题,错误预期的仿真时序图符合了预期。最后整合模块后下载
到 FPGA 中,没有任何结果,也无法定位错误产生的位置,只好全部丢带,重构整个模块。
建模过程中产生的难以理解的问题,可以通过建立试验的方法,把基本功能从模块分离出来
进行试验。可以有效的找到理解和解决问题的方法。
在建模的整个过程中要贯穿抽象性,封装性,高内聚和松散耦合的方法。涉及到具体的
verilog ,就是每个模块实现一个完整的功能,这里的一个体现了封装性和松散耦合,完整就
是每个模块都能独立实现相应的功能,体现了抽象性和松散耦合。算法中每个步骤实现一组
相关的功能。每个时钟周期处理一个数据的概念。这里主要是根据结构化设计为理论基础。
结构化设计简单的说就是直线式的代码设计,自上而下不随意在前后跳转,和模块化设计。
结构化设计的原则是代码清晰第一,效率第二。建模的首要目的是管理复杂度。代码的设计
和阅读都是人来进行的。所以代码越清晰,就越适合人在设计的过程中在同一时间将复杂度
控制在一定范围内,简化设计时的思维跨度,能够提高设计效率。
时序分析:
(1)什么是时序
什么是时序?要对时序进行分析,首先要理解时序的概率。我对时序的理解是,数据(信
号)在传输时,时间的先后顺序。具体来说就是每一位数据在每一时钟周期是如何传递的。
要理解时序需要时钟周期的概念。时钟周期就像的心跳,每一步处理的数据都在一个时钟周
期内完成的,不能多半个时钟周期,也不能少半个时钟周期。这就是一个时钟周期,处理一
个数据的概念。一个时钟周期有一段高电平和一段低电平,也可以说是一个上升沿和一个下
降沿。我把时钟周期两个沿定义成节拍。就像心跳的跳和停节拍一样。一个时钟周期,处理
一个数据;一个时钟周期,由两个节拍构成。这样一个数据的处理就只有两种情况了,要么
在时钟的上升沿处理数据,要么在时钟的下降沿处理。通常数据的处理方式分为数据更新和
数据锁存。那么一个时钟就对应两种数据处理方式,时钟的上升沿更新数据,时钟的下降沿
锁存数据;或者是时钟的下降沿更新数据,时钟的上升沿锁存数据。两种数据处理方式如下
图。
上升沿数据更新 下降沿数据更新
下降沿数据锁存
您可能关注的文档
最近下载
- 员工劳动合同易才签订要求.docx VIP
- 青山医院门诊大楼网络规划与部署.doc VIP
- 虚拟电厂参与能量与辅助服务市场的协同优化策略.pdf VIP
- 呼吸衰竭和急性呼吸窘迫综合征 (2).ppt
- 五年级上册语文园地二成语意思用情景表现,词句段运用练习.doc VIP
- 2024贵州安顺面向优秀村(社区)干部专项招聘乡镇(街道)事业单位工作人员19笔试模拟试题及答案解析.docx VIP
- 宇树科技的机器人技术之路.ppt VIP
- 吴在望生化九大代谢图(局解).pdf VIP
- 2024年黔东南州面向优秀村(社区)干部 专项招聘乡镇(街道)事业单位 工作人员笔试备考题库及答案解析.docx VIP
- 北师大版2023-2024学年数学三年级上册第二单元达标测试卷(含解析).docx VIP
原创力文档


文档评论(0)