i2c状态机方法设计-verilog】的更多相关文章

2010-09-05 21:04:00 verilog语言基础学的差不多了.接着就是看看华为的语言编写规范.状态机设计方法是fpga的重要设计方法.所以我要记上一笔. 只要会FSM方法,用fpga编写I2C,UART驱动应该都不成问题了.当然最好用三段式FSM形式. 下图为读写一个字节的i2c协议,分析设计重点提示如下图.…
[第一季]CH05_FPGA设计Verilog基础(二) 5.1状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路.通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态的时序逻辑电路,三是输出组合逻辑电路.通常,状态机的状态数量有限,称为有限状态机(FSM).由于状态机所有触发器的时钟由同一脉冲边沿触发,故也称之为同步状态机. 根据状态机的输出信号是否与电路的输入有关分为Mealy型状态机和Moore型状态机. 1.Moore型有限状态机:是指那些输出信号仅与当前…
[第一季]CH04_FPGA设计Verilog基础(一) 4.1 Verilog HDL 代码规范 u 项目构架设计 项目的构架用于团队的沟通,以及项目设计的全局把控 u 接口时序设计规范 模块和模块之间的通过模块的接口实现关联,因此规范的时序设计,对于程序设计的过程,以及程序的维护,团队之间的沟通都是非常必要的. u 命名规则 1.顶层文件 对象+功能+top 比如:video_oneline_top 2.逻辑控制文件 介于顶层和驱动层文件之间 对象+ctr 比如:ddr_ctr.v   3.…
Java生鲜电商平台-订单模块状态机架构设计 说明:在Java生鲜电商平台中订单的状态流转业务        我们知道 一个订单会有很多种状态:临时单.已下单.待支付.待收货.待评价.已完成,退货中等等.每一种状态都和其扭转前的状态.在扭转前状态所执行的操作有关. 一 实例说明 举例一个过程:用户将商品加入购物车,在后台生成了一个所谓的“临时单”,这个订单实际上还没有正式生成,因为用户仍然没有点击下单.只有当用户下单后,这个“临时单”才可以转化为一个“待支付的订单”.那么这个过程中:只有将一个处…
[第一季]CH06_FPGA设计Verilog基础(三) 一个完整的设计,除了好的功能描述代码,对于程序的仿真验证是必不可少的.学会如何去验证自己所写的程序,即如何调试自己的程序是一件非常重要的事情.而RTL逻辑设计中,学会根据硬件逻辑来写测试程序,即Testbench是尤其重要的.Verilog测试平台是一个例化的待测(MUT)模块,重要的是给它施加激励并观测其输出.逻辑模块与其对应的测试平台共同组成仿真模型,应用这个模型可以测试该模块能否符合自己的设计要求. 编写TESTBENCH的目的是为…
继上一篇 使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题 解决了后台业务系统的部分动态加载问题,然而该框架离正常的用户体验还存在一些问题,如:浏览器的前进.后退.刷新等问题.有博友也遇到了同样的问题,接下来就针对浏览器的前进.后退.刷新进行用户体验优化. 在解决上述问题时也进行了各种search,但是大部分都是自己实现的插件,而且插件年久失修,对于新的jquery支持不佳.也有使用h5新加的history方法来实现的,由于HTML5的广泛使用,绝大部分主…
板子使用的是黑金的是xilinx spartan-6开发板,首先准备一份24LC04B芯片资料,读懂资料后列出关键参数. 如下: 1.空闲状态为SDA和SCL都为高电平 2.开始状态为:保持SCL,SDA高电平不变,SDA 保持最少4us,之后SDA为低,保持最少4us 3.结束状态为:保持SCL为高.SDA为低电平不变,保持最少4us,SDA为高保持最少4us 4.时间间隔4us要求来源(上面数据为24LC04,下面数据为24LC04B) 初步估算了一下时钟要求,100k(10us)符合要求,…
上升沿检测电路之Moore型FSM // Listing 5.3module edge_detect_moore ( input wire clk, reset, input wire level, output reg tick ); // symbolic state declaration localparam [1:0] zero = 2'b00, edg = 2'b01, one = 2'b10; // signal declaration reg [1:0] state_reg, s…
////////////////////////////////////////////////// //clk = 20 MHz ,一个周期50ns //sck = 100 kHz (scl) ,一个周期 1000ns //I2C在sck下降沿更新数据,上升沿读取(采样)数据 /////////////////////////////////////////////////// 'd200)(clk,rstn,start_sig,word_addr,wr_data,rd_data,done_s…
实现功能:检测出串行输入数据4位Data二进制序列0101,当检测到该序列的时候,out=1,否则out=0 (1)给出状态编码,画出状态图 (2)门电路实现 (3)verilog实现 首先规定Q3Q2Q1为刚输入的三位数,接下来要输入的数是A,Z为输入A以后的状态机的输出结果,则可以画出状态转换图如下: 然后根据状态图,我们可以得到状态表: 从而推导出激励方程,根据卡诺图化简得到序列检测的门级检测电路如下: (3)根据状态图写出verilog代码: mealy型状态机的输出与其输入以及当前状态…