机器人控制器 硬件硬件dv是什么意思

基于流水线处理的RISC微控制器软核的设计_甜梦文库
基于流水线处理的RISC微控制器软核的设计
摘 要本 使 I L 言 用自 下(o dw ) 设 方 计    用VI 语 采 顶向 Tp  n 的 计 法设 文 - D o了一个 8 位的RS I C微控制器软核。 本微控制器设计了新的RS    I C指令集,长度为2 位,其中第一字 4节为操作码, C -1 与M S 操作码的功能和助记符都相同, 5 第二、 三字 节为两个操作数。 该指令集可向下兼容M S 1 1 指令。 C- 的 1 5 1 本微控 制器包含了2 1位的计时器计数器,一个全双工串行接口,5 个 6 个 中断源2 级中断优先权,高低各 18 2 字节R M,这些模块的功能和 A 设置与M S 1 C - 兼容。 时新增了 5 同 硬件看门 软件复 寄 狗、 位、 存器直 接交换数据等其他功能。 便于嵌入式的应用, 为了 乘除法模块可选择 实现,系统的时钟频率也可选择实现。内核设计了3 级指令流水线, 除M V O C指令外其他指令在没有冲突的 情况下都可单周期执行。通 过对流水线进行优化进一步提高了系统时钟率。 采用了 直连结构, 特 殊功能寄存器与各个模块直接相连,提高了系统的效率。 本微控制器内核在 I    S E软件环境下完成了各模块的编码,使用Snl p 8 进 合, ypf r . 行综 使用M dS 61进行了 后 i o0 y  oe i . lm  ) 0 前、 仿真,并下载到了FG 进行运行。 P A中 微控制器在目 前的所有软硬件验证中都达到了设计的要求。本微控制器内核与 M S 1    C - 具有良 5 好的兼容性,指令的执行速度 和效率很高, 系统配置灵活, 可满足嵌入式微控制器内核的要求。同 时, 本微控制器设计的完成可以为将来开发具有特殊用途的专用集成电路以及实现系统集成奠定坚实的基础。关键词 微控制器, C-1 3 MS5,  级流水线,软核,RS IC ABS RACT TI ts  e n  t r c tlr    e  dsnd    ippra 8 imc - noe sfcr ws i e i n  a ,  - io o rl o o a eg n h b t V D l gae  t - w ds n hd H L  ug wt o d n i m t . a n i p o eg e o h  A  R C  r tn  h h  t s b w s  i e   w  S it co s w i l g i 2-t  ds nd n e I n u i e c e h  4 i a e g s t  n f t mc - noe t fs bt o w i i oe tn  e  o h io otlr h it e  h h  pri cd t r  rc rl,  r y f  c s  ao o e  e ht  f co ad  e oi i t s e  MC -1 t scn a t u t n  m m n s  a t h ni n n e  c  h m o  S5,  eod e  h e ad r bt ioe tn  a T e t co s icm ab n t d  e  pri dt h i r tn  s  pt l h y s  ao a .  n u i e i s t  o iewi te  1 s ut n o MCS5 .h mirc nrl r cu e 2 t h 1 i t ci s  h  1 nr o f  - 1 e  co o t l i ld s  T oe n1- cl l r h rh o e r  ldp x  T  t5  r   t  u g p-im m t a l  l U R pr, ie u 6 i a a a at b c e f ue A u os n r t po su e wt 2l e ie ut n oi, h d  18  t n  r s h e l  r po pi t h a l 2 b i o c i -v n r i r ry i n o t g w  尹 R M,  o t s m dl a cm ab wt t t  MC - e  A a f  e  u s  o pt l i h o l h l  e o e r e  ie  h  f  S5 a 1 Fre o , d a w t dg sf a r e r ie tnm . t r r hr r a h  ,  w r e t e sr r s uh m e a w e  c o o e  ,  ts  t s g a i n dtdet ad  e f cos  ds nd  t mc c t g a icy  o r  tn a ege f h ioo i a-r l n t u i r i h n e  o e  r r  n oe I o e t ip v t cnei c i e bde apc i tlr n  r  m r e  ovn ne  m edd  la r l.  r o  o h d e  e n  p it o,  ip m n o d io m dl ad  l lao m dl c n t m l et  is n  u n m t i tn  u a h e  e f  i o e  u i c i o e  v p n ot ,e t c c t .l e it co p en w s  d b p dh s e l k  3 e l r tn  le  ue e e t y m o o -v n u i i i a s s o s pi t m r ot lr l h n r t n  b oe  n c k   e c cn oe a t i t co cn  dn i oe  c n  i o r l,  e  u i a e  n  l h l  s oo c n io t t  t o  f c e ld MOVC  s u t n T e    o dt n  a wi n c n it  cu e  n  i h h  o l x i t ci .  nr o hss c c f uny  i r e   m ok qec w s p vd勿 ot in t sut e yt l r e e a m o p mz g  t c r i i h r u e  o p en. e- ne sut e s  i e, s c l co f  le Dr tonc t c r w ds nd s p i f t i i icc t  u a e g p r o  a u i e n n  ie cnet h  e m dl d et, h  t  ss r s r onc wt o r  u s  cy wt t t yt e ts  g i t h o e i l i h h r a e  e m fi c ws  r e. eie y  ip vd f n a m o cT e c ot lr e or o e o l h oue f  c      cn o e cr Suc cds a t m dl o w i h mi o r l o ,  e  r f  e  l  s  h hw r re  I sf vom nw s  t se wt Snl e wi i S o e in et a s h id  h  pf e t n  E t n r , y ez i y i n y po.ad  u t b Moe i 6 1 t f co s u tn  r8 , s le y  dlm 0 w h  tn  li ad 0 n i a d  m S . i u i i ao n ) n mt i s u tn dw l dd  r i F G . e e  i e a i n i li ,  n ae ad  n  A  cr ah vd  m g  ao o o m n a n  P T o c e h l lt dsn  e o sf  hrvritn ret h eg tgt n  ad  efao ap s . e  a s o n a i i t  n i r t d  c e Te  r ot lr e  o ptl i C - w l h   mc cnoe cr i cm ab wt M S 1  l t h io rl o s  ie  h  5 e,  e e iec ad c i s e ot itcos  h h  e   h fcn n e un p d  h n r tn ow i ivr h , fi y  x tg  f  su i f c s  i e e e  y g ad  cngro t s t ifx l a ot s cu m et n t ofu f  y e s  ie l f e  l e h h e  i e h sm l b ,  h o d  t  e  e l  e e dm n o e bde mc cnoe apc i .  acm lh et e ad  m e d  r ot lr lao Te o ps n f  d io rl p itn h c im ots r otlr  s la n bstd i o eA Is  f mc cnoecn  e r g e eg t r C ad h io rl a e so a o  n  S n i t t s h ip m nssm eri . m l et e i g tn e yt n ao tK Y R S  ioot lr MC -1 3eep en Sfcr E WO D mc cn oe r r l ,  S5, -vl le  t o l i i o- e pRI C S[f i 原 创 性 声 明本人声明,     所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。论文主要是自己的研究所得, 除了已 注明的地方外,不包含其他人己经发表或 撰写过的 研究成果, 也不包含为获得中南大学或其他单位的学位或证书 而使用过的 材料。 我共同工作的同志对本研究所作的贡献, 在论文的 与 已 致谢语中作了说明。作者签名:血 工 币 莽日 : 2一 竺 期 } 年上月 盆日关于学位论文使用授权说明本人了      解中南大学有关保留、 使用学位论文的规定, 学校有权保留学位 即: 论文,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容, 可以采用复印、 或其他手段保存学位论文; 缩印 学校可根据国家或湖南省有关部 门的规定, 送交学位论文。 上规定中的 对以 任何一项, 本人表示同 并愿意提 意,供使用。作者签名: 攀 导师签名 二未 硕士学位论文第一章 绪论第一章 绪论1 课题的设计背景 . 1微控制器 ( io  tlr  )      Mc CnoeU i简称M U 也叫单片机, r o rl n , t C, 包括中央处理器CU er P c sg t 随 P ( na r ei Ui. 机存储器R MRno Ac s  o ) 只 C tl  s n) o n A ( dm  e M m r、 a cs e y 读存储器 R MRa Ol Mmr 、中断系统、定时器1 O ( d  y  o ) e n ey 记数器以及 U(p/ tt 电 内 线 主 部 111自1 6 生以 在 OIuO p) 路、 部总 等 要 件”19 n tuu口 23 9 年诞 来, 。 7工业自 动化、 仪器仪表、 家用电 信息和通信产品及军事装备等方面获得了 器、 极为 泛 应 ‘1 广 的用11 46 11 5从指令集上分类, U可分为CS 复杂指令集)      MC I C( 微控制器, n l 如Ie公司 t的M S 5 系列, I 精简指 集) C- 1 及RS C( 令 微控制器, io i公司的P 如mc cp rh I C 系列‘‘ 从机器的 又 ”” 。 字长 可分为4 8 位、 位、1位和3 位微处 6 2 理器. 其中8 位的单片 机应用得最为 广泛, 全部 占 微控制器的 将近6 : 目 成‘, 前依然有巨大的 1需求量。8      位微控制器中以Ie公司最早生产的MC -5 系列最为有名,该系列微 nl t S 1控制器应用时间长, 使用范围广泛, 相关的软硬资源非常丰富。 但是传统 MC - 1      S 5 系列微控制器速度慢,外接的时钟周期最多为 1M,而 2 且机 器周期 太高, 1 个时钟周 u川 , 低下,限 它的 达 2 期‘ ’ 效率 制了 应用范围. 其次,由 于M S 5 没硬件看门 在程序出 C- 1 狗, 现意外时如由 于外部干扰致使程 序“ 跑飞” 或者死 机等无 动 法自 进行复 影响系 稳定性‘1 此外,由 位, 统的 1. 2 于 MS 1 C -5 使用广泛, 用户众多, 很多嵌入式应用中往往嵌入 M S 1 C -5 微控制器 内 作为 核 控制豁1 但 普通的M S 5除了前 提 缺点 3 是 1 , C- 1 面 到的 外而且不可 裁减,影响了应用的灵活性。1 课题的设计目 . 2 标为了充分利用己      有的软件资源,同时提高速度和效率,满足高速嵌入式 I P集 需要‘ , 成的 i 本论文设计了 速的 控 E 高 微 制器软核, 执行M S 5 的 能 C - 1 所有指令, 时增加了 同 硬件看门 狗和软件复位功能。 为了方便应用, 功能和设置 尽可能 与传统的MC -5 相同,只要对以前的程序稍加改造即可运行.同时,为了满 S 1 硕士学位论文第一章 绪论足不同硬件平台实现及不同应用场合的需要 ,本微控制器软核的时钟频率可以 选择实现, 一些模块可以剪裁, 减少面积开销. 内核具体的功能及规格参照第二章的说明。1 课题的研究手段和方法 . 3本 题 用 件 述语 H L采用自 下‘ (o- on 的 计    使 硬 描 言V D 课 顶向 ' T d ) 设 方 S p w ' 法设计一个满足功能、速度要求的微控制器软核,使用 E A软件完成编码、仿 D真验证及使用 FG P A完成板上的硬件调试及验证。 其中软件平台是Xlx( i 赛灵 i n思) 公司的I 7 , S . 仿真软 E1 件M dS 6 d o lm  , e i . 综合软件是Snl P 8 。 0 ypf r . 硬 i o  y  0件平台是长沙科瑞特公司生产的 Cet sp 10 试验箱,核心模块 FG rae  c  0 o 0 PA是 Vre 2  v  0,一百万门 i x  c 1 t x2 0 0 规模( 1 6 11 .V D 语言简介 .1  L 3 HV D (e   h e n g t C u Hr a   cpo a a ,      rHg Se Ie ad c t  wrDs ii Lnu e H L  y i p d  re i i a e e rtn g g 超 V t r d 高速集成电路描述语言) 是由美国国防部在7 年代末和8 年代初提出的V S 0 0 HI C(e Hg Se Ie ad  u) Vr  h e ng t C ct 计划的 y i p d  re i i t r 产物, H I 计 V S 划的目 C 标是为下一代集成电路的生产制定一项新的描述方法. H L正是用来描述从抽象到具体级 VD别 件的 业 语言11 1 7 H L EE 标 即I E  1 6 硬 工 标准 78 9 年V D 成为I 的 准, E SD  11 8 . E E T 0 7-1 7 R 8 , 9 [ M 7 从而在世 8L ) 界范围内 广泛流行, 前H L 标准 是目 D 的 之一 ( 一 另 个是Vr g  ) el H Le i D o 与      使用电 路图描 述集成电 路相比 V D , H L具有明 优点‘102:  显的 1(11 () 92(1 1 V D 抽象能力强, HL 描述能力强, 可用于非常复杂的设计; 2 V D 语言可读 ()  L H性好,方便修改;()移植性强,可用于不同的E A工具;()易于管理,显 3 D 4 著缩短设计周期。.2  3 I核及其设计流程 .PI      P核就是具有知识产权的模块( I 核),P核设计是I设计的一个重要部分, C 己 经成为系 集成电 统级 路设计的主 要途径‘ ( ( 222 23代 11 从设计流程上看,      由于今天I P模块的集成规模己 经很大, 达到了系统的水平 1, AI 2 按照 SC设计方法学 2 要求 1 6 ‘的 需要完 行为( hv r 结构(t c r e , 成 B ai )、 e o Sr t e uu) 和物理( hscl Pyi )三个设计域的设计, a 因此这些模块/ 子系统也就在三个层次 上分9 软I(  t  固I( m  1 成为 P Sf I o P )、 P Fr I i P )和硬I ( r I ` P  d  } H P "'。 a )  硕十学位论文第一章 绪论图11基于IE P - S的I 软核的开发流程图(     Sfcr)I 1 )软核(otoe.P软核设计 投入最少, 只完成RL级的行为设计,以 T HL(adae cit n g g D Hr r Ds pi Lnu e w e r o a a )描述文本的 形式提交使 这个 D 用, HL描 述己 经经过仿真验证, 使用者可以用它综合出正确的门级网表。 P的优点是有 软I 最大的 便携性, 不受实现条件的限制, 同时也给后续设计留 有更大的创新空间, 使 用者根据单元库的条件可以 完成更具新意的结构设 缺点是对模块的预测性太 计; 低, 增加了 设计的 , 风险 使用者在后续的设计中仍有引 入差错的可能. (      Frcr)它介于软核和硬核两者之间, 2 )固核( i oe。 m 是完成了综合的功能块, 比 P有更大的设计深度, 经完成了门 软I 已 级综合、 时序仿真等设计 阶段, 级 以门 网表的形式提交使用; 只要用户与固I P使用同一个生产线的单元库,P的成功 I 率会比较高。 (      Hrcr) 硬I 3 )硬核( adoe。 P是I P模块的最深层次, 涉及广泛内 它也是 容, 最主要的形式。硬核的优点是易于实现, 可集成到单片系统设计, 且功能可 优化, 具有较小的面积, 易于大量生产; 缺点是 用户难以 修改, 灵活性少。 硕士学位论文第一章 绪论由上述可见,软核的开发工作量相对较少,      开发成本较低; 柔性大( 如可增 加特性或选择工艺);可移植性强, 容易从一个工艺向另一个工艺转移, 且性能可提高。由于软核的可移植性强,可以      在不同的平台上实现或者验证,其中高密度、 可编程FG是一个理想的验证和实现的平台‘ 。 PA 2 本课题选择在Xln 9 2 iix公司的FG平台来验证本微控制器内 PA 核。软核的设计流程 (      基于FG平台)如图11 PA -所示。1 .FG .3  A简介 3 PFG (e P r m b a Ar )     d g m alG t ry P AF l r a i o e e  即现场可编程门阵列, a 具有可编程可随 时修改设计、 发周期 风险小、 活、 开 短、 灵 成本低等 优点, 使用非常广 3 泛‘3 0FG P A既是实现 A I SC的平台,也可用于验证 A I。用 FG SC P A验证 I P核,可以 随时修改设计, 大大降低了成本, 减少了风险, 同时F G P A工艺的不断进步, 性能也不断的提高, 除了 极少数对速度、 功耗非常高的集成电路 ( 如当今主流的通用处理器) 一 可以 P A来 或者实 a 外, 般都 用FG 验证 现’ l l 一般而言, P A的      FG 基本结构由以 下几个部分构成‘1() 3:  可编程逻辑功能 2 1 模块 (ofu b Lg B c , B;  可编 Cngr l oi lkC ) () 程输入 模块 (r r m l i a e  c  s L 2 o 输出 P gm b oa e I uOt t  c , B ;  )可编程 内部互连资源 (  r m l n t uu B kI )  3 p/ p l sO  (  o P gm b ra e oI e onco, ) n r netn I tc i Po随着工艺的进步和应用系统的需求,一般在FG 还包含以      P A中 下可选资源:( )存储器资源 ( l k M 和 Sl t M) ( )数字时钟管理单元 ( 1 Bo R c A e cR e A .  2 分纫倍频、 数字延迟) () : 3 算术运算单元 ( 乘法器、 加法器等) ( ) ; 4 特殊功能模块( A .  MC I I C等硬 I核) 5 微处理器 ( IS A M系列等) P ;() NO ,  R 。 FG      P A内部有丰富的寄存器资源,适合同步设计,尤其是基于流水线的各种 电路,如数字信号处理电路FT 等. P F 11 本I核是基于全同步设计。 3 31 .RS .4  C体系结构简介 3 IRS (e c nr tn  Cm u r      ue Itco St  pt )即精简指令集计算机’1 I Rd d  u i e o e C  s 3,产生于 4 8 年代中期, 要思想是 0 其主 简化指令格式 址方式, 效率和性能(1相 和寻 提高 3。 5对CS(o px rtn Cm ur 复 I Cm l ItuoS opt) 杂指令集计 来说, I 有 C e n ei e s t  e即 算机 RS C具以下特点‘373 3(18 6311 () 大多数指令在单周期内完成。      1 () 采用 O DS R      L A / O E结构, 2 T 减少访问 存储器的 指令。0) 硬布线控制逻辑。      硕十学位论文第一章 绪论()      4 减少指令和寻址方式的种类。 ()固定的指令格式 。该特点可以使指令的译码逻辑电路简化 从而也使      5 控制部件的速度加快。() 通用寄存器和流水线的优化作用。      6 强调 () 注重译码的      7 优化。 为了充分提高系统的      性能, 本微控制器内核设计了等长的指令, 每条指令格 式固定 ( 具体格式见 2 . 3节所示) ,这样便于流水线实现,提高了系统的运行效率和工作频率。1 . 4论文的结构安排本论文的目      的将课题所设计的微控制器软核的过程及细节完整的记录下来, 希望能 给读者一个清晰的 轮廓。 本论文的结构安排如下:第一章,      绪论。 课题的来源及目 介绍 标,完成课题所需要的基本的 8 A语 D 言及工具、 一般的l设 p 计流程及验证实现工具 FG . PA 第二章,      微控制器的总体设计。 介绍设计的微控制器内核的规格、 性能、 接 口 等,同时 给出设计中的重要问题的 解决办法, 如中断、流水线相关及优化等。这一章给出设计的总体框架及解决设计中遇到的主要问题。第三章,      微控制器内 核的各模块的设计。 本章具体介绍各个模块的设计细节, 包括功能、 流程、 编码的关键细节、 综合的结果等。 本章是第二章的具体化, 也 是设计的具体化。 第四章,      微控制器内核的验证。 先介绍了验证策略, 然后分别给出具体的验 证策略及结果,给出了 板上验证的程序、步骤及结果。第五章,      总结, 总结了 课题所做的主要工作及创新点, 本课题有待改进 指出的地方。 硕士学位论文第二章 微控制器的总体设计第二章 微控制器的总体设计2, .微控制器的功能规格2. .1微控制器的基本功能 1本微控制器的主要功能是执行传统 MC -5 全部 1 条指令,      S 1 1 1 可根据需要 对系统改进为 1 位或更高 6 位的微控制器。因此如果不特殊指出, 基本设置如各 个寄存器的设置及用法兼容传统的MC 一5,包括: S 1 今 8 位的A U宽度。 L . 能执行 MC -5 的 11 S 1 1 条指令。 . 二组 1 位的计时器/ 6 计数器。. 一 组全双工 (u Dp x 的串 Fl ul ) 行口。 l  e 令 五个具有可设置的2 层中断优先权的中断源。. 四个 8 位的输入口,四个 8 位的输出口 ( 没有复用) 端口 . . 片内高低各 18 2 字节 R M,其中高 18 A 2 位为特殊功能寄存器,低 18 2 位为 用户寄存器。      . 七种寻址方式 ( 立即寻址,直接寻址,寄存器寻址,寄存器间接寻址,相对寻址,基址加变址寻址,位寻址)      。2. .2微控制器的新功能 1 除了        C -1 上面提到的M S 的基本功能外,本微控制器内 5 核还具有以下的功能:     令 1 级硬件堆栈: 6 堆栈深度为 1 级即可嵌套深度为 1, 6 6 可满足一般程序的要求,     6 宽为 1位即为P 值的位宽。 C 当执行中断操作或程序调用时, 堆栈指针自      动加 1 ,保存当前程序地址;中断返回或调用返回时,堆栈指针自 动减 1 I 读出保存的程序地址。      今 软件复位功能: 启用了P O C N寄存器中的P O .用作软件复位,只要向该 C N6位写入‘     即执行软件复位,复位后该位自 1 ’ 动清零。 令 硬件看门狗:为了避免程序“ 跑飞” 造成严重后果,单片机实际应用中往往加入外部看门狗电 使程序“ ”      路, 跑飞 时系统自 位91因 动复 3。 此本内 计了 9 核设 硬 硕士学位论文第二章 微控制器的总体设计件看门      狗,通过外部引脚控制空门狗是否启用及设置计数值,计数范围为266k 满足一般程序长度的要求。    4, 5- 今 时钟可 配置: 考虑到 微控制器应用到不同的 场合, 时钟频率有快有慢, 微控 制器在实      现的时候可人为指定为外界频率的 1 2 4 8 1,  6,  ,  ,  6 3,  1 ,  ,  2 4 2 8 倍。      通过降低时钟频率也可以降低系统的功耗。 此外, 今 模块可配置: 本微控制器吸取了公开源代码的 M 85 C01可配置模块的优点11 占 相当 资 乘法模块及除法      大的 源的 4, 用 0 模块可以 选择是否实现, 人为 在一些嵌入式系统中,      如果用不到微控制器的乘除法功能, 可在实现的时候取 消乘除法模块,这样大大降低系统的面积开销,从而节省了成本。     . 任意两个寄存器可以 直接传输数据,可以 使用这种指令:M V e l O d c, it rdrc2       i t0 e2 . 2微控制器系统结构2 . 传统M c 5 的系统结构 .1 2 S一 1传统M S 1 央控制器C U 程序存储器R M、     5 由中 C- P, O 数据存储器R M 算 A、 术逻辑运算单元A U L 、定时器 记数器T 、 / / 通用串 C 行接口U R 等组成。 AT 其中 中央控制器C U是控制器的核心,负责执行指令、中断处理等操作。 P P C U同过 一条总线与各 个模块通信, 各种数据分时 传送, 使得每个机器周期高 1 个时 达 2 钟周期, 低了 降 指令的 执行效 传统M S 5 的结 率。 C - 1 构框图 下’1 如 4. 1图2 t传统 MS 5 徽拉制器的系统结构 一 C一 12. .2微控制器系 2 统结构 在分析 MS5 微控制器系统结构的基础上,为了      -l C 尽可能提高 指令的执行效率和执行速度,微控制器内核采用以下方法: 硕士学位论文第二章 微控制器的总体设计()      1 提高存储器带宽。一个高速的微控制器内核的瓶颈往往在于存储器的带宽不够, 现代计算机体系结构采用多 种措施提高 存储器的 性能’, 4 微控制器 7 )也借鉴了这种做法, 如引入改进的哈佛体系结构, 将指令和数据分开存储, 存储 器带宽提高了一倍. 本微控制器通过提高指令的字长, 将操作码和操作数一次从RM 取出 (OC O中 MV 指令例外) 提高了 , 存储器带宽, 减少了访问RM O 的次数, 大 大提高了 系统的执行效率. 指令的设计见23 . 节。 ()采用流水线设计。      2 本内核的数据通路使用了 指令流水线结构,通过采 用流水线设计,在没有冲突的情况下每个时钟周期都可执行一条指令 (O 例 MW外,见 311 .. 的解决办法) 。微控制器的流水线设计具体参见 24 . 节。()      3 采用直连结构。内 核取消了 传统 MS 5 系列单片机的单一总线,采 C- 1 用直连结构, 各模块的数据传输使用单向专用数据线, 尤其在数据交换频繁的三 级流水线之间采用多条单向数据线相互连接, 各个外围模块与第三级流水线也采 用多条数据线直连,这样提高数据传输的并行度,从而加快了数据的传输。 内核的端口如图2 所示。      - 2P J( 0)  O 7:         ( 0 p 0 7: ) 0 P- I 07: 0)pt  ( 0) o 7:p J ( 0) 2  7:p J( 0         7: 3 7: )  p 0( 0) Z wt o . w 月t : d 日 7 ( 0) p -o( 0)                      3 7:心肠 口kI t -I  n o                 - d _0 - , 口t J nir so                                xderes 咭r 峨                        x J  . _ - tw t- doy _e0图 2 2顶层模块端 口图 -图2 中,左边是输入,右边是输出。各个端口说明如下: - 3p_p i2i3i 0il  _  :四个8 , , , _  p p 位输入口。 wdgcut t _on o :看门 狗计数值输入。 r x a  a dt i m a :外部R M输入数据。 A r dt i R M的指令或者数据输入。 o a s  m  a  Oc c :外部时钟源 。 lk o 硕士学位论文第二章 微控制器的总体设计io  n i t :外部中断0 . i l  n i t :外部中断 1 .e t 部复 re 外 位. s:rd  xi :串行输入。w d e: 狗 t  n 看门 使能, o g  控制是否启 看门 用 狗。 t i 计时器 计数器 0: e  / 输入0 . t: i 计时器 计数器输入 1 j / . p-  o 2 3  个 8 0o l  o 0 , , , :四 p p p 位输出 端口。 r xa r 外部R M的地址输出。 a  ̄  o m d : d Ar x to a 夕a :写入外部R M的8 m a  A 位数据。 r ar: o d e  m d o 程序地址输出。r x  e o 外部R M写使能。 a 一 r  : m w n  A r w o 用于 x r  控制串 d : 行模块输入输出 。 r o 行输出 ( x :串 d  模式。。 ) t 一:串 x   行输出。 do系统内部的数据流向如图23 - 所示。 ̄,口,卜     一  ̄ 一 州卜指令流 向控制信号流向         数据流向图23系 部模决及数据流向图 - 统内 系统结构框图如下: 硕十学位论文第二章 微控制器的总体设 计图2 4 一 系统结构框图由图可以看出,系统由以下部分组成:     ()  led 模块 : 是 水 第一 负 中 处 给出      一 ( 指 ) 也 流 线的 级, 责 断 理、 下 1 p e  取 ii f pn条指令的 地址,同时负责中断或者程序调 用时保存程序计数器( ) 值。 P 的 C ()  l e     e 执行 2 p en x 模块) ii ( p :也是 水线的第二级, 执行指 它包含 流 负责 令, 了算术逻辑运算单元.()  l e b     e   模块) 流水 第三级, 将执 3 p en w ( i is 回写 p : 线的 负责 行的结果 写入寄 存器中, 同时负责输出其他模块给出了地址的数据。 由图可以 看出, 有多条数据线 与其他模块直接相连。 这三个模块是系统的核心部分,      所有指令的执行、中断处理都由这三个模块 完成。 每个模块每个时钟周期执行一次操作, 三个模块构成流水线结构, 每个模 块为流水线的 一级。()  ( m c ‘      ie n计时器 计 模块) 与传统的M S 1 功能 4 T 即t o / C u / 数器 : C -5 的 和设置完全一样。() R      通用串行模块) 5 U T( A :与传统的M S 5 的 C - 1 功能和设置完全一样。() - G看门     O ( 狗模块) 本模块 6W D T : 给出系统的复 信号 钟信号。 位 和时 复位信号包括外部复位、 软件复位、 看门狗复位, 时钟信号即外部时钟的倍频, 范围 -气 根据实 为1 2 现的需要选取。在图中可以      看到, 各个模块之间有多条数据线直接相连, 尤其是有很多数据 输入输出的回写模块。 通过多条直连的数据线, 数据之间无需排队即可直接传输。 硕士学位论文第二章 微控制器的总体设计2 . 3微控制器指令格式设计传统M S 5 的 C - 1 指令宽度为8 长度为 1 字节, 位, 至3 格式如下:}操 作 码} {数,} 据 } 数z} 据图 2 5MS 5 的指令结构 一 C一 1其中,      每一个方框 代表一个存储空间即 一字节, 如果是单字节指令, 则数据 1 、数据2 不存在, 如果是二字节指令则数据2 不存在。 本微控制器内      核如果采用存储器的宽度为8 要在一个周期执行一条指令 位, 是不可 能的。因为传 统的M S 5 指令长度从 1 字节不等, C- 1 到3 对于三字节指 令读出 整条指令至少需 个时钟周期, 要3 严重影响了指令的 执行效率。 为此本微控制器设 指令长度统一为3      计的 字节2b, 前面第一字节为 4i其中 t 操 作码,第二、三字节为操作数。指令的结构图如下:图 2 6本微控制器的指令结构 一其中      微控制器的操作码与 M S 1 C -5 的操作码的功能完全一样, 助记符和二 进制表示也一样, 因此本内核的汇编程序与MC -1 S5 的汇编程序兼容。 数据 1 和 数据2 相当于 M S 5 指令的第二、 C- 1 第三字节。 这种指令结构等效为把 M S 1 C- 5 指令扩宽为3 字节, 如果M S 5 指令中数据 1 C- 1 、数据2 不存在时, 操作数置 为。 缺点显而易见: . 如果 M S 1 C -5 指令是单字节或者双字节指令时, 这种指令结构就会至少浪费一个字节。但这种做法确实值得尝试的,优点如下:( 良      D 好的兼容性。 只要把MC -5 的相关指令进行这样的 “ S 1 水平化” 改 造即可在本内核上执行, 改造工作不大。 这样充分利用了以 前的软件资源, 增加 使用的方便性。 ()      2 程序容量大。 如前面所述, 本内核的指令结构相当 于把M S 5 指令 C- 1 的水平化, 对于不是三字节的指令可能浪费存储器空间, 但是指令水平化后指令宽度扩大, 每条指令的只需一个R M地址 (C值变化一次) 而以 O P , 前指令需要1 个 R M 地址 (C值变化 1 次) -3 O P -3 ,因而在程序存储器深度不变的情况下 硕士学位论文第二章 微控制器的总体设计可以容纳更多的指令。()      存储器带宽。 3 增强了 由于每条指令只需一个R M地址, 而整条指令 O 因 可以一次读出, 这样相当于扩大了 存储器的带宽, 与采用哈佛结构将指令和数据 分别处于不同的存储空间从而扩大了存储器带宽相比有同样的作用。 这为高效率 高速度执行程序提供极大的好处。 ()      4 便于硬件实现。 由于每条指统一了指令长度和指令格式, 便于采用 RS I C 体系结构, 因而硬件实现上提供了 极大的便利: 简化了 硬件设计, 便于流水线实 现,从而可以 提高速度提升效率。2 . 4微控制器流水线设计2. .1三级流水线设计 4采用流水线 显著的 系统的吞吐率, 系 性能‘ ‘。      可以 提高 提高 统的 川 川 流水线的级数越多,每级的功能越简单,因而每级所需时间越少即流水线的频率越高. 但是流水线的级数过多,中间涉及的相关也越多, 流水线的调度变得极为复杂, 付出的硬件开销越大。 如果流水线过少, 每级的功能过于复杂有影响流水线频率的 提高。 核 本内 采用 3级流水线, 每级流 水线即 个模 即 ppl e , 一 块, i i jd en ppl e  ppl ew。 i i e,  ei -  各级功能如下: en x i n 6 ppl e (      d 简写F)根据RM i i f en D: O 送来的 指令与 助功能 辅 单元的 数据决定 下一条指令的地址, 同时负责检测中断。 一旦发生中断, 立即执行相应的中断指令。ppln_x 简写E) 执行各种操作,     e ( ieie X: 同时决定写 入寄存器或RM A 的数据及地址。ppln 6 简写W) 把执行级的结果数据根据写     w ( ieie  B: 使能信号写入特殊功能 寄存器中或执行级给出的地址的寄存器中: 采样各个中 断源数据及 10端口 / 数据:给出取指译码段和执行段所需的数据。指令 i2 +指令 i1 +指令 i一 一 一 」卜时间                    图2 7指令执行时空图 一 硕十学位论文第二章 微控制器的总体设计3      级流水线可以 较好解决流水线相关问题引起的“ 汽泡” 避免了复杂的流水 , 线调控。指令的执行时空图如图2 所示。图中同一周期内,指令 i -7 把结果写入寄 存器, 指令 il 正在执行操作, i2 +则 而 + 则在取指, 条指令同时不同阶段 3执行。2. .2微控制器流水线相关及解决办法 4流水线相关包括结构相关、      数据相关及控制相关‘ c ,, 5a 1  l 结构相关指不同      流水线段同时使用同 一功能单元。 在本内核设计中, 通过改 造指令的机器码结构和使用三段流水线避免了结构相关。 如果指令中包含了立即 数, 执行阶段用到的 数不必再访问RM A, 立即 O 和RM 如指令MV dt,dtl; O, r#aa6 p 如果指令包含了寄 存器寻址等其它寻址方式的数, 通过一个组合逻辑电 可以 路给 出数据的地址发送至流水线回写段, 回写段返回相应地址的数据。 具体的解决办 法见第三章的取指级 流水线模块ppln_  iei f 的设计。 ed 如果前      一条指令执行的结果还没有写入 RM 而取指令恰好要用到这个 RM A, A的数据, 这时就会发生数据相关。 本内核采用提前执行除法指令的方式,即在取得除法指令DVA 的时候即开始执行除 I B o t  法操作, 此时如果执行级执行的结果是 AC B AC B 就会发生数据相关. C 或 或 C,  , 解决办 法:检测到冲突时,取指模块 ppl e 暂停一 钟周期取指令。 i i 一d en 个时 如果前      一条指令的结果数据决定后一条指令的地址时,就会发生控制相关。MS 1 C -5 指令中的条件转移指令可能会出现这种情况。如:MV , IE T O R DRC ODN,  e JER,  0rl指令<>      2要用到 R O的数据决定是否跳转, 但是此时指令<> 1 还在执行阶段, 数据要在下个时钟上升沿 ( 即回写段的写入数据的时钟沿) 才写入寄存器R 中。 O 此时冲突标志位置1取指令模块ppln_  , i ief 暂停一个周期取指令, e d 避免出 错。2. .3微控制器相关检测 4 分析了      流水线相关的原因和解决办法后, 如何检测相关, 即从 11 1 条指令任 意两条组合 ( 2种组合) 即C , u 正确的发现相关才是系统设计的关键所在。 通过对 全部指令的第二、 三字节即数据 1 数据2 、 进行分析, 根据寄存器与立即数的关 系进行如下分类: 硕士学位论文第二章 微控制器的总体设计()数据 和数据2     1 1 都是立即数且与寄存器无关如LM,  ,  等。 JP NP RT O E ()数据 和数据2     1 2 是立即数, 但是指令操作码中 包含了寄存器如MV  OA ,#  a 此时指令中的数据2 也是立即数。 dt, a 为0 ()数据 是寄存器地址,数据 2     1 3 是立即数,如MV  et #  a O drc,  a i dt ()数据 和数据2     1 4 都是寄存器地址,如DN drc,  e JZ  et rl i e 其中 ()     指令不会涉及到相关, 1 对于 () () () 2,  ,  这些指令,进一步把 3 4 数据 1 和数据分为源数据、目 的数据两类。 源数据即指令执行时要用到的数据, 可能为立即数, 也可能为寄存器数据, 目的数据即执行结果要写入的寄存器地址。 取指级的源数据用一个 3 位的 1 源数据标志寄存器 sscf 来保存,如下表所 _  l r g _ 不 。表2 1源                          一 数据标志寄存器加 -3  2 -5  1     1  1     2    2 1   4  1  2  1  1           3  0  9  8      7 b t  D T   C  C  8  i     R  P             P A      R   O O " 1  R 盯6       5  4            3         2       1         0R                                6  R    4  R     2  R 5  R    3  R     I 的其中R- 7 一 用 缓    O R 为 般 途 存器, R,  l 间 地 A为A C B @ 0 @ 为 接 址, R C , 为B寄 存器, 进位标 C为 志位, PR为数据指针, i 直 DT b 为 接位地址, y 为 t bt e直接字节地址。 指令执行时, 将相应的寄存器所在的位置1 即可。 如指令的源数据中要用到A C寄存器, C 则将sscfg _  l 的第 1位置1 指令中的源数据为直 r_  0 ; 接数, 则将相应的地址 ( 位) 8 写入 s  _  的3- 3 scfg 0 2 位中。 r l目 数      的 据 志寄 的 据的目 数 标 存器s s f 的 构 设 方 _  l 结 和 置 法与ss f d _  t g _r l c  g相同,且都由硬件自 动完成。实际的中断检测过程如下:     ()时钟上升沿到来时取指级流水线取得指令, 译出当前指令的源数      1 立即 据, 时 同 记录当 前指令的目 数据, 上两步同时 的 以 进行, 将结果 写入sscfg _r_  l和s tf 中 js l ,其中s  _ 要保 _  g ds f tl g 存到下一个时 期. 钟周 ()      ssc g 2 将当前的 _r一l 与上条指令保存的 sdtfg _  i 进行比 s _  较,比较的 方法是将sscfg _  l 与s  _ 按寄存器对应比 如果 r_  dtfg s l 较, 其中一个或者多 个相同的寄存器标志位 都为 1或者位地址或字节地址相同则表 明有冲突 ,c fi _ 置1 否则c fitf 置0 代码如 o l tfg , n c l o lc l 。 n _  g 下:i sd fg3 on 3=_r_ ( ono  ad  r fg-111     t  ( dwt 2)sscfg2 dwt 2)  ssc  /"111 f( _s l 0  o  l 3  3 n _  l1")一检测是否同一字节地址          1 o s  fg2 ono  =_r_l( ono  n ssc  /  11      t  ( dwt 1)sscfg2 dwt 1 ad  r fg "111 r( d l 2  s 5 2  5 )  _ l 1 1")一检测是否是同一位地址          1 硕士学位论文第二章 微控制器的总体设计o 到 s 81 o t 0 n sscfg1 ono  =      j1( d no  ad  r_l( dwt 0/o)) r( t 4  w )  _ 4  )一检测特殊功能寄存器是否相同         te        hncnl t  < 1          ; ofi fg  ' c l =’es        lecnlcjI 二’ :          ' ofit g< 0e d  ;      n i f如果取指级的当前指令译出      下条指令的地址必须用到的源数据正好是执行 级指令的目的数据,由于执行级的数据 尚未写入,因此必须将冲突标志c fi _ 置 1 暂 o l tf n c l g , 停一个时 钟周期 指; 取指级指令为DVA 时, 取 或者 I B 它 e w  的 源数据为AC B 如果此时执行级指令的目 C.  , 的数据也为AC 或AC B C 或B C.  时, 将 标志cnl t l 置1 暂停一 冲突 ofi _  , cf g 个周期取指。2. .4流水线结构改进 4 由于三级流水线使用是同一个时钟且每级流水线每个周期处理一次对应的      操作,因而系统的最大时钟频率受制于流水线的最大时钟频率。三级流水线在 Snl P g 下综合后各级所需时钟周期如下: ypf r . i o0 y  取指段:10 s      .n 93 执行段: 4 Os      .n 41 回写段:5 9s     . n 5 因而 时钟周期至少是4. no 4 Os 1 可以      看出执行段的时间比取指段和回写段所需的时间总和还要多, 流水线很不均匀。 通过对执行流水线的关键路径进行分析, 流水线的除法操作占 用的时间 达 3n, 3s 严重限 系统的最高工作频率。改进的办法:将除法操作提前至取 制了指 即 指级取 指令是DV人 时, 段, 取 得的 I B 即向A U发出 法 L 除 操作信号, L AU的除法模块根据控制信号和输入的A C及B C 执行除法操作。 即实际上除法模块 成为取指级流水线的一个功能模块, 它的输出结果到执行级流水线。 但是基于模块功能 分的 便 综 划 方 及 合时Rs r S rg( 源复 可以 的 少面 e ue  i 资 用, 有效 减 积 oc h n a开销) 考虑, 的 微控制器内核设计时依然将除法模块放在A U中。这样除法在 L取指级开 始执行, 经过一个时 钟周期 DV  到达执行级流水线中, 后, I A B 此时只需选择 A U中的除法结果即可,这样除法实际上执行了两个时钟周期。如图 2 L-2所示的虚线即除法控制使能信号。经过这样的改进后,流水线最大时钟为 2. 5  2 0 n,比之前提高了 3 s 一倍以 上。这样改进后,      可能出现这样的情况,即取指级流水线取得 DV B指令后立 I A 硕士学位论文第二章 微控制器的总体设计即发出除法使能信号至 A U中开始执行除法,由于 A U为组合逻辑模块, L L 无 需等待时钟边沿立即执行。 除法操作的操作数为A C B 如果执行级中正在执 C .  ,行的指令的结果数据要写入A C C 或B C .  这样就会发生数据相关。 或A C B , 解决办法: 检测到冲突, 一旦 取指级模 ile  取指, 发出 块p en f暂停 pi d 否则 除法使能信号提前执行除法。2 . 5微控制器堆栈设计为满足流水线高吞吐率的      要求, 本微控制器设置了 硬件堆栈来自 动保存中断 或者程序调用时程序的地址。 堆栈的深度为 1 级, 6 堆栈的位宽为1 位。 6 当执行中断 ( 程序调用) 堆栈 前p+  时, 将当 c 1 值入栈然后 指针自 动增一, 中断返回时 将P 值出找且指针自 C 动减一 程序如下:- IO  F sILsO t F  (it  a u L r n  t ,先进后出) 一:v ad sad  uad s s e r s  opt rs a d e n u def _rp c s l bg i p :o sc ) n l o r e (k ei o i kvn n c = 今h      ad  1t n 取Iee ' t  l k ei r= 'hn          f  ' t (t 1 e s ) s- 0              p ;es            l ei e  n  tn            坟s r  1  s e=I  w h er ( )  p t; e  e ad s lh nxpad s                 (e t dr s a s < s d a -v p s t e + t e c  e ) m p =  a i s r n drs 一 a ee d                 ni f ,s < ss;                p    =  ped           ni 此ed       ni f ,ed csf _r np e i p ; r s  o o l op c sw e, r e,) n r e ( w n d s b i o ss r  e s  np e g i  ̄ e ' e     = )  f w n  t n ( r  1 h sis=5t n          fp 1)  ( h ess 伞 0              _p ;es            l ess - s+;              s  ep p 1 硕士学位论文第二章 微控制器的总体设计ed       ni 此e is e = 'hn lf r n 1  s( d _ )  t eip t     n 双 y)  s h es  < 1;          一p  5 s = es        l e,印< SA;          一 =  Ped       ni f ,es      l et叩 < s;            =  ped       ni f ,ed cs n p es r ; op css) i r e( b n o sp e gis Ot      n tp )  (= h e s dt < r ( )          p a =  1 ; ao  a 5 n tes      l es- a < r s 1      - a ( - ; p如t o  m p )ed       ni 北 ed  cs n poes r ;2 全同步设计 . 6本内核各个模块使用了全同步设计。      微控制器外部的复位信号必须保持两个 时钟周期才能被正确采样, 这样避免了外部毛刺输入引起系统复位, 提高了抗干 扰能力和可靠性。 微控制器内部各个模块的复位信号必须保持一个时钟周期等待时钟上升沿到来才能引起复位, 这样避免了内部毛刺传递引 起模块复 提高了 位, 抗干扰能力和稳定性。 在基于 VD      L的设计中, H 全同步的时序进程里面只有时钟信号,复位信号必须在时钟沿到来才能有效,如:poesck b i      l) gn rcs( e i (l'vn ad  -1)te          ck'' hn 一时钟上升沿到来 f  keet  l c ni( t )te-复位信号有效            f  '  hn- r 1 s '. ,... 复位处理              … ...一es              le 一复位信号无效… … 。.一正常处理              .. 硕士学位论文第二章 微控制器的总体设 计这样复位信号经过寄存器锁存后才输出,同步电路如图27      - 所示. 使用全同步设计可以方便合理的安排系统的时序,      同时全同步设计可以减少 输出 毛刺, 提高系统的稳定性’ 1 78 4 7其他信号- 州DQ组合逻辑电路   结果输出复位信号 r - s HD  t  Q时钟信号 e l k图 28同步电 - 路示愈图由于本课题设计的是一个软 I      P核,全同步设计可移植性非常好,可适应不同公司不同工艺库的芯片。 硕十学位论文第二章 微处理器内核模块的设计第三章 微控制器内核模块的设计在第二章介绍了 制器的功能、    微控 规格及系统结构, 给出了 解决关键问 题的 方法,本章详细介绍系统各个模块的设计.31  e e d( 指 . il e 取 级流水线)  p is pnf 模块设计三级流水线是系统的主要部分,而第一级流水线则是三级流水线的核心。      " ieief”中, ppln”表示流水线,f 是 “ec ad  oe”即 ppl _  n d "ieie d fth  dcdr n e 取指令并且译码。 第一级流水线主要实现以下几个功能: ()     C 及转换指令格式: 1 产生P 值以 每个时钟周期取得指令并且给出 下条指 令的地址, 满足系统流水处理指令的需要, 也就是程序计数器 (C 要每个时钟 P)周期给出下条指令的 1 位地址。 6同时为了      便于下级流水线执行, 对一些指令进行了 转换。 于本内核的指令 由 集是传统MS 1 C-5 指令集的格式的变形, 指令的功能完全一样。 因而指令的寻址 方式与MS5 兼容。 C-1 本内核对MS5 的7 C-1 种寻址方式解决办法如下: 立即      如M V  , a ,此时只需将当前的P 值加 1 寻址: O A# t da C 即可。 直接寻址:      如M V  , ic 于指令编码中 O A de ,由 rt 包含操作数的地址, 只需 向回写流 水线 ( 模块) 操作数的地址 DRC 即可 给出 IET 得到操作数, 将操作数写 入当前指令的第二个字节输出至执行流水线模块也就是相当于把当前的指令转 化为M V  #a , #aa 取得操作数。 O  A, t 其中 dt 即 da 所有直接寻址指令都是先取得操作数后再改变为立即寻址指令送往执行级     流水线模块。寄存器寻址: O AR,      如MV O 和直接寻址指令类似, ,  先取得寄存器的数据, 在 改变成立即寻址指令 送往下一级流水线。 寄存器寻址与立即 寻址在指令符号上有 区别, 在硬件实现上没有任何区别, 侮个RM A 的地址位数都是8 位且不重叠, , R (=  1 2 3 4 5 6 7 i  ,  ,  ,  )都是 R 中的一个,回写流水线模块根据送来 0 ,  ,  ,  ,  A M的地址给出相应的R 的数据。寄      址: MV  @1寄 器的内 操作 存器间接寻 如 O A R, 存 ,  容是 数的地址, 与直接寻址相比,首先要知道寄存器的数据,然后根据将这个数据送往回写流水线模块, 硕士学位论文第三章 微处理器内核模块的设计回写流水线模块根据对应的RM A 给出相应的数据. 解决办法:两次访问RM 第 A, 一次根据PW S 确定R 的数据,再将此数据作为地址发 i 送至回写流水线取得实际的数据。相对寻址: JP  ,      如 SM RL 指令中包含当时地址的偏移量, E 因而只需将 P ( C无 符号数) 十RL( E 有符号数)送往 RM O 即可得到下条指令的地址。 基址加变址寻址:如 MV AC+PR 这类指令本身没有包含执行所需的      OC  ADT, , 数据, 且执行数据不在RM 但是给出数据所在的 A 中, 地址, 只要将P+ PR A C DT+ 的数据送往 RM O 即可得到所需的操作数,下面有进一步的阐述。 位寻址:      EB 解决办法是 位所在的字节读出, 取得该字节的 如ST C , 将该 此时 方式与直接寻址一样, 其中先要根据指令的第二字节确定操作的数据的地址, 将 该地址送往回写流水线模块, 回写流水线根据地址给出相应的数据 ( 一个字节) .执行级根据指令只改写相应的位,在第二节里面将有介绍。()实现中断处理:      2 及时响应系统的中断; 口 为 存在高优先权的中断时必须 先执行,否则执行低优先权的中断,中断后能正确返回中断前的程序。 ()      3 实现堆栈功能:当 相应中断或者执行程序调用时,能正确保存当前的P 值,中断返回或者调用返回时能正确恢复保存的地址。 C()      4 正确处理MV 指令: OC 在本内核的指令中, OC MV 指令需要特殊处理, 因 为指令所需的操作数不在指令而在RM 需要再次访问RM O 中, O 得到操作数并更改 为立即寻址指令类型。 具体的解决办法: 使用两个周期译码。 遇到该类型指令时, 第一个周期程序计数器给出 地址@+PR ADT 或者@+C O 取操作数,同时本级 AP 至R M 流水线输出NP空指令) O( 给下一级流水线( 下一级流水线相当于暂停一个周期) 。 第二个时钟周期取得操作数后,当前的MV 指令转化为MV ,  aa OC O A #  指令, dt 其中的数据 dt aa即第二个周期取得的数据,这样本流水线在第二个周期向下级 流水线输出MV  # a O A dt,执行所需的数据包含在指令本身中。 ,  a ()冲突检测及处理:微处理器必须正确的检测冲突并且消除冲突。对于      5 条件判断指令, 第二章 由 所知, 本流水线遇到条件跳转指令时必须要知道前面的 指令是否与该条件有关。 本级流水线根据 cnl t 的值来判断是否需要暂 ofi J地 c 停. 具体的 解决办法见第二章的243 ... 本模块运行过程如下:      每一个内部时钟 ck l 上升沿到来后, 指令寄存器保存 当前的指令, 外部复位、 中断信号等输入并保存: 如果复位有效则进行复 本 位, 模块所有输出都置零; 如果上一条指令是NW, O 则给出数据所在的P 值取得数 C据:以上情况不存在时, 如果有中断输入,则进行中断处理: 如果当前正在执行高优先权的中断, 则输入的中断不予相应, 否则如果输入的是高优先权的中断且目前执行的是低优先权的中断处理的时候, 则暂停当前的低优先权中断, 进行高 硕士学位论文第三章 微处理器内核模块的设计优先权中断的 处理, 理完毕后再 处 处理低优先权, 如果当前没有中断处理则响应 当前的中断输入;以 上都不存在时, 如果检测到指令有冲突, 则暂停一个时钟取 指令, C值不 P 变化: 否则进行正常的指令译码,即译出 下一条指令的地址、 转 换指令格式 最后 等; 将指令及控制信号在下一个时钟上升沿到来之后稳定的输出 至下一级流水线模块p eiee 的寄存器输入端。 i l  ̄  p n x 本模块的执行流程如图31 -所示。指令及控制信号输出至p en e i le x p i-图 3 1p e  - 的 - i I ef 执行流 pi d n 程图模块的结构图如3 所示。模块综合后的框图如图3 所示。 - 3 - 2 取消所有综合优化,取消 U O口插入) : 综合结果需要的资源如下 (Rs r Ua Rprop en f e u e g eo f i le d o c s e  t  p is  r  e M pi tprx21 0 46 ap g a:  0 f 5- n o  cv 0 g 6 t 硕士学位论文第三章 微处理器内 核模块的设计R M/O uae  m r A R M  g sm a s u yD aP rR m (A 1X )1 ul    s  M  1  6 o a R t 6 D :  Bok m : o 4 (% l R s 1  0  ) c a f  2Map g  m r: pi Sm a n u yT t L T:  (%) o l  s57  a U 8 5的0文v ) . : 0W  A JP: - 目. u ) a 义1 b 口仁 5 ) 妇J 口功 如一 功 口 脚 . 口仍 J } J 目 」刀 刃7 n‘ 口 」口月〕 。们 翻 川J口功 洲比 - 幼屯门 Ac 口习)流 一n 沪口 幻叹 Jd由J 6 曰匆 喊1 刃〕比 a 口. J口勺 a Jn 幽 成肠 -细 归 目 们 ̄图32  ei _d                    - ppl ef 的综合后的顶层结构f i n l q综合后最小工作周期: 0 3 na 2. 2  2 sR 0M操作 数地址产生指今哲存至 p en x i le  p ie_冲 突到断译码及中断处理P C中断 i输入p en f i l e  pi dFL IO中 断来自p en ̄  ile pi w指令变换指令及控制输出幸至p e e x il - pi e n图33  ei _ 内 - ppl ef 部结构图 i n d2 2 硕十学位论文第三章 微处理器内 核模块的设计3  pen一x( 行级流水 模块的设计 . il   执 2 pi e e 线)p en e      要完成的 ile x p i-  功能是: 根据指令发出操作控制信号至 A U模块, L 接 收A U模块运算结果, L 将指令、 写入地址、写入数据以及写使能信号至回写级模块。p e e  实   n e 主要 现如下功能: il x pi()      1 译码及控制: 根据相应的指令向A U模块发出控制信号执行相应的操 L作。()      2 取得操作数: 通过采用直连结构, C .  A C B等特殊功能寄存器的数据直 输 到 模 ; 些 接寻 的 令 如M V i# t 取 要 入 接 出 本 块 一 间 址 指 , O @ , a 得 写 的 R d 等 aR M的 据; A 数 指令M V A R等需从 O X , i @ 外部R M取 A 得数据。()      3 将结果及对应的地址输出: L 将A U执行的结果以及要写入的地址写入 到R M中。 于不同的 A 由 指令执行的结果写入的本模块最多同时要写入三个结果, 如执行DV指令时,要改写的寄存器为A C P W及B寄存器. I C ,  S()      4 将中断位清零:中断响应后必须清除相应的中断标志, 本级流水线根 据上一级流水线给出的中断使能将相应的中断标志清零.流水线的内部结构框图如图3      一所示。图34 ple 的内 - p en f i i d 部结构框图电路实际运行的      过程如下:在每一个内 部时钟 e 的上升沿到来后,如果是 l k 复位则将所有的寄 存器置零并将所有的 输出置零, 否则寄存器将当 前的指令及控 制信号保存: 如果中断使能信号有效, 则进行中断处理, 即将相应的中断位清零;没有中断处理时,如果当前指令要用到 A U操作,则向 A U发出相应的操作 L L 硕士学位论文第三章 微处理器内核模块的设计命令及提供所需的操作数;如果不需要A U处理,如传送类指令,则进行一般 L 处理;最后写入控制器根据当前指令,将操作结果、写入地址、写入使能输出, 下一个时钟周期上升沿到来之前稳定的输出到下一级流水线寄存器输入端。 执行 级流水线的流程图如图3 所示。 - 5I 来自p e e d                         il s  pie nf指令寄存器 是rt ? s =1 至p enw  ile b p ie w复位处理取址】 地取操作数}    是是否中断? 否中断处理操作数     来自p en   ile 6 p i一 w是是否需要 A U处 L否A U控制模块 L控制信号至 AL U地址数据   一般处理来自p en w i le  pi-*  A L N U结 界 A LU写入控制器操作数至 AL U至p e e   il s6 pie nw图35 enex - p lee 的执行流程图 i is  p本模块综合后的顶层模块图如图3 所示。 - 6 综合后的资源占 用情况如下 ( 取消所有优化,取消U 插入) O口 : R s r Ua Rpr o i le       s e  o f p en e e u e  g e t  p i x oc r R M/O u g smm r      M  ae  a A R s u y26 1  (O 5X1     Ms  M26 )4 5x R O R : M pi Sm a :     u m r ap g  y nTt L s55       T:  ( ) o l U 4 5 a % 模块综合后的最小时钟周期:1. 9  0 4 no 1 s2 4 硕士学位论文第三章 微处理器内核模块的设计.“ -“了 O )aC C O{ 0 7: )al _OS u w 17 m (al u r t sl a_i7: ( 0)a -  = o : l at  口 仍口1 u c d O( 5: m t  0)二 u r l l7- ) sf b ( Odpt_1 5 O r (1 ) f J Oat_IJ3 O) d  r ( I _Bn_I3 仍 nt ( 口., 1 7  丫 ( O) r m - da a_城1: ar t 0) l a d 0 - .一」7: ( 0)al 0-Da a  ( 0 t 0 7: )曰l 0_Oa b 0( 0) t 7:.‘ u一p: w  O( 7旧)a7-I ( nst_0( 0) r 7:r am x _a口dr _o( t5. ) 0r am - dat a_o( 0) 7: r ap addr O( 0) c  7:.PJ ( 0) T-r _addr ao _a口 : ) 0t a d - o . ,  oM Wt on  c 47. ) 0r ap dat b 0( 0 7: )rp a -da a  71 ) t O{ 0m ..-.( 0 3: )r am - 勺 , .n . 勺    - -T oo  Le v el  .m f 01 S a图 36  ei -x - ppl ee 综合后的模块接口图 i n3  p en w 回写 . i l b( 级流水 模块的 3 p i e  线) 设计p en一 b      模块负 i le pi   w 责把执行级的结果写入 R M,同时输出 A 指定地址 ( 来自 前面两级流水线) A 数据。本模块的主要功能及实现办法如下: 的R M的()写入各个模块的输入数据:由于执行级的结果可能有多      1 个,如 DV I, M L U 指令时必须写入A C B S 寄存器, C , 及PW 指令A D S B D ,U B等要改写A C C,PW 寄存器,因此必 S  须对存储器 进行特别的设计才能满足同时写入多 个数据的要求。同时也要写入其他模块的输入数据,如串行口 接受到的数据。 ()      2 输出请求的数据:由于取指级流水线和执行级流水线都需要从回写级流水线取得操作所需的数据, 而且可能同时向回写级取不同R M地址的数据, A 单个R M是不能同 A 时被访问的,因而也需对存储器进行特别设计。 ()      断 3 实时刷新中 源:当 外部中断 io il中断或者串 有了 n ,  t n t 行口 接收或者发送结束中断标志时,必须马上改写相应的中断标志位。 硕士学位论文第三章 微处理器内 核模块的设 计可见 p e e      n w 模块的 il b pi 关键是要设计出 满 时 个数 能 足同 有多 据输入 ( 其中最多有一个是用低 1 字节的R M, 2 8 A 其他的是特殊功能寄 存器即高 1 字节的 2 8 R M)多个数据输出 ( A 其中最多有两个是低 1 字节的R M,其他的是高1 2 8 A 2 8字节的特殊功能寄存器) 解决办法: .写 伸                      入 能 写 地 入 址 写 数 入 据 来自p en e ile  pi x至 A U等 LA C专用数据线 C图 37回写级模块组读写结构框图 -()对于高 2 字节 R M。特殊功能寄存器尤其是 A C P W 寄存器输      18 1 A C .  S入输出 非常频繁,而且数目 不是很多 ( 3 个,与M S 1 共 1 C - 相同) 5 采用直连结构,输入无需确定地址直接写入,输出也无需先确定地址直接与多个模块相连。 从FG P A的硬件层次来说, 这些寄存器不是基于给定地址访问的b c R M, l k  而 o A 是普通的单个 8 位寄存器( 为了满足扇出数的要求会同一个寄存器要复制多个) .()对于低 2 字节 R M。在 F G      18 2 A P A中一般较大的R M 都是调用片上己 A有的R M块,基于FG A P A的自 动综合的R M块最多能同 A 时写入或者读出一个指定地址的 R M 的数据,通过对 11 A 1 条指令的分析,传统的 M S 1 C -5 指令遇到中 者程序调 断或 用时必须写入P 值到 ( ) ( + ) 至少需要两 C的 S及 s 1 中, P p 个时钟周期才能写入. 核通过采用硬件堆栈自 本内 动保存 P 值避免了这个问题, C写入时最多有一个指定地址的R M值,不违背 R M块的写入限制。输出指定 A A的数 据时, 取指级 流水线 (i le d p en f和执行级流水线 (p i e 可能同 p i-  ) p e e  il x n ) 时请 硕十学位论文第三章 微处理器内核模块的设 计求指定地址的R M的数据。 A 通过复用 R M块,即 A 使用两个 1 字节的 R M 2 8 A块, 它们有相同的写入电路以便R M块内数据相同, A 不同的读出电路分别对应取指级流水线及执行级流水线的输出。 .这样R M写入数据时可以      A 写入低 1 字节 R M一个字节,高 18 2 8 A 2 字节多个数据,读出 数据时 读出2 可以 个低 1 字节的数据, 2 8 多个高 1 字节的数据。 2 8与M S 1 C - 只能同时读 写入一字节相比较, 5 入/ 这种结构可以 显著的提高R M的 A 输入输出带宽,解决了 流水线同时读出 写入多个数据的关键问题。 / 回写级模块结构框图如图3 所示。      - 7模块综合后的资源占      用情况 ( 取消所有优化且不插入v 0口) : Rsre gRpr  i lew        eo f p en   e u Ua o c s e  t o p i一 b r R M/O uae  m r         m a A R M  g s s u yD aPrRm R M1X D :        (A 6 I )1 ul    s  o a t 6DaPr  s  4 I)3       R M6X D:  ul  Rm (A o a t 2 M pi Sm r       a : ap g  m y n uTt L T:  (         %) o l U s8 1  a 3 8其中R M XD使用了 3 个, 5 字节,      4 I A6 2 共26 是因为 1 字节的R M复用 2 8 A了一次的缘故。模块的最小时钟周期:5 8 no      . 8  5 s3 A U( . L 算术逻辑单元)的设计 4 算术      A U根据执行级流水线的 逻辑单元 L 控制信号及输入数据执行相应的操 作并给出 操作的结果。 本模块是异步电路, 主要的操作包含算术操作如加减乘除 和逻辑操作如与或非以 及十进制调整、 位操作等。 模块的内 部结构图如图3 所 - 8不 .部分功能模块简要介绍如下:     ()      1 加减法模块:既可做加法也可做减法,由控制信号决定,同时给出加 减法的结果,改写A .  C C Y标志。源程序如下:      p c sep,ob is e          c ,ads ) r e ( oa p, n d u o ss  s  s  s b vrb va b n ge( dw t )            1  n 0 aal -, : sndl  o  i e  v  i u o ; vrb vr u: l i  c r 1  n )             ( dw t0 aal _ stt o cv t I  o  i e  l d  一eo e s g o ;bg          ei n va dw t 1=ni e( o ( o n )              a dw t0 ; ( o n ) us nd p 3  o  4  o  : g s  ) 硕士学位论文第三章 微处理器内核模块的设计v  dw t6=n ge( a dw t4 ; a o n ) usnd 一p 6  n ) ( 8  o : i s ( o o  o )v  1) a0 (: _ 7; = 叩成 s )v  dw t1=nge s p(dw t0 ; b o n ) usnd 一 b o n ) ( 4  o  i (   3  o  : o ) vb dw t6=ni e( ob dw t4 ; ( o n ) us nd p( o n ) 8  o  : g s  6  o  )v 叹1) _ 0i s  d  b ' h n f  a s =1 te d uva )       ; _( : 0 =V va )       ; _( : 5 =F va )'1       ' ( :  9 ; va1) ;      0 ( : 1=vb ) c ; -( : i 0= n s v  ) 0 b :; ( = 5v b )  少( * 9. = V;vb1 :0 () ; 1= vr u: nge va us n ( b _ sl usnd _) ni e v ) e t i ( + g d_; =- up t - tu osa du d sb片t v  u() o r l5; t e t ss  s c(<vr u( ad b  1 = e l川; d u y) st-ub - b ses l eva )      ; _( : 0= V va ) ;      ( :I 5 =' ' va )      ; _( =  9 1 va = ;      ' ( 1 川:Vb ) c ; -( =ei 0 s  sn v  ) ' b :1 ( =; 5 vb ) ; ( :1 9- vb - ; -( 0 川vr u = ni e( aus ndvb; _e l us nd _) ni e( ) s t  g v - g- up t      - tu os  s 一 ( < j st ;      y ) Y e l ) adu   0 = u( d bc 5 sadu.  )=ovr u(1     c( <nt  sl1) edsb y1   e t ;ed  ni f- u pt - t  o us  sb  <( r u( ad r u(1 o (o vr u( )  ( t ad o =v e l )  v e l1) r  t  sl ) ad o d u v  _ s t n _ st )  ( 9 n e t 9 n n2 8 硕七学位论文 v  u(1) e t ) r l1); s第三章 微处理器内核模块的设计s ds -  )               st0; 一 d brt        u( ) a   u s7 l ( <vr l1 =- e s  s  ̄  dwt4 =  st o n )              u(dw t6 ad brt o n ) r l d u s( l 6  o  < e 8  o  ; ,叫d 忆rt dw t0             e l dw t 1 一 s s ( o n 卜别 r u( o n ) u l 3  o  st 4  o  ;ed cs     s n poe ; r其中    号s ,o 表 输入的 数, c () 示 助 标 位 信 o sp 示 p_b a_ 操作 s  0 表 辅 进位 志 , i n s  1 进位标志位。 c(表示 i) n除法使能来自pe e  il f pi d n加、 减法模块 乘 法控制信号译 码 控 制棋块来自p en e i le  pi结果除 法棋块输出选择结果输出 至 p en e i le  pi x十进制输入数据调整来自pene  i lee pis x位 操作逻辑操 作图38  结构框图 - AU L()      2 乘法模块:乘法运算所有的综合工具都可自 动综合且自 动综合的乘法器速度最快。图 39综合工具 自 - 动综合的乘法模块()除法模块:系统无法自 3 动综合,为了尽可能提高速度,设计了硬件除 硕士学位论文第三章 微处理器内核模块的设计法器。源代码如下: p csd n一ds e      dd v r) r e( o sv i o i , s vrb vrnrni e 1 o n )           ( dw t0 aal _r dus d 5  o  i e  n : g n ; vrb v p n ge(dw t )            o n 0 aal t : s nd i e  u i 7  o  m ;bg          ei nvrnrus e " 00 0&d ne;            " v di _ d=ng d0 00 m : i (0 0 n d s  )f i  t8             o i 1  l p r  o  o n  ovr nr 5  n 1:vn nr dw t0 ;            _ nd(4  no  _m d 1 dw t ) ( o o  = 1 o )i t l i vc r_ nr 5  n ) vo t                8 > ds i  n f  o c e o vr d 1 dw t ) s g _ t( m ( o o = d  r  h e vtp vrnr 5  n 8us e( s i                   ; m : _ d 1dw t ) ni d v r  = m ( o o  g d o ) - n vr nr vtp _ nr dw t1&' ;                    m d: _ &  m d 7  n ) 1 = m vr ( o o  ,es                      levrnr yrnr5  n 1&'                  _ d=- d 1dw t ) 0 m : m ( o o  ;ed                   ni f ; ed  p              nl ; o oqi o=t l i vc r r d7  o            _ nr d-t0 ; u t  s_ geeov m ( o n < do c   ( t ) )n nr  s ‘ g -et( rn r 5  n )            r_nr ( dw t8 ; nd o=t   i vc v d 1 o o  < dl c o o )          ed cs n p es r ; o其中dd r     vs i o 表示被除 数数, vn i ddd  表示除 qt 表示商, nd表示 数, ut n nnr余数。除法模块综合后需要的最小时钟周期为: 3 0 no      3. 0  6 s以上的加减法、除法及乘法的操作数都是无符号数。     3 t cut 计时 数器模块) 设计 . i on ( 附 5  m  的除了      每个时钟周期计时计数一次与与传统 M S 1的计时/ C -5 计数器有区别 外, 其他所用的 功能和设置完全兼容, 包括: ()两组 6     1 位计时器计数器。 1 ()      2 每组计时器计数器4 种工作方式:模式0 ,模式 1 模式2 模式3 , , e    ()计时1 3 计数器控制寄存器T O ,T D设置于 MC -5 兼容。 C N MO S 1模块的      流 执行的 程如图3 0 - 所示。 1模块的执行流程解释如下:在每一个内部时钟 c 的上升沿到来后,如果复      l k 位有效则进行复位, 所有寄存器及输出信号置零: 否则, 根据控制寄存器T O M D 及T O C N的设置,在状态机的控制下进行相应的处理。其中T D决定是计时 MO / 计数器的工作模式等;T O C N用于控制计时/ 计数器的溢出、激活等。 M D TO, TO C N与MC -1 S5 设置完全兼容。模块综合后的顶层模块图如图 31 所示。 -1 硕十学位论文第二章 微处理器内核模块的设计rt  s l ?Y N一来自p e e b il _ pi w n爵处理T O 1 F ()T O( ) L 1T O( ) H 1. -L - 二 ---至p en - ile  pi b图 31 iecut -0  m-on 模块的执行流程图  tt h0- ( 0) 7:t hO 0( 0) 7.t 一 ‘ O) h, 」 7t0- ( 0 ) i 7.t I- ( : i  7 0)t 0 ( 0) ht  7:t .0 i 7: - - ( 0) vr i }  t ( 0) - t0_ .( O) ) 了Cl k, O  M _ j j, , J ltrs tt '0 ( 0) l1  7:t con  r 1 t 0  t con一t '一i   1    rt 0_    i t  I - w t an- 一   廿 1e  s0 廿Os  eo图 31 cutt e -1  n-i 综合后的模块接口图 o m3 ur ( . a 通用串行接 口模块)的设计 6  t本模块的功能和设置与 MC -5 基本兼容,包括四种工作模式。编码实现 S 13 1 硕士学位论文第三章 微处理器内核模块的设计的基本过程如下:ree r re ( )一 行 块的 收 程, 步 计     pcs  串 模 接 进 全同 设 e i-o o se cv p :  l kis '  n 一 步复位          f  1h r= '  t t e 同一                        复位处理ee       不 在 位时 l s 一存 复 ce  d s 一 作 式 择, 特 存 设           选 来自 殊寄 器的 置 a  o  i 工 模 s m e we 1 "  一                hn  y 接收模式。 1 0 0一                              接收模式0状态机w e "l                  hn " 一 0  接收模式 1 一                              接收模式 1 状态机we " "  一                hn  y 接收模式2 1 0 一                              接收模式2状态机 we "1y 一                hn  1 "  接收模式3,                              接收模式3状态机w e oh r=                      h n  es  t >nl                    ul ; e cs;                d n ae 翻di          此ed csr e ep ;     s  i -r np e e v o r o c以上是接收模块的编程,      发送模块的编程类似。 模块综合后图如图31 所示。 - 3su (0 su 0 : bl 7 )  bl ( 0 勺 :   性 7 )s a j 70 c n (:)cIk 滋s o (刀 c几o7 )侧 一. 。 一rd o xtd 0 x图 31 ur 综合后的模块接 口图 -2  t a 硕士学位论文第三章 微处理器内 核模块的设计3 w-o 看门狗)的设计 . t g( 7  d本模块的      主要功能 确定系统的时钟频率, 是 提供复 位信号。 本模块只有两 个 输出 信号, l r, 即c ,  k s t 为了      种频率的 适应多 外部时钟, 核可以 内 指定运行在外部时钟频率2(= , 0  0 n 1 2 3 4 5 6 7 倍频率上。 ,  ,  ,  ) ,  ,  ,  如果外部系统的频率无法改变且超出了内 核 运行的最大频率( 核在FG 本内 P A板实现时就遇到这种情况, 试验箱的时钟频率 固定为5m, 0 超过了内 核可以 达到的最高频率) 这时可修改内 , 部时钟频率为 外 部的 1 " / 倍。 2图 31 -3看门的内部结构图为了      方便应用, 本模块内部设计了一个看门 狗。使用看门 狗时, 先往特殊功 能寄存器c n , n 写入要计时的数值, ot c t u0 o l u 然后设置P O . 1 然后看门狗 C N7 , =开始计数, 如果计数 值还没到设置 发出 信号 w一o c=1 看门 值时 清零 t g  , 狗的   l d r计数值变为0 看门 , 狗重新计数, 否则, 看门狗计数到设定值时发出复位信号使 其他模块复 看门 程序如下: 位。 狗的p c s一 k en      l b i r e (  )  o ss c g is l v t s = h              双e  e ad l 均t n sk n n e c' e k ei r o' h                位, 部软 位信号 f s= e ( t  s  玛tn 一 外部复位信号能复 内 件复 不影响 s o r< '                  w gs = ; t -t  d 0cut  o < (hry ' ;                      on wdg  o e t =  s 0 t ' )es                      l ei -  gc- 'hn                      t wd _l ' t ( t s o r 1  )  e s  o r < '                          wdg  =0 t s t  ;cut  o < (hr- ' ;                          on wdg  o e t _  s  0 t ) 硕士学位论文es                  l e第三章 微处理器内核模块的设计i -  ge=)                 f wd _n' t n ( t s o 1h e i on wdg1dw t8 s o cut d                      f ut o(5  n ) wdg  n a ( c t o o  t o = n c nwdg dwt0 ”                    o t o( on ) 川川I  e一 置值相等 u t 7  o  - I  n与设 "t )  h s o_t I  狗复位                        wdgr < '一 t s

我要回帖

更多关于 域控制器硬件要求 的文章

 

随机推荐