第七讲_VHDL的混合输入法.pptVIP

  1. 1、本文档共14页,可阅读全部内容。
  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文档。上传文档
查看更多
第七讲 VHDL硬件描述语言_5 教学课时:2学时 教学内容:原理图和VHDL混合输入法设计 (1)同步计数器的设计 (2)7段显示译码器的设计 (3)顶层实体的设计 1、原理图与VHDL混合输入法设计 以具体实例进行讲解。 要求: (1)先设计一个1位十进制数的计数显示译码电路。其中,计数器、七段显示译码电路由VHDL程序描述。 (2)在原理图中调用2个1位十进制数计数器,2个七段显示译码电路来实现2位十进制的计数显示,以完成整个电路的设计,并用Quartus II进行功能仿真。 一、同步计数器的设计。 所谓同步计数器,就是在时钟脉冲的控制下,构成计数器的各触发器状态同时发生变化的那一类计数器。 异步复位:是指复位信号一有效,计数器的计数值清0,进位输出清0. 同步复位:是指复位信号有效,且时钟脉冲正是上升沿(或下降沿)时,计数器的计数值和进位输出清0. 思考题 设计4位右移移位寄存器。要求用VHDL文本输入设计1位D触发器,再用原理图方式设计4位右移移位寄存器,并仿真验证。 * * 例1:设计一个具有异步复位的1位十进制计数器,VHDL程序为counter_1.vhd,并使用Quartus II进行仿真。 设计思路: (1)确定端口引脚: clk:时钟信号 rst:复位信号 q:计数值 cout:计数满 (2)工作流程: rst=1?若是,将q,cout清零,若否,则判断是否clk上升沿,若是,则计数。计数时判断是否计到9,若是,则q清零,cout置1;若否,则计数值加1,cout清零. library ieee; use ieee.std_logic_1164.all; entity counter_1 is port(clk,rst:in std_logic; q:out integer range 0 to 9; cout:out std_logic); end entity; architecture one of counter_1 is begin process(clk,rst) variable y:integer range 0 to 9; begin if rst='1' then y:=0; cout<='0'; elsif clk'event and clk='1' then if y=9 then y:=0; cout<='1'; else y:=y+1; cout<=‘0’; end if; end if; q<=y; end process; end one; 异步复位的1位十进制计数器的仿真时序图 二、七段显示译码器的设计 七段显示译码器是将1位十进制数码译成数码管对应的a-g七段显示信号。它有两种连接方式,共阴极和共阳极连接。 设采用共阴极连接,则‘1’使对应的二极管亮,‘0’使对应的二极管灭。 例2:设计七段显示译码器的VHDL程序。 07H 7 7FH 8 6FH 7DH 6DH 66H 4FH 5BH 06H 3FH 9 6 5 4 3 2 1 0 七段码表: 七段显示译码器的设计思路: (1)确定端口引脚 d:输入的1位十进制数 y:输出的七段码值 (2)程序编写,可考虑用case 语句对输出y赋值。 library ieee; use ieee.std_logic_1164.all; entity sec7 is port(d:in integer range 0 to 15; y:out std_logic_vector(6 downto 0)); end entity; architecture one of sec7 is begin process(d) begin case d is when 0 =>y<="0111111"; when 1 =>y<="0000110"; when 2 =>y<="1011011"; when 3 =>y<="1001111"; when 4 =>y<="1100110"; when 5 =>y<="1101101"; when 6 =>y<="1111101"; when 7 =>y<="0000111"; when 8 =>y<="1111111"; when 9 =>y<="1101111"; when others =>y<="ZZZZZZZ"; end case; end process; end one; 7段数码显示的仿真时序图 例3:用原理图,VHDL混合方式设计2位十进制数的计数显示译码电路。 第一步:生成

文档评论(0)

187****7759 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档