凔海

    1. loushaofeng 发表于 2016-5-25 21:21 后面怎么没有了,呵呵
      我想分四篇来写,所以戛然而止了:loveliness:
    2. 白丁 发表于 2016-5-24 21:16 坚持下去
      嗯嗯嗯嗯嗯{:1_138:}
    3. 本帖最后由 凔海 于 2016-5-22 10:32 编辑     (二)bala一下Verilog综合的AT24c04        上面介绍了IIC协议的一些概念,下面,就开始真二八经的用Verilog综合出来吧。首先来确定要实现的功能:向AT24C04写入123456,然后读出来送给6位数码管依次显示。        接下来,先来说说大体的框架。 smg_display_module.v数码管显示模块,这块就不多说了吧,留着以后再bala吧。 IIC_function_module.v实现对AT24c04的读写时序的综合 IIC_ctrl.v实现对写、读AT24C04的控制和对数码管显示的控制。 这三个模块也就干这点活了       iAddr、iData分别是由IIC_ctrl模块发送给IIC_function_module地址地址和数据,oData是读出来的数据,共24位,一并发给数码管显示给我们看。iCall实现读写控制,oDone是完成信号,控制IIC_ctrl的工作启停。       在这还是插句话吧,咱知道AT24c04的数据线是双向口,所以要用isQ来对数据线的输入输出状态进行选择。所以用实现,inout  SDA;assign SDA    =  isQ ? rSDA : 1'bz;isQ=1时为输出,即将数据写入AT24C04,isQ=0时为输入,即读出AT24C04数据。那为什么在输入时要设为高阻态呢?       答:处于高阻抗状态时,输出电阻很大,相当于开路,没有任何逻辑控制功能。即可以认为是没有输出,对下级电路没有任何影响。而一个输出端口在高阻态的时候,其状态是由于其相连的其他电路决定的,可以将其看作是输入。当三态门的输出处于高阻状态的时候,取值由外部电路决定,也就是说,这一时刻是可以作为输入。 是否还记得,我们上节说了读写流程,就是下面这幅图,     仔细端详这幅图我们不难发现,我们要写的就是起始位,写数据,读数据,应答位,结束位,其他的 接下来开始苦干人生了        IIC_function_module.v该模块要完成与AT 24C04的读写通讯,也就是IIC协议。说白了就是完成写字节和读字节,所以要直勾勾的盯着下面这张图来写一写        该图给出了AT24C04对时序的要求,高电平多少,低电平多少都有规范。可见,想实现度AT24C04的控制,要求的还是蛮多的。下面我们采用400KHz的时钟周期进行读写操作。 1、起始信号,也就是通知AT24c04要干活的指令是要求在时钟线拉高的情况下数据线产生一个负跳变(高电平变为低电平)。而且要求起始信号的保持直接不少于600ns.所以我们可以这样描述             begin             isQ
    4. cclccl941123 发表于 2016-5-21 09:59 您好,看您发了好多关于FPGA的了,您那有没有汇总的
      咱论坛帖子过几天就不能编辑了,所以不知道怎么汇总,不过在这,有管理员汇总的
    5. wateras1 发表于 2016-5-21 09:21 不错,写贴贵在坚持,与君共勉
      嗯 ,谢谢:loveliness:
    6. lclhitwh 发表于 2016-5-21 08:27 非常不错的讲解,谢谢版主分享,请问凔海笔记之FPGA(九)怎么没看到啊?
      被我吃了,现在有了:loveliness:
    7. 5525 发表于 2016-5-17 11:37 楼主辛苦。能说能写。 小建议,供参考: 1。如下,因为rx_pin是异步输入,所以 begin_ ...
      谢谢您的建议,受教了{:1_103:}{:1_103:}{:1_103:}
    8. 白丁 发表于 2016-3-23 19:26 楼主好耐性!
      :loveliness::loveliness::loveliness:
    9. 给按键编个码
    10. 若瞧关于单片机、FPGA等系列文章,欢迎戳下凔海笔记本
    11. wateras1 发表于 2016-3-20 17:03 如果把学技术当作一种乐趣的话,确实是其乐无穷,写的挺生动的,不过有几个小建议希望对你有用,对于跑马灯 ...
      谢谢您的建议:congratulate:,我去了解了解去:victory:
    12. wateras1 发表于 2016-3-20 17:12 小伙子加油!
      谢谢您的鼓励:)
    13. okwh 发表于 2016-3-18 18:53 不知道这玩意什么时候能可视化的编程, 我实在是学不会了,最头痛的就是时序关系。 为什么不能画个输入 ...
      可视化编程,是不是想labview那样的?水平有限,我也不怎么怎么解释,我觉得懂时序还是蛮重要的,这挺基础的。再者说,Verilog可不是编程,我们做的每一步都是在描述或者说组装一个电路,其中细节更需要功夫了。
    14. 依然爱你· 发表于 2016-3-16 20:10 我感觉三中的最后一句有些误差 向量通过【high#:low#]或【low#:high#】进行说明,而且是 ...
      谢谢,我还真没注意到我写的是那种类型,大意了:titter:
    15. 飞鸿浩劫 发表于 2016-3-17 14:19 “网上有这么一句话,“reg相当于存储单元,wire相当于物理连“”未必可信
      那能不能稍微讲解一下嘞:congratulate:?不是很懂:titter:
    16. 白丁 发表于 2016-3-16 21:40 给楼主赞一个
      谢谢:congratulate:
    17. 辛昕 发表于 2016-3-14 22:03 这真的是我见过最会写童话的程序员,没有之一.......
      :congratulate::congratulate::congratulate::congratulate:
    18. DavidZH 发表于 2016-3-15 11:57 晕死,用毛线38译码器啊,什么年代的思想,LED专用驱动芯片一大把,非要瞎折腾!!!
      我还是菜鸟,所以懂得不多,还望大神多多指教多多分享呀:congratulate:
    19. dong2213dong 发表于 2016-3-11 08:40 哈哈,满汉全席!很形象,通俗易懂,期待楼主的下一小节的讲解!!!
      谢谢:loveliness::loveliness::loveliness:
    20. 白丁 发表于 2016-3-10 20:34 楼主很走心啊,赞一个
      谢谢鼓励:)

统计信息

已有86人来访过

  • 芯积分:5
  • 好友:3
  • 主题:18
  • 回复:39

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言