实验二-译码器设计.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  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文档。上传文档
查看更多
实验二-译码器设计 实验二-译码器设计 PAGE 实验二-译码器设计 实验二 译码器设计 电信5班 凌键宇 2040 实验准备 1) 接上usb-blaster到开发板中间的JTAG接口,另一个接口接上电脑USB,然后接上电源设配器,为开发板通电。如果驱动安装成功则进行下个步骤,如果驱动没有安装成功则按照‘USB下载线驱动安装指南.doc’为usb-blaster安装驱动。驱动安装成功则开始按照实验要求进行系统设计。 2) 本次实验所使用开发板芯片信号为cyclone 系列的EP2C8Q208C8N 3) 下载的步骤见附录。 实验要求 利用硬件描述语言设计一自定义译码器,其主要功能为下表所示: SW0 SW1 SW2 SW3 LED0~LED5 ↓ x x x 流水点亮 1 ↓ x x 间隔点亮 1 1 ↓ x 追逐点亮 1 1 1 ↓ 全部亮,并闪烁 其中,↓表示有键按下,1表示无键按下,x表示不管有没有按键; 流水点亮即为LED0先亮,然后LED0灭,LED1亮,依次类推;间隔点亮即为第一状态为LED0亮,第二状态为LED0保持亮、LED2亮,依次类推;追逐点亮即为第一状态为只有LED0亮,第二状态为LED0保持亮、LED1点亮,依次类推。 具体LED0~LED5引脚,SW0~SW3引脚分配请参照开发板原理图。 实验实现 实验思路:首先检测按键SW0、SW1 、SW2 、SW3(按照优先级排序), 根据按键进入不同的流水灯状态,然后不断循环。同时不断检测按键来切换流水灯状态。 代码如下: library IEEE; use led is port( sysclk: in std_logic; -- sw:in std_logic_vector(1 down 0); sw0,sw1,sw2,sw3: in std_logic; dout: out std_logic_vector(5 downto 0) ); end led; architecture lsd of led is signal cnt : integer range 1 downto 0; signal count1,count2,count3,count4 : std_logic_vector(3 DOWNTO 0); signal state : std_logic_vector(1 DOWNTO 0); begin process(sysclk) begin if ( sysclkevent and sysclk = 1) then cnt = cnt + 1; if (cnt = 1) then cnt = 0 ; count1=count1+1; if(count1=1001) then count1=0000; end if; count2=count2+1; if(count2=0010) then count2=0000; end if; count3=count3+1; if(count3=0101) then count3=0000; end if; count4=count4+1; if(count4=0001) then count4=0000; end if; end if ; if (sw0=0) then state=00 ; end if; if(sw1=0and sw0=1) then state=01 ; end if; if(sw2=0and sw1=1and sw0=1) then state=10 ; end if; if(sw3=0and sw0=1and sw1=1and sw2=1) then state=11 ; end if; end if; end process; process(count1,count2,count3,count4) begin if (state=00) then case count1 is when 0000 =dout = 111110; when 0001 =dout = 111101; whe

文档评论(0)

153****0212 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档