导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→寄存器数据宽度和数据线宽度不匹配产生的问题

* 55289: 寄存器数据宽度和数据线宽度不匹配产生的问题

   weagle23 
weagle23发表的帖子 

 寄存器数据宽度和数据线宽度不匹配产生的问题
小弟用CPLD实现一个控制器,内有4个寄存器,第一个是32位的,其余的是16位的,而我的数据线宽度只有8位,因此我根据不同的地址进行访问寄存器的内容,如01H-03H访问寄存器1(reg1);04H-05H访问寄存器2(reg2);06H-07H访问寄存器3(reg3); 08H-09H访问寄存器4(reg4)。程序如下:
IF ADDRESS="000000" THEN
 reg1(31 DOWNTO 24)  <=Data;      
ELSIF ADDRESS="000001" THEN
  reg1(23 DOWNTO 16)  <=Data;
ELSIF ADDRESS="000010" THEN
  reg1(15 DOWNTO 8)  <=Data;
ELSIF ADDRESS="000011" THEN
  reg1(7 DOWNTO 0)  <=Data;
ELSIF ADDRESS="000100" THEN
  reg2(15 DOWNTO 8)  <=Data;
ELSIF ADDRESS="000101" THEN
  reg2(7 DOWNTO 0)  <=Data;
ELSIF ADDRESS="000110" THEN
  reg3(15 DOWNTO 8)  <=Data;
ELSIF ADDRESS="000111" THEN
  reg3(7 DOWNTO 0)  <=Data;
ELSIF ADDRESS="001000" THEN
  reg4(15 DOWNTO 8)  <=Data;
ELSIF ADDRESS="000001" THEN
  reg4(7 DOWNTO 0)  <=Data;
然而在仿真时出错,信息为reg1、reg2、reg3、reg4均有多个输入源(multiple source),小弟不知何解,望高手指点,后来我用CASE--WHEN语句实现也还是同样的错误,在程序的其他地方,我只是对各个寄存器读,没有在赋值,因此出错的地方应该就在这一段程序内。望高手指点一二,不胜感激!


发表时间:2004年5月25日10:09:29

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  55463.[详细]这样写肯定是要出问题的
摘要:把全部错误贴出来看看......(20字)
- [greenfishao][768次] 2004年5月27日

[上一篇帖子]:再问个很菜的问题.呵呵.[B]我的变量是一字节(一共四个),放了01 02 03
[下一篇帖子]:dingliu_8888@163.com