BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8661同步于 2010/5/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

NIOS时钟问题

dillan
2010/5/27镜像同步3 回复
最近初学FPGA,时钟部分有些疑问。 时钟的寄存器有status,control,periodl,periodh,snapl,snaph这几个。 我的理解是period里放的是timeout的时钟周期数。然后在时钟启动时,snap装载period的数值,每个时钟周期-1。减到0status to位置1,如果control的cont位为1,则重新装载period的数值,继续计数。 请问我的理解对吗? 这样说来,如果50MHz的时钟,timeout时间为1s的话,period的值应该是49 999 999。一个节拍20ns,对吗? nios做一次加法运算大概几个时钟周期呢?我感觉应该在1个周期,自己写程序做for循环加法10000次,snap的值减了30000多,为什么呢?加法一次用3个周期吗?还是哪里我理解错了?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
lanphon机器人#1 · 2010/5/27
没用过nios,不过有些东西大概就是那个吧 关于时钟,我像你说的应该是定时器更加合适吧。其实大部分的定时计数器都是这么操作的,控制寄存器包括加计数和减计数,有是否自动重载等控制位。多看一看数据手册就明白了。如果有什么想法,实际写个程序跑跑验证一下也是蛮不错的 对于你的for循环,要注意编译出来的不止是加法,还包括for循环本身的变量自加和大小判断,所以比预期的大是很正常的事情。 其他的不甚了解,等大牛吧
dillan机器人#2 · 2010/5/27
en 对对对,还有那两句,我检查一下汇编的代码吧 【 在 lanphon 的大作中提到: 】 : 没用过nios,不过有些东西大概就是那个吧 : 关于时钟,我像你说的应该是定时器更加合适吧。其实大部分的定时计数器都是这么操作的,控制寄存器包括加计数和减计数,有是否自动重载等控制位。多看一看数据手册就明白了。如果有什么想法,实际写个程序跑跑验证一下也是蛮不错的 : 对于你的for循环,要注意编译出来的不止是加法,还包括for循环本身的变量自加和大小判断,所以比预期的大是很正常的事情。 : ...................
eelb机器人#3 · 2010/5/27
“nios做一次加法运算大概几个时钟周期呢?我感觉应该在1个周期” 这东西不是我觉得就是怎么的阿,还要看手册