|
发表于 2007-9-19 10:30:41
|
显示全部楼层
看来对RTL code和电路设计的理解还要大大加强啊.
你对RTL code有困惑, 但是RTL code是用来描述你设计的电路的, 不是为了写代码而写代码. 代码中exp_in_pl1/exp_in_mi1的位宽, 完全取决于你的电路的要求, 代码只是描述电路的工具, 你要理解的是在电路中exp_in_pl1/exp_in_mi1的功能/作用是什么.
如果是算术计算, 那么显然2个8bits相加的结果应该是9bits, 否则可能会溢出(overflow), 这个在课程"计算机原理"或"微机原理"中讲的非常清楚, MPU/CPU都存在一个字长的问题, 但是寄存器再长, 计算都有溢出的可能, 所以有相应的flag或标志位.
如果是用做地址信号, 比如 reg_addr = base_addr + offset; 那么2个8bits相加的结果可以仍然是8bits, 因为地址空间是确定/有限/循环的.
如果是有限域运算, 那么2个8bits相加/相差/相除的结果, 仍然是8bits, 并且没有溢出的情况, 因为有限域是封闭的, 自成一体.
所以你的关注点不应该是代码, 而应该是电路, 是电路决定了代码的形式. |
|