
SOC
richardhuang1123
这个作者很懒,什么都没留下…
展开
-
DDR2 ECC的处理办法之一
1.DDR2 ECC 实际只支持32bitECC,64bit的ECC是两个32bitECC合成。采用算法是hamming编码,(32,7); 但是目前的PHY接口是5个slice,每个slice对外接口是8bit 数据位宽。其中一个slice用于ECC,所以最后最大支持4*8bit=32bit数据位宽。另外IP支持reduced模式,在配置好 reduced后(1有效),将在内部PHY的s原创 2010-03-10 16:56:00 · 2113 阅读 · 0 评论 -
芯片快量产阶段发现bug,细节是魔鬼啊!
AMBA总线多数情况下如果slave处于idle情况,都会把ready拉起。但是协议也没有禁止slave不能根据自己的某些原因把 ready拉低。如果忽略这种情况,就会在极端情况下出问题。 1.设计应该汲取的教训 学习别人的错误就是减少自己的错误,对协议的各种情况都要考虑清楚,各种corner都要考虑。 细节体现魔鬼,写RTL不难,专家的水平就体现在细节,用最简洁的语言完美表达逻原创 2011-10-28 10:41:16 · 807 阅读 · 0 评论 -
DDR2的ECC处理办法之二
这里16bit模式,在端口只有32bit,所以高位填0,只有低16bit数据有效。在内部形成校验数据时以这种 填充后的32bit数据来形成校验位。 写命令下: 在写模块之前,内部数据通道是64bit,在写模块下,基于(32,7)编码形成两个7bit 共14bit的校验位,在写模块内部,把64bit数据拆成四个16bit,再高位填16bit填0成4个32bit, 基于这四个32原创 2010-03-17 14:14:00 · 1232 阅读 · 0 评论 -
关于AHB slave的接收处理策略及异步FIFO写满的处理
1. 由于AHB总线在hsize, hburst, htrans等上的复杂组合,slave设计会比较复杂。什么样的 设计方式能最大提高性能?目前看到两种方式 A. 把命令和数据分别buffer,提高突发写深度,可以提高性能。 状态机要处理总线的控制和数据,以分发命令和数据到相应的buffer。 B. 命令和数据放到一起buffer,会导致AFIFO宽度很长,不原创 2011-10-29 18:01:05 · 2611 阅读 · 0 评论 -
ARM scatter file
分散加载文件。 bin文件被称为image; 加载区域---代码数据常量存储的地方。 执行区域---代码执行的地方。一般加载区域和执行区域不在同一个地方,比如存在flash中,在内存中执行。 几个属性: +RO 只读,一般是代码常量放置的区域。 +RW 可读写,一般是经过非0初始化的变量。原创 2012-05-17 16:08:34 · 373 阅读 · 0 评论