verilog语言求大神
现有时钟线scl和数据线sda,要求是在传输开始后连续传8位数据。scl高电平期间sda不允许翻转,那么就必须让scl低电平居中位置到下一个低电平居中位置保持sds的高/...
现有时钟线scl和数据线sda,要求是在传输开始后连续传8位数据。scl高电平期间sda不允许翻转,那么就必须让scl低电平居中位置到下一个低电平居中位置保持sds的高/低电平,也就是sda传输一个位涵盖scl的整整一周期。那么我想请教大神,如何控制sda的传输时间达到要求?
可不可以将scl分割出4个段,这样用case语句控制。但具体怎么分割啊??求大神。不胜感激!
哦。我是说怎么用语言表述分割scl。。。 展开
可不可以将scl分割出4个段,这样用case语句控制。但具体怎么分割啊??求大神。不胜感激!
哦。我是说怎么用语言表述分割scl。。。 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏30(财富值+成长值)
1个回答
展开全部
看完上述描述后感觉比较糊涂,具体看不出来这是哪个协议的接口形式,但是有一点是任何协议都一致的,那就是你列出来的时序图。从图中大约可以看出来SCL高电平期间SDA是不变的,也就是说从SDA读取数据出来时可以使用SCL的上升沿,写数据到SDA时,可以用SCL的下降沿。至于你说传输8bit,把SCL分割,我感觉有些像BCLK也就是位时钟,你可以把SCL进行8分频、9分频的,这样SCL和BCLK是同步的,识别到SCL沿时,用8个BCLK传输数据即可。建议查看下I2C\I2S\SPI等类似的协议和代码,对于你理解完成Verilog编写代码会有很大帮助和指导的。
追问
大神,我现在不懂的就是如何分频,且用verilog表述
能不能写一段拜读一下。不胜感激
追答
分频是最简单的了,Q2和赛灵思的ISE里面都有时钟管理的IP核,具体你不需要看懂,直接调用就可以了,无非就是几个相位、分频、倍频和复位信号等引脚。老实说,这种IP核我也只是调用,具体代码怎么写的我也从来没研究过。只是用这种核做基本的倍频、分频出其他同步时钟。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询