首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 西工大-数电实验-第四次实验-实验报告

    时间:2020-09-22 23:52:36 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:实验 第四次 报告

     验 数电实验 4

      一. . 实验目的

     熟悉用仿真法研究数字电路实验的过程,实现一个彩灯控制电路。

     熟练使用 VHDL 语言

     二. . 实验设备

     1.Quartus 开发环境

     2.ED0 开发板

     三. . 实验内容

     1、彩灯控制电路要求控制 4 个彩灯 ;

     2、两个控制信号:

     K 1 K 0 = 00 灯全灭

     01 右移,循环显示

     10 左移,循环显示

     11 灯全亮

     3.彩灯正常工作的同时,四个七段数码管循环显示第一个同学的学号后四位一秒,第二个同学的学号后四位一秒,全黑一秒。

     四. . 实验原理

     1.彩灯控制电路的程序如下:

     LIBRARY IEEE;

     USE IEEE.std_logic_1164.ALL;

     USE IEEE.std_logic_ARITH.ALL;

     USE IEEE.std_logic_UNSIGNED.ALL;

     ENTITY led IS

     port(

      clk:in std_logic;

     data_in:IN STD_LOGIC_VECTOR(1 DOWNTO 0);

     data_out:out std_logic_vector(3 downto 0);

     data_out1,data_out2,data_out3,data_out4:out std_logic_vector(6 downto 0));

     END led;

     ARCHITECTURE control OF led IS

     CONSTANT m : INTEGER:= 25000000;

     BEGIN

     PROCESS(data_in,clk)

     VARIABLE cout : INTEGER:=0;

     VARIABLE i : INTEGER:=0;

     BEGIN

      IF clk"EVENT AND clk="1" THEN

     cout:=cout+1; --计数器+1

     i:=i+1; --计数器+1

     if data_in="00" then

     data_out<="0000"; --quan bu bu liang

      elsif data_in="01" then--you yi xun huan xian shi

      IF cout<=m THEN data_out<="1000";

     ELSIF cout<=m*2 THEN data_out<="0100"; --shift right

     ELSIF cout<=m*3 THEN data_out<="0010"; --shift right

     ELSIF cout<=m*4-1 THEN data_out<="0001"; --shift right

     ELSE cout:=0; --计数器清零

      END IF;

     elsif data_in="10" then--zuo yi xun huan xian shi

      IF cout<=m THEN data_out<="0001"; --shift left

     ELSIF cout<=m*2 THEN data_out<="0010";--shift left

     ELSIF cout<=m*3 THEN data_out<="0100"; --shift left

     ELSIF cout<=m*4-1 THEN data_out<="1000"; --shift left

     ELSE cout:=0; --计数器清零

      END IF;

      elsif data_in="11" then--quan bu liang

     data_out<="1111";

     end if;

      IF i<=m THEN data_out1<="0100100";data_out2<="1111001";data_out3<="1111000";data_out4<="1000000" ;--shift left

     ELSIF i<=m*2 THEN data_out1<="0100100";data_out2<="1111001";data_out3<="1111000";data_out4<="1111001" ;--shift left

     ELSIF i<=m*3 THEN data_out1<="1111111";data_out2<="1111111";data_out3<="1111111";data_out4<="1111111"; --shift left

     ELSE i:=0; --计数器清零

      END IF;

     END IF;

     end process;

      end control;

     注:学号输出为 2170 和 2171

     五. . 实验结果

     在 quters 中输入我们自己写好的代码如下,然后进行编译;

     由于要进行人眼可见级别的计时器的仿真所需要设置的总仿真时间过长,计算机无法完成,所以修改 m=2;进行在计算机上的仿真模拟验证,结果如下:

      可以看到程序很好的实现了,右移,全亮,全灭以及左移的预期功能;

     将程序中的 m 值重新改回 25000000;

     编译完成后对针脚进行配置;

     针脚配置完成后对程序进行重新编译;

     重编译完成后将程序下载到开发板进行验证,验证无误后通过了老师的验收;

     六. . 故障排除& & 实验心得

     本次实验之前我在课下自行认真的学习了 VHDL 语言以及 quartus的使用方法,所以这次的实验可以说是十分的顺利(至少相对于前面几次是这样的),实验之前我就早早的准备好了基本要求的四种控制彩灯亮灭方式的 VHDL 代码并且在电脑中通过调整分频器的参数进行了仿真模拟并且确保结果无误.然后在老师给出了课上测试的题目要求之后,很快的对程序进行了修改以及补充,最后很幸运的成为了班里第一个完成任务的小组.不过由于对七段译码器的对应显示不够熟悉然后也没有想到使用模块化设计的方法,所以个人后来反思觉得使用的时间还是可以再减少的.可以使用之前设计好的七段译码器直接生成一个译码模块,然后前面的主程序只要输出学号对应的二进制数就可以了,这样可以解省很多分析七段译码器显示的时间.不过这次

     实验还是使我的动手能力有了很大的提高,对VHDL以及QUARTUS的使用方法有了更加深入的了解.

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识