打印
[FPGA]

分享FPGA经验(连载)

[复制链接]
楼主: andous
手机看帖
扫描二维码
随时随地手机跟帖
21
zyaibo| | 2014-2-13 09:36 | 只看该作者 回帖奖励 |倒序浏览
楼主继续呀!

使用特权

评论回复
22
livelei| | 2014-2-13 13:55 | 只看该作者
期待楼主更新!

使用特权

评论回复
23
y957104| | 2014-2-13 17:09 | 只看该作者
学习了,不错,顶!

使用特权

评论回复
24
andous|  楼主 | 2014-2-16 15:12 | 只看该作者
       对不住啊,各位,让你们久等了。
    我们做的I2C设备终于稳定了。
    我们都知道FPGA一般作为主控芯片,I2C也一般是做主设备。
    但是大家有没有遇到过做从设备的情况,从设备稳定吗?
    一般情况下,I2C做从设备是不好做的,特别是做大容量的从设备。
    I2C看起来简单,但是里面还有很多问题,如果我们只考虑简单的7为device address,8 bit register address,数据读写位也是简单的8bit的话,另外读写只是简单的I2C interface的话,还简单些。
如果要考虑大容量的,如16bit的设备地址,读的情形考虑到简单的接口外还要考虑有restart的情况,就不好做了,如果要考虑的再细一点,特别是做图像处理的话,读写EDID的时候有个搜索device设备的过程,这种情形恐怕做好的就不容易了。
     如果你是大厂商,像一些AT的ROM,Flash等公司,做的也是巨烂,我们用他们的芯片,用ARM访问也是会有一些问题,就是他们考虑的不太周全。像一些图像驱动的厂商,做的I2C相对来说还好些;通信设备的I2C写的也是很差,控制起来比较麻烦,像一些光纤收发器的厂商,也就是光模块的厂商,有的时候你用ARM等标准设备访问的时候,也会有一些问题。
      所以你如果要做个I2C的从设备的话,要考虑的周全一些,这样我们的芯片健壮性就会比较高。

使用特权

评论回复
25
andous|  楼主 | 2014-2-16 15:48 | 只看该作者
如果我们用FPGA只是做个小程序实验实验我们的功能,应该说还是比较容易的;
如果我们用FPGA作产品,那么你要考虑的要很多,有的时候你觉得你的代码很完美,实验也没啥问题,那么你有没有让你的程序跑一年甚至是更远时间,你有没有把你的程序放在各种环境下实验。
如果说你认为这是芯片的问题和你的程序没有关系,这就大错特错了。
这些最终考究的就是你的代码的健壮性,也就是说的精品来自于千锤百炼。
所以年轻人让多磨练啊。
以此也写给自己。

使用特权

评论回复
26
GoldSunMonkey| | 2014-2-17 21:22 | 只看该作者
希望能够重新开帖继续

使用特权

评论回复
27
GoldSunMonkey| | 2014-2-17 21:22 | 只看该作者
andous 发表于 2014-2-16 15:48
如果我们用FPGA只是做个小程序实验实验我们的功能,应该说还是比较容易的;
如果我们用FPGA作产品,那么你 ...

我有些想法,想和兄弟一起讨论一下

使用特权

评论回复
28
520810| | 2014-2-18 22:40 | 只看该作者
经验之谈

使用特权

评论回复
29
xiongxiao| | 2014-2-19 09:42 | 只看该作者
加油,继续

使用特权

评论回复
30
hjl240| | 2014-2-19 12:10 | 只看该作者
andous 发表于 2014-1-23 16:30
说说wire 和reg的区别
    我们可以说reg相当于存储单元,wire相当于物理连线,但是新学FPGA的会问,存储单 ...

这个要赞一个!!

使用特权

评论回复
31
andous|  楼主 | 2014-2-19 15:33 | 只看该作者
GoldSunMonkey 发表于 2014-2-17 21:22
我有些想法,想和兄弟一起讨论一下

啥想法,猴哥?

使用特权

评论回复
32
falcon330| | 2014-2-21 16:10 | 只看该作者
看帖MARK,楼主辛苦

使用特权

评论回复
33
c547629507| | 2014-2-21 23:27 | 只看该作者
for 可综合了?不是一直都是在testbench里面用的吗。。。

使用特权

评论回复
34
andous|  楼主 | 2014-2-22 16:38 | 只看该作者
c547629507 发表于 2014-2-21 23:27
for 可综合了?不是一直都是在testbench里面用的吗。。。

不是的,看你的for语句是否能产生的硬件。
比如我要生成8个A模块,那么你可以写成
generate
interager i
for(i==0,i<=7,i<= i+ 1)
A U_A
(.DATA(reg))
endgenerate
这样就是可以生成8个这个模块。
或者wire或则reg也可以这样写。
而你仿真用的,有可能是一个循环,不能综合成硬件,所以他就不能被综合,提示错误

使用特权

评论回复
35
c547629507| | 2014-2-22 21:47 | 只看该作者
哦哦  多谢解惑

使用特权

评论回复
36
永不停止| | 2014-2-23 13:24 | 只看该作者
写的不错

使用特权

评论回复
37
橙子0_0| | 2014-2-25 11:05 | 只看该作者
正在学习中

使用特权

评论回复
38
mzm413376788| | 2014-2-25 14:54 | 只看该作者
先膜拜下

使用特权

评论回复
39
liudanwei| | 2014-3-4 16:43 | 只看该作者
路过学习中。

使用特权

评论回复
40
hantian521314| | 2014-3-5 17:45 | 只看该作者
继续

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则