在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: hbhbts

[原创] 关于AHB总线verilog代码实现(design篇)

[复制链接]
发表于 2014-7-7 09:25:47 | 显示全部楼层
多谢楼主分享经验 学习了 PERFECT
发表于 2014-7-13 10:23:21 | 显示全部楼层
下下来看下,希望有帮助
发表于 2014-7-13 10:31:58 | 显示全部楼层
本帖最后由 kriayamatoo 于 2014-7-13 11:04 编辑

有个小白问题想要问一下,HSIZE和HBURST设置不同时,HADDR的地址如何移动的?比如说输入数据HWDATA是[31:0]时,设置HSIZE=Half Word,相邻数据的HADDR的地址每次增加2,地址的增加是以byte来计算的。
但是对于HWDATA而言,整个Word才占据一个地址,也就说需要的两个Half Word的数据HWDATA一次性就输入完成了,这之间地址间的切换是如何实现的,数据是如何根据byte地址的变化进行输入的,尤其是HBURST是WRAP模式时,要如何进行控制?还是说,在数据位宽定为32位时,数据的传输是如何以byte为单位进行传输,以致地址可以以2byte、4byte、8byte为单位进行对齐?
或者是说,地址每次传输的只是每次数据的首地址,地址是以byte为单位进行递增的,那么输入的数据Wdata又是怎么存储的,使得当Hsize=Word时,可以一次性读出4byte的数据,求高手指点迷津~~~~
 楼主| 发表于 2014-7-14 21:33:36 | 显示全部楼层
回复 34# kriayamatoo


   Hsize是对每一个transfer而言的,这Hsize是受具体的data width决定的,如果你的地址是32bit的,那么Hsize允许值是1byte,2byte,4byte。如果BURST是incr那么HADDR地址计算为HADDRn=HADDR0+1<<Hsize,当然AHB规定这里的HADDR0是跟HSIZE对应的字节数对齐的。如果是wrap的,HADDRn= (HADDR0>>Hsize)<<Hsize + ((HADDR0[Hsize:0]+1<<Hsize)<<(32-Hsize))>>(32-Hsize);
发表于 2014-7-17 16:23:00 | 显示全部楼层
好!!!!!!!!1
发表于 2014-8-1 22:31:59 | 显示全部楼层
不错不错,学习了,绝对是大牛水平
发表于 2014-8-4 20:56:40 | 显示全部楼层
代码呢?
发表于 2014-10-12 23:48:55 | 显示全部楼层
正在找amba的代码啊
发表于 2014-10-13 16:30:06 | 显示全部楼层
下来看看。。。
发表于 2014-10-13 20:42:29 | 显示全部楼层
回复 38# 心灵失格

在评论第二页有呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 20:39 , Processed in 0.025944 second(s), 5 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表