怎么用16位的数据线写一个32位的数?

[复制链接]
4297|24
 楼主| jlgcumt 发表于 2012-11-27 10:01 | 显示全部楼层 |阅读模式
arm写cpld,16位数据线,但要写一个32位的数进去,因为我这个数是实时使用的的,先写低位,后写高位,怎么避免写完低位,高位还没写的时候,这个数生效,就是全写完才让这个数生效!
jlass 发表于 2012-11-27 13:01 | 显示全部楼层
cpld处理成接受低位后保存一下,接受高位后保存一下,然后判断触发条件同时向下写
 楼主| jlgcumt 发表于 2012-11-27 15:49 | 显示全部楼层
2# jlass 触发条件怎么生成?
我现在是通过设一个寄存器位,外部CPU控制此寄存器产生高脉冲来弄得,不知道通常有什么方法?
jlass 发表于 2012-11-27 16:11 | 显示全部楼层
触发条件怎么生成?
这就看你自己的了,每个人都有自己的做法,要求速度快的话直接和第二次的写同时写就好了(一共写两次),速度要求不高的话,就用第三次的写触发也可以(一共写三次)。
GoldSunMonkey 发表于 2012-11-27 16:32 | 显示全部楼层
2# jlass 触发条件怎么生成?
我现在是通过设一个寄存器位,外部CPU控制此寄存器产生高脉冲来弄得,不知道通常有什么方法?
jlgcumt 发表于 2012-11-27 15:49
这样就可
常用方法都是和这个类似。
 楼主| jlgcumt 发表于 2012-11-27 18:07 | 显示全部楼层
5# GoldSunMonkey
我想让FPGA自己判断,产生一个脉冲或者延时赋值?
GoldSunMonkey 发表于 2012-11-27 18:07 | 显示全部楼层
6# jlgcumt 可以用计数器。
GoldSunMonkey 发表于 2012-11-27 18:08 | 显示全部楼层
里面生成一个计数器,然后01变化即可。
 楼主| jlgcumt 发表于 2012-11-28 15:19 | 显示全部楼层
本帖最后由 jlgcumt 于 2012-11-28 15:20 编辑

8# GoldSunMonkey
这样做?

reg flag;

写低位;
flag<= 0;
写高位;
flag<=1;
赋值过程

if(flag==1)
赋值

这样可以吗?
jlass 发表于 2012-11-28 15:55 | 显示全部楼层
逻辑上倒是通的,但实际上容易出错
处理的不好,很容易把第一个数据的低位和第二个数据的高位拼在一起
 楼主| jlgcumt 发表于 2012-11-28 19:39 | 显示全部楼层
10# jlass 是呀,我现在就碰到这个问题了,怎么解决呢?
GoldSunMonkey 发表于 2012-11-28 21:11 | 显示全部楼层
逻辑上倒是通的,但实际上容易出错
处理的不好,很容易把第一个数据的低位和第二个数据的高位拼在一起
jlass 发表于 2012-11-28 15:55
是呀。
GoldSunMonkey 发表于 2012-11-28 21:12 | 显示全部楼层
10# jlass 是呀,我现在就碰到这个问题了,怎么解决呢?
jlgcumt 发表于 2012-11-28 19:39
可以设置一个标志位,比方你设定如果收到一个ABCD就作为一个开始,
下面的就开始拼凑。
jlass 发表于 2012-11-29 09:33 | 显示全部楼层
猴哥的方法就可以
也可以这么写
如果flag=1
低位赋值
否则如果flag=2
高位赋值
否则如果flag=3
同时写
所以说方法很多,就看你怎么写了
 楼主| jlgcumt 发表于 2012-11-29 11:04 | 显示全部楼层
哦,我试试吧!
charrijon 发表于 2012-11-29 12:20 | 显示全部楼层
你可以在cpld内先开个缓存,等到两次写都完成后,再更新32位寄存器
 楼主| jlgcumt 发表于 2012-11-29 15:24 | 显示全部楼层
16# charrijon
关键是怎么判断两次都写完?
星星之火红 发表于 2012-11-29 19:52 | 显示全部楼层
哦,我试试吧!
jlgcumt 发表于 2012-11-29 11:04
听猴哥的呗。
XiaoWei369 发表于 2012-11-29 19:54 | 显示全部楼层
听猴哥的呗。
GoldSunMonkey 发表于 2012-11-29 20:24 | 显示全部楼层
;P听我的:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:善攻者,动于九天之上,善守者,藏于九地之下!

183

主题

733

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部