insomnia1107 发表于 2010-12-30 19:40:05

求助。。。。。

ytemp1<=0;//ytemp初始化为0



ytemp<=y;
ytemp1<=ytemp1^ytemp;
ytemp<=0;


先赋值给寄存器,然后运算,运算过后再置零,像上面那样写行不行?应该怎样写?

NJ8888 发表于 2010-12-30 20:33:12

不行,一个进程内无论多少次赋值都只有最后一次才是生效的

insomnia1107 发表于 2010-12-30 21:22:14

回复【1楼】888888888888
-----------------------------------------------------------------------

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_608142XEVDSC.jpg
(原文件名:未命名.jpg)


这个电路怎么写才可综合?

NJ8888 发表于 2010-12-30 21:35:11

下面矩形是啥,看不懂如果是逻辑,那通常不能把两个逻辑输出连载一起(除非线或之类,但FPGA内部无法线或)

insomnia1107 发表于 2010-12-30 21:53:50

回复【3楼】888888888888
-----------------------------------------------------------------------

是一个寄存器,初始值是0;与输入异或,然后再保存

NJ8888 发表于 2010-12-30 21:55:49

回复【4楼】insomnia1107
回复【3楼】888888888888   
-----------------------------------------------------------------------
是一个寄存器,初始值是0;与输入异或,然后再保存
-----------------------------------------------------------------------

问题在于你的寄存器输出也不能与异或门输出直接脸的,综合不出来

insomnia1107 发表于 2010-12-30 22:09:51

回复【5楼】888888888888
-----------------------------------------------------------------------

寄存器的输出连的是异或门的输入,异或门的输出连的是寄存器的输入,

我就是想一开始读一个数存入temp,然后第一个数与第二个数异或,值存入temp,第三个值与temp中的值异或再存入temp。
这个怎么实现?

NJ8888 发表于 2010-12-30 22:18:05

if rising_edge(clk) then
temp<=temp xor input;
end if;

insomnia1107 发表于 2010-12-30 22:18:06

高手帮帮忙啊
页: [1]
查看完整版本: 求助。。。。。