找回密码
 注册
关于网站域名变更的通知
查看: 285|回复: 1
打印 上一主题 下一主题

数字电路设计之ARM m0进度(1)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-25 13:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
这个例子是用于测试我写的ARM这个内核,测试例子是一个求最大公约数和最小公倍数的程序。! j2 a1 x7 ?3 a" V

/ V/ Z2 s) S& E( d3 ~* B* M  s" r0 l. S
1、已解决问题:LDR1这条指令的4 [+ ]. t3 W3 h3 v2 j1 e( o

% r% X2 A; H( m) L9 _#10  i_datain <= { `LDR1, 5'b0000_1, `gr0,`gr2};      //LDR0 5'b01001,PC                  00:6a014 P! Y! r3 g3 W+ Q1 V
#10  i_datain <= { `LDR1, 5'b0001_0,`gr0,`gr1};      //LDR0 5'b01001,PC                   04:6902
% X) j1 ~* i4 P7 ]//阻塞相当于延迟一个周期取i_datain        , d: {$ U* K2 F* q7 |  C
#10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                 08:1883   
' N. W& M/ a6 o#10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                 08:1883
& b+ p# d  r3 _% {. c     d_datain <=   RAM[0];//32'hffff0000;//32'h000f0000;
) i9 K/ Y3 Y( x* _; k#10  i_datain <= { `SUB0, `gr1, `gr2, `gr1};
3 b% M$ z8 s: f     d_datain <=   RAM[1];$ e4 Z4 }1 L$ l4 q2 q" |
这里的处理就可以仿真RAM的时序。要特别注意这个是碰到LDR1要stall的仿真。% X, D0 R* k' A! [4 o

# W( Y9 k% u9 i3 t. O' l- U2、未解决问题:跳转到具体位置(需加上内核RAM之后再确定)
$ L4 |! f3 o" G0 S  M* y' A5 W* V2 K4 {* d+ r" ^. ?" o
#10  i_datain <= { `B1, 12'b0100_0000_1001 };                       //0e:d409
6 l+ j5 D# o& i8 K3、已解决问题:条件跳转时nf会在为0或者为1是都会跳转,因为是测试是用了别的处理器的汇编代码。为了解决这个问题,就把其中一个条件略作了改动,以测试这个汇编代码。2 U# Y3 @) y* @3 h

. a' r: t6 i! Y6 h5 U( i5 d% s. Bnf <= 1;  跳转  
7 f/ k7 H* ]" C& ncf <= 1;  其实就是nf = 0 适合的是nf=0跳转1 F- \% h1 ?7 d% N. y
4、已解决问题:跳转时序调整(将跳转信号往后一个周期)1 f9 o  v# q9 S; Z- y, U

3 R! T) r6 e% S9 Sassign 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));- N0 T: z7 j0 p8 Y4 k9 z+ z& ^
5、已解决问题:信号条件跳转后,后面取得两条全部都是废的,那么我们就将其控制信号置为0即可。9 d$ p# w$ i/ f1 v
0 B; k; i. s; ~
未加RAM的正确方针:
) g4 g. S7 q5 z# _; u6 i* {0 p$ |4 o& }4 }" a/ U
                #10  i_datain <= { `B1, 12'b0010_0000_0010 };                                           ( B. t2 J3 o9 T9 X& W2 a
                #10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                         08:18835 B6 J1 {, V% R$ ]$ A! i8 K
                #10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                         08:1883        1 f4 s, Q, ?9 |9 U9 C
                #10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                         08:1883        . r. j/ w6 |+ n9 a3 z% u" \  Z
6、未解决问题:内核的pc和RAM的时序不一致。需要进行一些时序上的调整。
- S+ C1 n& _" N" M, _0 O& b当前进度:4 \& B) `, W& m0 {1 T
0 b2 P* W  P; n5 s* z
7、已解决问题:无条件跳转,在取操作数的时候进行跳转。这样就可以只要一条的取指代价。0 X" E! k  J( N7 X$ S, g
8、已解决问题:对齐enable与地址信号。
/ ?' \: W' a0 ]% i  }9 r' @" \+ k
2 c% |% P" r# ?. M0 ualways@(posedge clock) begin. k$ l6 U% m$ ~( b% i
        if(!reset)% j, ]3 |$ ?; D; q6 N7 d
                d_addr <= 0;) Z& c9 k! e% q% R& l
        else
* b4 x% b3 F% R2 {                d_addr <= reg_C[6:0];. D* [. R  |; T: H: e" o5 x
end, O( S4 O# ^! X5 Q( \3 @/ E  u3 |1 i
9、未解决问题:LDR1的d_re还没有检测。2 u- x* ~0 b0 ^/ c) v! ?
10、工程进度:测到地址为0xe的指令。
) _! a/ h4 P) O, j! P
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-11-25 15:00 | 只看该作者
    数字电路设计之ARM m0进度
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 22:37 , Processed in 0.156250 second(s), 24 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表