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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这个例子是用于测试我写的ARM这个内核,测试例子是一个求最大公约数和最小公倍数的程序。6 Z' u- F+ z( Y2 p' Q
  t5 j+ f( q& x5 L/ a! y1 u

  N: }" _9 L! q- w: R1 Z# O: j1、已解决问题:LDR1这条指令的
! A9 `' `5 u6 I) ?2 k
8 O- u, b6 ?' B! ^4 h#10  i_datain <= { `LDR1, 5'b0000_1, `gr0,`gr2};      //LDR0 5'b01001,PC                  00:6a01( |/ U9 E" l+ g2 D( O, B
#10  i_datain <= { `LDR1, 5'b0001_0,`gr0,`gr1};      //LDR0 5'b01001,PC                   04:6902
" C/ a8 p4 D/ W  ?! }, k//阻塞相当于延迟一个周期取i_datain        
" F/ i3 x& M9 _- k) F; \1 r, D#10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                 08:1883   
0 g7 w' E/ T2 _! b* Q5 |% y#10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                 08:1883: r8 W0 G  Z3 I* L) v1 N
     d_datain <=   RAM[0];//32'hffff0000;//32'h000f0000;
7 \7 a7 H5 o4 s#10  i_datain <= { `SUB0, `gr1, `gr2, `gr1}; / I! z1 H0 o: g: G* d
     d_datain <=   RAM[1];
; C; d0 T9 f( l: w' V. v这里的处理就可以仿真RAM的时序。要特别注意这个是碰到LDR1要stall的仿真。. X) G/ B8 t4 N. w' Y  n' i$ s0 h

# ?  P# I) T3 Y2、未解决问题:跳转到具体位置(需加上内核RAM之后再确定)
7 N5 q$ e& k* l, d5 [% Z
# z! p$ N' f! }# \#10  i_datain <= { `B1, 12'b0100_0000_1001 };                       //0e:d409* I" c% K* G8 U+ T
3、已解决问题:条件跳转时nf会在为0或者为1是都会跳转,因为是测试是用了别的处理器的汇编代码。为了解决这个问题,就把其中一个条件略作了改动,以测试这个汇编代码。
2 w. t! m/ i' `) |" f, I$ T* w, g) U$ H- Z: C
nf <= 1;  跳转  
0 Z% ]! z" i  V- Qcf <= 1;  其实就是nf = 0 适合的是nf=0跳转' f  [8 u7 Z  m: t6 r
4、已解决问题:跳转时序调整(将跳转信号往后一个周期)8 j& N( W- ^/ w. f& u" m8 ?

# f7 a& S+ i+ Q8 k6 i* Qassign 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));
3 C; g3 \4 r5 _% e$ z4 P+ _/ v% {- a5、已解决问题:信号条件跳转后,后面取得两条全部都是废的,那么我们就将其控制信号置为0即可。$ W) v  P$ \" G$ S

% U9 O! N  i: @未加RAM的正确方针:% I9 t$ ?. |1 ?" D( R! W8 F
" w/ F2 L. a& B3 B0 Z# b
                #10  i_datain <= { `B1, 12'b0010_0000_0010 };                                           - t/ z) A( s5 e6 n/ R* a/ `, q
                #10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                         08:18839 h  Q. G+ J6 m
                #10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                         08:1883       
9 u& s& T: k7 [                #10  i_datain <= { `ADD1, `gr1, `gr0, `gr3};//ADD1 7'b0001100 //Rd=Rm+Rn                         08:1883       
3 \% M  r! N8 u( q6、未解决问题:内核的pc和RAM的时序不一致。需要进行一些时序上的调整。
! J5 z1 {5 {2 Z& C, K# W# n4 A6 r当前进度:
" x: X0 P/ }* }% ~, b+ ^! {! n7 U6 n. U3 I
7、已解决问题:无条件跳转,在取操作数的时候进行跳转。这样就可以只要一条的取指代价。- Y3 p# N  _; S
8、已解决问题:对齐enable与地址信号。
2 f, Y+ o0 ^$ E" ?5 _; s7 r6 x0 j7 x5 d
always@(posedge clock) begin0 J4 _2 v  v  [! O6 c  r) B
        if(!reset)& ]( S' @7 U; j# A; R
                d_addr <= 0;
( j+ Q( _- j4 p+ E( j        else# \6 k* O# @, a% t
                d_addr <= reg_C[6:0];
3 U8 z3 z; B7 x+ Bend( \; G+ q$ m( w$ b& J! Z
9、未解决问题:LDR1的d_re还没有检测。' g9 O) Z8 e) U+ T0 C: U
10、工程进度:测到地址为0xe的指令。
# s$ S5 F+ a+ f
  • 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 19:19 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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