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

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

  
楼 主:weagle23 2004年5月25日10:09
 寄存器数据宽度和数据线宽度不匹配产生的问题
小弟用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语句实现也还是同样的错误,在程序的其他地方,我只是对各个寄存器读,没有在赋值,因此出错的地方应该就在这一段程序内。望高手指点一二,不胜感激!
  
2楼:greenfishao 2004年5月27日10:14
 这样写肯定是要出问题的
把全部错误贴出来看看

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:再问个很菜的问题.呵呵.

[下一篇主题]:求无线商务电话成熟方案