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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5872|回复: 11

[求助] 怎么设计寄存器啊?

[复制链接]
发表于 2010-1-21 16:49:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
最简单的办法是用reg [31:0] abc_reg;定义,但是如果分个小模块为配置模块,要设计寄存器应该用ram实现,但是配置好寄存器后模块内部怎么读寄存器的值呢?
发表于 2010-1-21 17:08:39 | 显示全部楼层
假设你的模块是由外部的APB来访问,该寄存器的偏移地址为 20;读写都可以用APB总线,至于你内部也可以用其他的方式来用这个信号,比如,可以连到端口上直接让其他模块用。

reg [31:0] abc_reg;

always@(posedge clk or .......)
...
if((addr == 20) & .......)
   abc_reg <= wdata;
...


always@(*)
case(addr)
...
20  :  rdata = abc_reg;
...
发表于 2010-1-22 13:22:46 | 显示全部楼层
学习了,谢谢
&pid=3558560&ptid=233088]1#[/url] bbpfancy
发表于 2010-1-24 16:45:12 | 显示全部楼层
看了后有点感觉,谢谢
 楼主| 发表于 2010-1-25 10:13:37 | 显示全部楼层
但是比如我内部划分模块,定义了以下几个模块,一个是寄存器处理模块,一个是数据流处理模块。有很多寄存器,全部放在端口连到数据处理模块,岂不是要很多根信号线?这样好像不好吧?
发表于 2010-1-25 12:42:40 | 显示全部楼层
那你做一个通信接口吧,两边的模块能够识别这个通信协议就可以用少量的信号来实现交互了
当然,这样的做法需要注意performance
发表于 2010-1-25 13:43:05 | 显示全部楼层
统一楼上的
发表于 2010-1-25 14:45:14 | 显示全部楼层
第一种是根据寄存器的原理用硬件描述语言设计,第二种是利用宏模块,简单实用
发表于 2010-2-10 10:43:27 | 显示全部楼层
“岂不是要很多根信号线?”

如果是ASIC或FPGA内部,你管他有多少根信号?
发表于 2010-4-7 21:33:08 | 显示全部楼层
将reg挂到总线上就可以外部访问了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-29 00:08 , Processed in 0.042755 second(s), 9 queries , Gzip On, MemCached On.

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