数字电路设计之ARM m0进度(1)
2014-10-21 20:15
337 查看
这个例子是用于测试我写的ARM这个内核,测试例子是一个求最大公约数和最小公倍数的程序。
2014.10.21
1、已解决问题:LDR1这条指令的
这里的处理就可以仿真RAM的时序。要特别注意这个是碰到LDR1要stall的仿真。
2、未解决问题:跳转到具体位置(需加上内核RAM之后再确定)
3、已解决问题:条件跳转时nf会在为0或者为1是都会跳转,因为是测试是用了别的处理器的汇编代码。为了解决这个问题,就把其中一个条件略作了改动,以测试这个汇编代码。
nf <= 1; 跳转
cf <= 1; 其实就是nf = 0 适合的是nf=0跳转
4、已解决问题:跳转时序调整(将跳转信号往后一个周期)
5、已解决问题:信号条件跳转后,后面取得两条全部都是废的,那么我们就将其控制信号置为0即可。
未加RAM的正确方针:
当前进度:
7、已解决问题:无条件跳转,在取操作数的时候进行跳转。这样就可以只要一条的取指代价。
8、已解决问题:对齐enable与地址信号。
10、工程进度:测到地址为0xe的指令。
2014.10.21
1、已解决问题:LDR1这条指令的
#10 i_datain <= { `LDR1, 5'b0000_1, `gr0,`gr2}; //LDR0 5'b01001,PC 00:6a01 #10 i_datain <= { `LDR1, 5'b0001_0,`gr0,`gr1}; //LDR0 5'b01001,PC 04:6902 //阻塞相当于延迟一个周期取i_datain #10 i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn 08:1883 #10 i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn 08:1883 d_datain <= RAM[0];//32'hffff0000;//32'h000f0000; #10 i_datain <= { `SUB0, `gr1, `gr2, `gr1}; d_datain <= RAM[1];
这里的处理就可以仿真RAM的时序。要特别注意这个是碰到LDR1要stall的仿真。
2、未解决问题:跳转到具体位置(需加上内核RAM之后再确定)
#10 i_datain <= { `B1, 12'b0100_0000_1001 }; //0e:d409
3、已解决问题:条件跳转时nf会在为0或者为1是都会跳转,因为是测试是用了别的处理器的汇编代码。为了解决这个问题,就把其中一个条件略作了改动,以测试这个汇编代码。
nf <= 1; 跳转
cf <= 1; 其实就是nf = 0 适合的是nf=0跳转
4、已解决问题:跳转时序调整(将跳转信号往后一个周期)
assign can_jump = ((cond_1[3]==1'b1)&&(nf == 1))|((cond_1[2]==1'b1)&&(zf == 1))|((cond_1[1]==1'b1)&&(cf == 1))|((cond_1[0]==1'b1)&&(vf == 1));
5、已解决问题:信号条件跳转后,后面取得两条全部都是废的,那么我们就将其控制信号置为0即可。
未加RAM的正确方针:
#10 i_datain <= { `B1, 12'b0010_0000_0010 }; #10 i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn 08:1883 #10 i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn 08:1883 #10 i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn 08:18836、未解决问题:内核的pc和RAM的时序不一致。需要进行一些时序上的调整。
当前进度:
7、已解决问题:无条件跳转,在取操作数的时候进行跳转。这样就可以只要一条的取指代价。
8、已解决问题:对齐enable与地址信号。
always@(posedge clock) begin if(!reset) d_addr <= 0; else d_addr <= reg_C[6:0]; end9、未解决问题:LDR1的d_re还没有检测。
10、工程进度:测到地址为0xe的指令。
相关文章推荐
- 数字电路设计之ARM m0进度(2)
- 数字电路设计之ARM的thumb指令中的POP和PUSH指令
- Verilog HDL 与数字电路设计
- 电子电路课程设计——8位数字抢答器设计论文
- 数字电路设计之循环右移的verilog实现
- 数字电路设计之function的使用
- 数字电路设计之verilog的门级描述
- 数字电路设计中的亚稳态及其解决方法
- 数字电路设计之牛顿迭代法计算除法的verilog实现
- 数字电路设计之奇偶分频的verilog实现
- 数字电路设计之32位先进进位加法器的verilog实现
- 电子电路课程设计——8位数字抢答器设计论文
- 基于ARM的射频识别读卡器电路设计
- 我的HIFI WAV 播放器设计之二电路图数字电路部分
- 数字电路设计之算数右移的verilog实现
- 流水线技术在高速数字电路设计中的应用
- 数字信号在不同时钟域间同步电路的设计
- 数字电路设计之五级流水线设计(CPU)
- 数字电路设计之verilog的define和parameter
- 数字电路设计之Wallace树形乘法器