Board logo

标题: 我有段程序,不能通过综合.请个为高手指教. [打印本页]

作者: ruiwan    时间: 2005-6-15 00:10     标题: 我有段程序,不能通过综合.请个为高手指教.

Process(reset,addr,wr) begin if (reset='1') then resetout<='1'; ad_cs<='1'; ad_address<='0'; runled<='0'; errled<='1'; comled<='0'; mdmvcc<='0'; elsif (wr'event and wr='0' and rd='1') then if (addr="10010000") then ----9000 resetout<=data(0); elsif (addr="10010100") then --9400 ad_cs<=data(0); elsif (addr="10011000") then --9800 ad_address<=data(0); elsif (addr="10100000") then --a000 runled<=data(0); elsif (addr="10100100") then --a400 errled<=data(0); elsif (addr="10101000") then --a800h comled<=data(0); elsif (addr="11000000") then --c000h rfvcc<=data(0); elsif (addr="11000100") then --c400h mdmvcc<=data(0); elsif (addr="11001000") then --c800h switch<=data(0); elsif (addr="11001100") then --cc00h enabl<=data(0); else resetout<='0'; ad_cs<='0'; ad_address<='1'; rfvcc<='1'; mdmvcc<='1'; end if; else resetout<='0'; ad_cs<='1'; ad_address<='0'; rfvcc<='1'; mdmvcc<='1'; end if; end if; end Process; 问题出在红色的这部分,去掉他就能综合

[此贴子已经被作者于2005-6-15 0:10:12编辑过]


作者: zhujianuy    时间: 2005-6-15 10:30

你好像倒数第二行多加了一个end if;   ,一个就够了吧!
作者: saiyiwu    时间: 2005-6-15 14:36

我没用过vhdl,不过看你的程序
           if ()
           elseif()
           else  
                endif
之后怎么会还有else呢,应该没有这样写程序的吧
作者: ruiwan    时间: 2005-6-15 21:23

是多了一个END IF,但去掉也不行。
作者: rainmaker    时间: 2005-6-18 00:24

问题不在红色的部分,而在第一行process(reset,addr,wr),没必要也不应该把addr列为触发项。把它去掉试试。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0