三段式状态机.pptVIP

  1. 1、本文档共96页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三段式状态机.ppt

状态机的优势: 数字秒表的要求及工作原理 要求:用VHDL语言设计数字秒表; 计时单位:1秒;(即每秒计时1次) 计时范围:60秒; 显示方式:使用PLD实验板上的8个LED进行显示; 用逻辑电路控制8个LED灯,左边4个代表秒表计数的十位,右边4个代表秒表计数的个位,在脉冲信号CP的作用下,间接显示秒表的BCD数值; LED灯表示数字秒表的状态示意图: 1、分频器设计(用VHDL语言描述) CP由实验板上的10MHz有源晶振产生(长方形的“铁块”);从PLD器件的专用时钟引脚Pin12输入到器件内部(在QuartusII下进行引脚锁定), 为计数器提供时钟信号; 由于实验板上所带的连续脉冲CP的频率为10MHz;因此,需要为秒表的计数器设计分频器,将10MHz的连续脉冲分频,得到秒脉冲; 再由秒脉冲作为秒表计数器的计数频率。 本质上就是用VHDL语言设计模值计数器。 2、计数器设计(用VHDL语言描述) 直接的60进制计数器所对应的是二进制数值,不便于显示; 因此,可将秒表看做由个位为10进制的计数器和十位为6进制的计数器进行级联构成,这种计数器也称为BCD计数器; 采用VHDL分别描述10进制计数器和6进制计数器,当计数值为59时,若再来一个时钟脉冲,计数器回到初值0重新计数。 也可以直接描述60进制计数器,然后除10,得到的商为十位,余数为个位。 采用双进程描述的带分频60进制计数器 采用双进程描述的带分频60进制计数器(续) 设计要求如下: (1)总线结构:数据总线位数8位、地址总线3位; (2)存储器:存储容量5×8位; (3)操作控制器:实现指令操作码所需的操作控制信号; (4)运算器:一个累加器,实现加法操作; (5)指令系统规模:3条指令。 — 8位模型计算机VHDL的设计 13.6 数字系统设计举例 13.6.1 设计任务及方案构思 图13-1 模型计算机结构框图 图13-14 模型计算机系统顶层原理图 PC: 程序计数器模块 MAR: 地址寄存器 ROM: 存储器 DR: 数据寄存器 控制信号共有9个,具体是: 程序计数器PC的计数控制信号PCI;地址寄存器MAR的寄存命令信号ARI;数据寄存器DR的寄存命令信号DRI;数据寄存器DR的输出控制信号DRO;累加器A的输人命令信号AI;累加器A的输出控制信号AO;ALU的加法运算控制信号SUMI;ALU的输出控制信号SUMO; 指令寄存器IR的寄存命令信号IRI。 IR: 指令寄存器+译码器 COUNTER: 节拍发生器 CTRL:控制器 1. 算术逻辑单元(ALU)的VHDL源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity alu is port(ac,dr:in std_logic_vector(7 downto 0); --累加器ac,数据寄存器dr sumi:std_logic; --加法运算控制信号sumi sumo:std_logic; --输出控制信号sumo alu_out:out std_logic_vector(7 downto 0) ); --运算结果 end alu; architecture a of alu is signal alu_temp:std_logic_vector(7 downto 0); begin alu_temp=ac+dr when sumi=0; alu_out=alu_temp when sumo=0 else ZZZZZZZZ; end a; 13.6.3 次级模块电路的分析及VHDL实现 图13-15 算术逻辑单元时序仿真波形图 2.累加器模块(ACC)的VHDL源程序 library ieee; use ieee.std_logic_1164.all; entity acc is port(data_in:in std_logic_vector(7 downto 0); --数据输入 ai:in std_logic; --累加器a的输入命令信号ai ao:in std_logic; --累加器a的输出控制信号ao clk:in std_logic; --时钟频率输入 data_out:out s

文档评论(0)

wendang_12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档