北邮数电上实验报告汇总_北邮数电综合实验报告
北邮数电上实验报告汇总由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“北邮数电综合实验报告”。
北京邮电大学电子工程学院
北京邮电大学
数字电路与逻辑设计实验
学院:
班级:
姓名:
学号:
班内序号: 北京邮电大学电子工程学院
实验一
Quartus II原理图输入法设计
一、实验目的:
(1)熟悉Quartus II原理图输入法进行电路设计和仿真。(2)掌握Quartus II 图形模块单元的生成与调(3)熟悉实验板的使用
二、实验所用器材:(1)计算机(2)直流稳压电源
(3)数字系统与逻辑设计实验开发板
三、实验任务要求
(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。
(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。(3)用VHDL语言实现全加器。
四、实验原理图和实验波形图
1、全加器实验原理图。北京邮电大学电子工程学院
2、全加器实验波形图。
五、仿真波形分析
由仿真波形可以看出,当a,b,ci有两个或者两个以上为1时,产生进位,即co输出为1,而输出s则是当a,b,ci输入偶数个1时为0,奇数个1时为1,满足实验原理,仿真波形正确。北京邮电大学电子工程学院
实验三
VHDL组合逻辑电路设计
一、实验目的:
(1)熟悉Quartus II原理图输入法进行电路设计和仿真。(2)掌握Quartus II 图形模块单元的生成与调(3)熟悉实验板的使用
二、实验所用器材:(1)计算机(2)直流稳压电源
(3)数字系统与逻辑设计实验开发板
三、实验任务要求
(1)用VHDL语言设计将8421计数器,分频器和数码管译码器连接使用,实现在指定数码管滚动显示0-9,其余数码管不亮,并带有清零功能,并下载到实验板显示计数结果。
四、实验VHDL代码和仿真波形图(1)VHDL代码 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xianshi is port(clk,clr:in std_logic;北京邮电大学电子工程学院
b:out std_logic_vector(6 downto 0);cat:out std_logic_vector(5 downto 0));end xianshi;
architecture a of xianshi is signal ctmp:std_logic_vector(3 downto 0);signal tmp:integer range 0 to 1249999;signal clktmp:std_logic;signal e:std_logic_vector(6 downto 0);begin p1:proce(clk,clr)begin if clr='0' then tmp
北京邮电大学电子工程学院
p2:proce(clktmp)begin if clr='0' then ctmp
p3:proce(ctmp,clr)begin if(clr='0')then cate
北京邮电大学电子工程学院
when“0001”=>eeeeeeeeee
北京邮电大学电子工程学院
五、仿真波形分析
由仿真波形图可以看出,输出cat始终未110111,只有第三个数码管亮,输出b在循环变化,b控制数码管显示不同的数字,所以这是一个0~9滚动显示数码管的波形图。
六、模块端口说明及连接图 北京邮电大学电子工程学院
实验四
VHDL组合逻辑电路设计
一、实验目的:
(1)熟悉Quartus II原理图输入法进行电路设计和仿真。(2)掌握Quartus II 图形模块单元的生成与调(3)熟悉实验板的使用
二、实验所用器材:(1)计算机(2)直流稳压电源
(3)数字系统与逻辑设计实验开发板
三、实验任务要求
(1)用 VHDL 语言设计并实现一个 8×8 点阵行扫描控制器,要求从上至下逐行循环 点亮点阵(红色或绿色均可),每行点亮时间为 0.5 秒。
(2)用 VHDL 语言设计并实现一个 8×8 点阵行扫描控制器,要求从上至下逐行点亮 点阵,第一行为红色,第二行为绿色,依次类推,直至点亮所有行,然后全部熄灭,再重新从第一行开始。
四、实验VHDL代码和仿真波形图(1)单色逐行点亮VHDL代码 library ieee;use ieee.std_logic_1164.all;北京邮电大学电子工程学院
use ieee.std_logic_unsigned.all;
entity dianzhen is port(clk,clr:in std_logic;col,row:out std_logic_vector(7 downto 0));end dianzhen;
architecture a of dianzhen is signal a: integer range 0 to 2499999;signal clktmp:std_logic;signal ctmp:std_logic_vector(2 downto 0);begin p1:proce(clk,clr)begin if clr='0' then clktmp
北京邮电大学电子工程学院
a
p2:proce(clktmp)begin if clr='0' then ctmp
p3:proce(ctmp)begin case ctmp is when“000”=>row
北京邮电大学电子工程学院
when“001”=>rowrowrowrowrowrowrowrow
(2)单色逐行点亮仿真波形图 北京邮电大学电子工程学院
(3)双色逐行出现点阵VHDL代码 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;
entity dianzhen is port(clk,clr:in std_logic;colr,colg,row:out std_logic_vector(7 downto 0));end dianzhen;
architecture a of dianzhen is signal a: integer range 0 to 2499999;signal clktmp:std_logic;signal ctmp:std_logic_vector(2 downto 0);signal rowtmp:std_logic_vector(7 downto 0);signal colrtmp,colgtmp:std_logic_vector(7 downto 0);begin p1:proce(clk,clr)begin if clr='0' then clktmp
北京邮电大学电子工程学院
elsif clk'event and clk='1' then if a=2499999 then a
p2:proce(clktmp)begin if clr='0' then ctmp
北京邮电大学电子工程学院
p3:proce(ctmp)begin if(clr='0')then rowtmprowtmprowtmprowtmprowtmprowtmprowtmprowtmp
北京邮电大学电子工程学院
when“111”=>rowtmprowtmp
五、仿真波形分析
(1)首先是单色逐行点亮的仿真波形,可以看出,每列接的都是高电平11111111,每行依次变化,由11111110变为01111111(由于管脚的位置接法,虽然0在最后一位出现,但是是第一行先亮),实现从上到下的依次点亮。
(2)其次是双色逐行点亮的仿真波形,我做的是交替点亮过程,所 北京邮电大学电子工程学院
以在下一行点亮的时候,上一行会熄灭,并且颜色会改变,从波形可以看出colr和colg不同时为11111111,而是一个为11111111时,一个为00000000,然后每行row依次改变。
六、模块端口说明及连接图(1)单色逐行点亮点阵控制电路
(2)双色逐行点亮点阵 北京邮电大学电子工程学院
本次实验故障及问题分析
1、在刚开始实验时,不懂得怎么命名文件,也不知道顶层设计名要与文件名一样,出现了在编译时总是报错,但是却找不到原因的情况。
2、在设置波形时,不知道如何设置时钟周期,使得仿真总是不对。后来学会了,先把输入group成一组,然后直接点击
出现面,然后就可以设置了。
这个界 北京邮电大学电子工程学院
总结和结论
通过本学期的数字电路与逻辑设计的实验课程,我基本掌握了quartus的使用方法,VHDL语言的使用方法,并且学会了怎么将设计好的程序下载到实验板上,用实验板上的开关控制led灯或者是数码显示管。虽然在实验过程中,编译总是会有一些小错误,比如,忘了写end if,忘了分号等等,但是,实验课给我一种学以致用的感觉,让我对数字电路与逻辑设计这个课程有了更好的了解,同时,也给我学习课本提供了帮助,当遇到课本上的疑难问题,用quartus仿真就可以清楚观察波形翻转的时间,进位或是借位信号等等。
从这四次实验课,我收获的不仅是quartus的使用方法,更是一种对待课业的态度,不可以粗心大意,要仔细认真,不然就会像仿真结果一样,不断的报错。总而言之,实验课给了我们一个很好的运用知识的平台,我们应该珍惜实验的机会。