返回信息流最近初学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个周期吗?还是哪里我理解错了?
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8661同步于 2010/5/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
NIOS时钟问题
dillan
2010/5/27镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
没用过nios,不过有些东西大概就是那个吧
关于时钟,我像你说的应该是定时器更加合适吧。其实大部分的定时计数器都是这么操作的,控制寄存器包括加计数和减计数,有是否自动重载等控制位。多看一看数据手册就明白了。如果有什么想法,实际写个程序跑跑验证一下也是蛮不错的
对于你的for循环,要注意编译出来的不止是加法,还包括for循环本身的变量自加和大小判断,所以比预期的大是很正常的事情。
其他的不甚了解,等大牛吧
en 对对对,还有那两句,我检查一下汇编的代码吧
【 在 lanphon 的大作中提到: 】
: 没用过nios,不过有些东西大概就是那个吧
: 关于时钟,我像你说的应该是定时器更加合适吧。其实大部分的定时计数器都是这么操作的,控制寄存器包括加计数和减计数,有是否自动重载等控制位。多看一看数据手册就明白了。如果有什么想法,实际写个程序跑跑验证一下也是蛮不错的
: 对于你的for循环,要注意编译出来的不止是加法,还包括for循环本身的变量自加和大小判断,所以比预期的大是很正常的事情。
: ...................