debug经验笔记
今天通过对petium 4的vhd文件工程进行debug主要发现了如下几个问题
-
在carry generator生成进位的逻辑上有问题。在电路中A(n),B(n)为输入引脚,经过生成了第一层的P和G,其公式如下:
然后再经过另一个结构生成以后的P和G公式为下
-
在写carry_generator的时候注意第一个进位的输出应该是上一个carry_generator的输入即cin,后面的C4到C32全都要全都要向后移一位C32变为cout,而cin于剩下的C4到C28放在一起给本阶段选择sum_generator的结果用。
对于使用windowing处理线程任务的方法理解
处理结构如下图所示
一个thread中可以运行多达8个子程序,在运行thread的时候会将影子寄存器里面的东西通过高速总线传输到register file中给线程处理运行。反之在线程停止的时候会将寄存器的值放到影子寄存器中存储。这个存储是需要时间的,因此在有多个线程同时运行需要调度的时候可以将影子寄存器和register file之间的传输过程与另一些线程并行运行,从而达到节省时间的目的。
对于FSM的新理解
FSM主要分为两种:一种是moore另一种是mealy。对于moore来说,其特点是输入部分不会直接参与输出的combinational logic中。mealy相反,输入会有介入输出的组合逻辑中去。他们的结构如下所示
一般来说不会使用mealy类的FSM因为整个电路的输入不会跟随时钟同步更新状态,这就导致由输入状态变化引起的系统输出状态不稳定。而在moore FSM中就不存在这种情况。