Nios II CPU的接口信号
0赞针对Altera的Nios II处理器,我们不管Avalon总线的关系,单单考虑CPU的接口信号,考虑没有指令缓存,数据缓存,没有MMU/MPU,没有硬件乘法器触发器和自定义的指令单元,那么,最基本的Nios II处理器有哪些信号呢?
clk, 时钟,不用说了,所有的Nios II内部的时序逻辑均同步与此时钟,上升沿有效。
reset_n, 异步复位信号,低有效。
d_irq, 中断源中断请求信号,32位。
i_address, 指令总线的地址总线,32位,但是实际上,没有MMU的情况下,Nios II仅具备31位地址寻址能力。
i_read, 指令读信号,高有效,表示Nios II从总线上读取。
i_readdata, 读到的数据,32位。
i_waitrequest, 总线上过来的读等待请求信号。
d_address, 数据总线地址信号,32位。
d_byteenable, 字节Mask,32位处理器,对应4位。
d_read, 数据读。
d_readdata, 数据总线读到的数据,32位。
d_write, 数据写。
d_writedata, 数据总线写数据,32位。
d_waitrequest, 总线上过来的读/写等待请求信号。
需要注意的是,Nios II为32位处理器,在处理器和指令一层,所有的地址空间的单位都是按字节计数的,但是对于Nios II而言,它的实现实际上PC指针是按照字(32位)来计数的,也就是:F_pc_plus_one = F_pc + 1; 而上面的地址总线是按照字节对齐还是按照字对齐的呢?答案是:字对齐。因为啊,它的实现方式是:i_address = {F_pc, 2'b00};
