当前位置:文档之家› 数字电路和逻辑设计综合实验报告

数字电路和逻辑设计综合实验报告

数字电路和逻辑设计综合实验报告
数字电路和逻辑设计综合实验报告

数字电路与逻辑设计综合实验报告

课题名称:点阵显示控制器

学院:电子工程学院

学号:072385

班序号:30

实验指导教师:永梅

课程主讲教师: 丽华

报告提交日期: 2009年12月30日

邮电大学

一、课题名称

点阵显示控制器

二、摘要及关键词

本次综合性数字电路实验主要完成了点阵显示控制器的三种功能,分别是光电扫描,字符显示以及动态图像显示。本次实验所采用的软件是QuartersⅡ,硬件是EPM7128SLC84-15。实验通过对于8×8点阵来显示相应的图像,分别通过行和列控制显示,显示的频率通过分频来得到。本课题的目的是让我们初步了解点阵结构的显示器,为以后的更进一步学习打下基础。

关键词:扫描分频点阵显示

三、设计课题的任务要求

1.使用8×8点阵做一个基本矩阵,设计扫描控制电路,使光点从左上角像素点开始扫描,终止于右下角像素点,然后周而复始地重复下去,扫过一帧所需时间为16秒;

2.用8×8点阵显示字符,每次显示1个字符,至少显示4个字符,每秒切换一个字符;

3.用1个8×8点阵显示一幅活动图象或多个字符滚动显示;

4.以上三种功能可以手动或自动转换;

5.选做:自拟其它功能。

四、设计思路和总体结构框图

1.设计思路及分块电路设计

本次实验的总体设计思路是通过分频器产生的时钟信号进行不同频率的扫描,从而实现不同图像的扫描。

1.扫描(hehesm):

输入1MHz的时钟信号分频24位,周期为16s,使扫描8×8点阵的时间为固定的16s。24位信号中的18,19,20控制列选通21,22,23控制行选通,从左往右扫描完一行后再转到下一行,依次从上向下逐行扫描信号。

2.显示(hehexianshi):

显示部分用计数器实现。输入1MHz的时钟信号分频22位得到一个4s 的时间周期,每秒显示一个字符。定义20,21为gaowei,0,1,2为diwei,gaowei用来控制四个字符之间的转换,diwei用来控制二极管快速显示行和列的点,视觉上形成暂留现象出现连续的字符。

3.滚动(hehegd):

滚动部分由计数器和译码器实现。输入1MHz的时钟信号分频22位得到一个4s的时间周期,每秒显示一个字符。定义18,19,20,21为gaowei,0,1,2为diwei,gaowei用来控制16种滚动图案的转换,diwei用来控制二极管快速显示行和列的点,高频扫描每种图案,使视觉上形成自右向左滚动的效果。

4.动画(hehedh):

由于前面用计数器实现所剩空间较小,故动画部分用状态机实现。输入1MHz 的时钟信号分频19位得到一个0.5s 的时间周期,定义18,19为gaowei ,0为diwei ,gaowei 控制每一图形的转换,diwei 控制二极管快速显示同一图形中的不同状态,以使视觉上形成暂留现象出现连续变化的图案。

2.总体结构框图

3.整体模块图

五、 控制器部分的状态转移图和流程图

1.状态转移图

8×8

点阵控制器

分频模块

Clk Reset

行输出 列输出

Reset

Reset

Reset

Set Set Set Reset Reset

Reset

2. 流程图

六、所实现功能说明

1.使用8×8点阵显示屏设计一个点扫描控制电路,循环一周期为16秒,从左上角开始从左往右从上往下扫描至右下角截止,回到起点继续循环扫描。

2.显示“2083”4个不同字符,循环周期为4秒,每秒显示一个字符。

3.滚动显示“JYDZ..”,循环周期为4秒,使视觉上形成自右向左滚动的效果。

4.显示动画方型扩散图案,由中间到四周扩散

5.每进行一次切换就从该状态初始状态开始

七、所用元器件清单

7.5伏稳压电源一块

EPM7128SLC84—15实验版一块

八、完整源程序

1.

library ieee; --扫描程序

use ieee.std_logic_1164.all;

use ieee.std_logic_signed.all;

entity saomiao is

port(

clk2,reset2:in std_logic;

hang2:out std_logic_vector(7 downto 0);

lie2:out std_logic_vector(7 downto 0));

end saomiao;

architecture m of saomiao is

signal chushi:std_logic_vector(23 downto 0):="000000000000000000000000"; signal gaowei:std_logic_vector(2 downto 0);

signal diwei:std_logic_vector(2 downto 0);

signal hang1:std_logic_vector(7 downto 0);

signal lie1:std_logic_vector(7 downto 0);

begin

process(clk2,reset2)

if(reset2='1')then

chushi<="000000000000000000000000"; elsif(reset2='0')then

if(clk2'event and clk2='1')then

chushi<=chushi+1;

end if;

end if;

end process;

process(diwei,lie1,chushi)

begin

diwei(0)<=chushi(18);

diwei(1)<=chushi(19);

diwei(2)<=chushi(20);

if diwei="000"then lie1<="01111111"; elsif diwei="001"then lie1<="10111111"; elsif diwei="010"then lie1<="11011111"; elsif diwei="011"then lie1<="11101111"; elsif diwei="100"then lie1<="11110111"; elsif diwei="101"then lie1<="11111011"; elsif diwei="110"then lie1<="11111101"; elsif diwei="111"then lie1<="11111110";

lie2<=lie1;

end process;

process(gaowei,hang1,chushi)

begin

gaowei(0)<=chushi(21);

gaowei(1)<=chushi(22);

gaowei(2)<=chushi(23);

if gaowei="000"then hang1<="10000000"; elsif gaowei="001"then hang1<="01000000"; elsif gaowei="010"then hang1<="00100000"; elsif gaowei="011"then hang1<="00010000"; elsif gaowei="100"then hang1<="00001000"; elsif gaowei="101"then hang1<="00000100"; elsif gaowei="110"then hang1<="00000010"; elsif gaowei="111"then hang1<="00000001"; end if;

hang2<=hang1;

end process;

end m;

2.

library ieee; --顶层文件use ieee.std_logic_1164.all;

use ieee.std_logic_signed.all;

entity hehe is

port

(clk,k:in std_logic;

hang,lie:out std_logic_vector(7 downto 0)

);

end hehe;

architecture a of hehe is

component hehesm

port(

clk2,reset2:in std_logic;

hang2:out std_logic_vector(7 downto 0);

lie2:out std_logic_vector(7 downto 0));

end component;

component hehexs

port(clk3,reset3:in std_logic;

hang3:out std_logic_vector(7 downto 0);

lie3:out std_logic_vector(7 downto 0));

end component;

component hehegd

port(clk4,reset4:in std_logic;

hang4:out std_logic_vector(7 downto 0);

lie4:out std_logic_vector(7 downto 0));

end component;

component hehedh

port(clk5,reset5: in std_logic;

hang5:out std_logic_vector(7 downto 0);

lie5:out std_logic_vector(7 downto 0) ) ;

end component;

signal state:std_logic_vector(1 downto 0);

signal h2,l2,h3,l3,h4,l4,h5,l5:std_logic_vector(7 downto 0); signal t:std_logic_vector(1 downto 0):="00";

begin

sm:hehesm port map(clk2=>clk, reset2=>k,hang2=>h2,lie2=>l2); xs:hehexs port map(clk3=>clk,reset3=>k, hang3=>h3,lie3=>l3); gd:hehegd port map(clk4=>clk,reset4=>k, hang4=>h4,lie4=>l4); dh:hehedh port map(clk5=>clk, reset5=>k,hang5=>h5,lie5=>l5); process(k,state,h2,l2,h3,l3,h4,l4,h5,l5)

begin

if(k'event and k='1')then

t<=t+1;

end if;

case t is

when "00"=>

state<="01";

when "01"=>

state<="10";

when "10" =>

state<="11";

when "11"=>

state<="00";

end case;

case state is

when "01"=> hang<=h2;lie<=l2;

when "10"=> hang<=h3;lie<=l3;

when "11"=> hang<=h4;lie<=l4;

when "00"=> hang<=h5;lie<=l5;

end case;

end process;

end;

---------------------------------------------------------------

library ieee; --扫描程序

use ieee.std_logic_1164.all;

use ieee.std_logic_signed.all;

entity hehesm is

port(

clk2,reset2:in std_logic;

hang2:out std_logic_vector(7 downto 0);

lie2:out std_logic_vector(7 downto 0));

end hehesm;

architecture m of hehesm is

signal chushi:std_logic_vector(23 downto 0):="000000000000000000000000"; signal gaowei:std_logic_vector(2 downto 0);

signal diwei:std_logic_vector(2 downto 0);

signal hang1:std_logic_vector(7 downto 0);

signal lie1:std_logic_vector(7 downto 0);

begin

process(clk2,reset2)

begin

if(reset2='1')then

chushi<="000000000000000000000000";

elsif(reset2='0')then

if(clk2'event and clk2='1')then

chushi<=chushi+1;

end if;

end if;

end process;

process(diwei,lie1,chushi)

begin

diwei(0)<=chushi(18);

diwei(1)<=chushi(19);

diwei(2)<=chushi(20);

if diwei="000"then lie1<="01111111"; elsif diwei="001"then lie1<="10111111"; elsif diwei="010"then lie1<="11011111"; elsif diwei="011"then lie1<="11101111"; elsif diwei="100"then lie1<="11110111"; elsif diwei="101"then lie1<="11111011"; elsif diwei="110"then lie1<="11111101"; elsif diwei="111"then lie1<="11111110"; end if;

lie2<=lie1;

end process;

process(gaowei,hang1,chushi)

begin

gaowei(0)<=chushi(21);

gaowei(1)<=chushi(22);

gaowei(2)<=chushi(23);

if gaowei="000"then hang1<="10000000";

elsif gaowei="001"then hang1<="01000000";

elsif gaowei="010"then hang1<="00100000";

elsif gaowei="011"then hang1<="00010000";

elsif gaowei="100"then hang1<="00001000";

elsif gaowei="101"then hang1<="00000100";

elsif gaowei="110"then hang1<="00000010";

elsif gaowei="111"then hang1<="00000001";

end if;

hang2<=hang1;

end process;

end m;

library ieee; --显示程序use ieee.std_logic_1164.all;

use ieee.std_logic_signed.all;

entity hehexs is

port(clk3,reset3:in std_logic;

hang3:out std_logic_vector(7 downto 0);

lie3:out std_logic_vector(7 downto 0));

end hehexs;

architecture jg of hehexs is

signal chushi:std_logic_vector(21 downto 0):="0000000000000000000000";

signal gaowei:std_logic_vector(1 downto 0);

signal diwei:std_logic_vector(2 downto 0);

begin

process(clk3,diwei,chushi,gaowei,reset3)

begin

if(reset3='1')then

chushi<="0000000000000000000000";

elsif(reset3='0')then

if(clk3'event and clk3='1')then

chushi<=chushi+1;

end if;

end if;

gaowei(1 downto 0)<=chushi(21 downto 20);

diwei(2 downto 0)<=chushi(2 downto 0);

case diwei is --显示行

when"000"=>hang3<="10000000";

when"001"=>hang3<="01000000";

when"010"=>hang3<="00100000";

when"011"=>hang3<="00010000";

when"100"=>hang3<="00001000";

when"101"=>hang3<="00000100";

when"110"=>hang3<="00000010";

when"111"=>hang3<="00000001";

end case;

if gaowei="00"then --列显示2 case diwei is

when"000"=>lie3<="11111111";

when"001"=>lie3<="10000001";

when"010"=>lie3<="11111101";

when"011"=>lie3<="10000001";

when"100"=>lie3<="10111111";

when"101"=>lie3<="10111111";

when"110"=>lie3<="10000001";

when"111"=>lie3<="11111111";

end case;

elsif gaowei="01"then --显示0 case diwei is

when"000"=>lie3<="11111111";

when"001"=>lie3<="10000001";

when"010"=>lie3<="10111101";

when"100"=>lie3<="10111101";

when"101"=>lie3<="10111101";

when"110"=>lie3<="10000001";

when"111"=>lie3<="11111111";

end case;

elsif gaowei="10"then --显示8 case diwei is

when"000"=>lie3<="11111111";

when"001"=>lie3<="10000001";

when"010"=>lie3<="10111101";

when"011"=>lie3<="10000001";

when"100"=>lie3<="10111101";

when"101"=>lie3<="10111101";

when"110"=>lie3<="10000001";

when"111"=>lie3<="11111111";

end case;

elsif gaowei="11"then --显示3 case diwei is

when"000"=>lie3<="11111111";

when"001"=>lie3<="10000001";

when"010"=>lie3<="11111101";

when"100"=>lie3<="11111101";

when"101"=>lie3<="11111101";

when"110"=>lie3<="10000001";

when"111"=>lie3<="11111111";

end case;

end if;

end process;

end ;

library ieee; --滚动程序

use ieee.std_logic_1164.all;

use ieee.std_logic_signed.all;

entity hehegd is

port(clk4,reset4:in std_logic;

hang4:out std_logic_vector(7 downto 0);

lie4:out std_logic_vector(7 downto 0));

end hehegd;

architecture a of hehegd is

signal chushi:std_logic_vector(21 downto 0):="0000000000000000000000";

signal diwei:std_logic_vector(2 downto 0);

signal gaowei:std_logic_vector(3 downto 0);

signal lie:std_logic_vector(7 downto 0);

signal hang:std_logic_vector(7 downto 0);

begin

process(clk4,reset4,chushi,diwei,gaowei,lie,hang)

begin

if (reset4='1')then

chushi<="0000000000000000000000";

elsif (reset4='0')then

if(clk4'event and clk4='1')then

chushi<=chushi+1;

end if;

end if;

gaowei(3 downto 0)<=chushi(21 downto 18);

diwei(2 downto 0)<=chushi(2 downto 0);

if gaowei="0000"then

case diwei(2 downto 0) is

when"000"=>hang<="10000000";lie<="11111111";

when"001"=>hang<="01000000";lie<="11000001";

when"010"=>hang<="00100000";lie<="11110111";

when"011"=>hang<="00010000";lie<="11110111";

when"100"=>hang<="00001000";lie<="11110111";

数字钟设计报告——数字电路实验报告

. 数字钟设计实验报告 专业:通信工程 :王婧 班级:111041B 学号:111041226 .

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生器、“时、 3

66 数字电路综合设计

6.6 数字电路综合设计 6.6.1汽车尾灯控制电路 1. 要求:假设汽车尾部左右两侧各有三个指示灯(用发光二极管模拟),要求汽车正常运行时指示灯全灭;右转弯时,右侧3个指示灯按右循环顺序点亮;左转弯时左侧三个指示灯按左循环顺序点亮;临时刹车时所有指示灯同时闪烁。2.电路设计: (1)列出尾灯和汽车运行状态表如表6.1所示 (2)总体框图:由于汽车左或右转弯时,三个指示灯循环点亮,所以用三进制计数器控制译码器电路顺序输出低电平,从而控制尾灯按要求点亮。由此得出在每种运行状态下,各指示灯和各给定条件(S1、S0、CP、Q1、Q0)的关系,即逻辑功能表(如表6-2所示(表中0表示灯灭,1表示灯亮)。 由表6-2得总体框图如图6.6-1所示 图6.6-1汽车尾灯控制电路原理框图

(3)单元电路设计 三进制计数器电路可根据表6-2由双J—K触发器74LS76构成。 汽车尾灯控制电路如图6.6-2所示,其显示驱动电路由6个发光二极管构成;译码电路由3—8线译码器74LSl38和6个和门构成。74LSl38的三个输入端A2、A1、A0分别接S1、Q1、Q0,而Q1Q0是三进制计数器的输出端。当S1=0,使能信号A=G=1,计数器的状态为00,01,10时,74LSl38对应的输出端 Y、1Y、2Y依次为0有效(3Y、4Y、5Y信号为“1” 0 无效),反相器G1—G3的输出端也依次为0,故指示灯D1→D2→D3按顺序点亮,示意汽车右转弯。若上述条件不变,而S1=1,则74LSl38对应的输出端 Y、5Y、6Y依次为0有 4 效,即反相器G4~G6的输出端依次为0,故指示灯D4→D5→D6按顺序点亮,示意汽车左转弯。当G=0,A=1时,74LSl38的输出端全为1,G6~G1的输出端也全为1,指示灯全灭;当G=0,A=CP时,指示灯随CP的频率闪烁。 对于开关控制电路,设74LSl38和显示驱动电路的使能

基于Libero的数字逻辑设计仿真和验证实验报告(实验1)

实验报告 1、基本门电路 一、实验目的 1、熟悉EDA工具的使用;仿真基本门电路。掌握基于Verilog的基本门电路的设计及其验证。 2、熟悉利用EDA工具进行设计及仿真的流程。基本门电路的程序烧录及验证。 3、学习针对实际门电路芯片74HC00、74HC02、74HC0 4、74HC08、74HC32、74HC86进行VerilogHDL设计的方法。 二、实验环境 Libero仿真软件。 三、实验内容 1、掌握Libero软件的使用方法。 2、进行针对74系列基本门电路的设计,并完成相应的仿真实验。 3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC00、74HC02、74HC0 4、74HC08、74HC32、74HC86相应的设计、综合及仿真。 4、提交针对74HC00、74HC02、74HC04、74HC08、74HC32、74HC86(任选一个 ....)的综合结果,以及相应的仿真结果。 四、实验结果和数据处理 1、所有 ..模块及测试平台代码清单 //74HC00代码-与非门 // module HC00(A,B,Y); input [4:1]A,B;

assign Y=~(A&B); endmodule //74HC00测试平台代码 // `timescale 1ns/1ns module testbench(); reg [4:1]a,b; wire [4:1]y; HC00 u1(a,b,y); initial begin a=4'b0000;b=4'b0001; #10 b=b<<1; #10 b=b<<1; #10 b=b<<1; a=4'b1111;b=4'b0001; #10 b=b<<1; #10 b=b<<1; #10 b=b<<1; end endmodule //74HC02代码-或非门 // module HC02(A,B,Y);

数字逻辑电路实验报告

数字逻辑电路 实验报告 指导老师: 班级: 学号: 姓名: 时间: 第一次试验一、实验名称:组合逻辑电路设计

二、试验目的: 1、掌握组合逻辑电路的功能测试。 2、验证半加器和全加器的逻辑功能。 3、、学会二进制数的运算规律。 三、试验所用的器件和组件: 二输入四“与非”门组件3片,型号74LS00 四输入二“与非”门组件1片,型号74LS20 二输入四“异或”门组件1片,型号74LS86 四、实验设计方案及逻辑图: 1、设计一位全加/全减法器,如图所示: 电路做加法还是做减法是由M决定的,当M=0时做加法运算,当M=1时做减法运算。当作为全加法器时输入信号A、B和Cin分别为加数、被加数和低位来的进位,S 为和数,Co为向上的进位;当作为全减法时输入信号A、B和Cin分别为被减数,减数和低位来的借位,S为差,Co为向上位的借位。 (1)输入/输出观察表如下: (2)求逻辑函数的最简表达式 函数S的卡诺图如下:函数Co的卡诺如下: 化简后函数S的最简表达式为: Co的最简表达式为:

(3)逻辑电路图如下所示: 2、舍入与检测电路的设计: 用所给定的集成电路组件设计一个多输出逻辑电路,该电路的输入为8421码,F1为“四舍五入”输出信号,F2为奇偶检测输出信号。当电路检测到输入的代码大于或等于5是,电路的输出F1=1;其他情况F1=0。当输入代码中含1的个数为奇数时,电路的输出F2=1,其他情况F2=0。该电路的框图如图所示: (1)输入/输出观察表如下: B8 B4 B2 B1 F2 F1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1

数字逻辑实验报告。编码器

数字逻辑实验实验报告 脚分配、1)分析输入、输出,列出方程。根据方程和IP 核库判断需要使用的门电路以及个数。 2)创建新的工程,加载需要使用的IP 核。 3)创建BD 设计文件,添加你所需要的IP 核,进行端口设置和连线操作。 4)完成原理图设计后,生成顶层文件(Generate Output Products)和HDL 代码文件(Create HDL Wrapper)。 5)配置管脚约束(I/O PLANNING),为输入指定相应的拨码开关,为输出指定相应的led 灯显示。

6)综合、实现、生成bitstream。 7)仿真验证,依据真值表,在实验板验证试验结果。

实验报告说明 数字逻辑课程组 实验名称列入实验指导书相应的实验题目。 实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。可参考实验指导书的内容。在理论上,验证所学章节相关的真值表、逻辑表达式或逻辑图的实际应用,以使实验者获得深刻和系统的理解,在实践上,掌握使用软件平台及设计的技能技巧。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。 实验环境实验用的软硬件环境(配置)。 实验内容(含电路原理图/Verilog程序、管脚分配、仿真结果等;扩展内容也列入本栏)这是实验报告极其重要的内容。这部分要写明经过哪几个步骤。可画出流程图,再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 实验结果分析数字逻辑的设计与实验结果的显示是否吻合,如出现异常,如何修正并得到正确的结果。 实验方案的缺陷及改进意见在实验过程中发现的问题,个人对问题的改进意见。 心得体会、问题讨论对本次实验的体会、思考和建议。

数字电路实验报告

数字电路实验报告 姓名:张珂 班级:10级8班 学号:2010302540224

实验一:组合逻辑电路分析一.实验用集成电路引脚图 1.74LS00集成电路 2.74LS20集成电路 二、实验内容 1、组合逻辑电路分析 逻辑原理图如下:

U1A 74LS00N U2B 74LS00N U3C 74LS00N X1 2.5 V J1 Key = Space J2 Key = Space J3 Key = Space J4 Key = Space VCC 5V GND 图1.1组合逻辑电路分析 电路图说明:ABCD 按逻辑开关“1”表示高电平,“0”表示低电平; 逻辑指示灯:灯亮表示“1”,灯不亮表示“0”。 真值表如下: A B C D Y 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 表1.1 组合逻辑电路分析真值表 实验分析: 由实验逻辑电路图可知:输出X1=AB CD =AB+CD ,同样,由真值表也能推出此方程,说明此逻辑电路具有与或功能。 2、密码锁问题: 密码锁的开锁条件是:拨对密码,钥匙插入锁眼将电源接通,当两个条件同时满足时,开锁信号为“1”,将锁打开;否则,报警信号为“1”,则接通警铃。

试分析下图中密码锁的密码ABCD 是什么? 密码锁逻辑原理图如下: U1A 74LS00N U2B 74LS00N U3C 74LS00N U4D 74LS00N U5D 74LS00N U6A 74LS00N U7A 74LS00N U8A 74LS20D GND VCC 5V J1 Key = Space J2 Key = Space J3 Key = Space J4 Key = Space VCC 5V X1 2.5 V X2 2.5 V 图 2 密码锁电路分析 实验真值表记录如下: 实验真值表 A B C D X1 X2 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 表1.2 密码锁电路分析真值表 实验分析: 由真值表(表1.2)可知:当ABCD 为1001时,灯X1亮,灯X2灭;其他情况下,灯X1灭,灯X2亮。由此可见,该密码锁的密码ABCD 为1001.因而,可以得到:X1=ABCD ,X2=1X 。

华中科技大学数字逻辑实验报告

华中科技大学数字逻辑实验报告 姓名: 专业班级: 学号: 指导老师: 完成时间:

实验一:组合逻辑电路的设计 一、实验目的: 1.掌握组合逻辑电路的功能测试。 2.验证半加器和全加器的逻辑功能 3.学会二进制的运算规律。 二、实验所用组件: 二输入四与门74LS08,二输入四与非门74LS00,二输入四异或门74LS86,六门反向器74LS04芯片,三输入三与非门74L10,电线若干。 三、实验内容: 内容A:全加全减器。 实验要求: 一位全加/全减法器,如图所示: 电路做加法还是做减法运算是由M决定的,当M=0做加法,M=1做减法。当作为全加法起时输入A.B和Cin分别为加数,被加数和低位来的进位,S和数,Co位向上位的进位。当作为全减法器时输入信号A,B和Cin分别为被减数,减数和低位来的借位,S为差,Co为向上的借位。 实验步骤: 1.根据功能写出输入/输出观察表:

2. 3.做出卡诺图,确定输出和激励的函数表达式:

4.根据逻辑表达式作出电路的平面图: 5.检查导线以及芯片是否完好无损坏,根据平面图和逻辑表达式连接电路。 实验结果: 电路连接好后,经检测成功实现了一位全加/全减法器的功能。 内容B:舍入与检测电路的设计: 试验要求: 用所给定的集合电路组件设计一个多输出逻辑电路,该电路的输入为8421码,F1为“四

舍五入”输出信号,F2为奇偶检测输出信号。当电路检测到输入的代码大宇或等于(5)10时,电路的输出F1=1;其他情况F1=0。当输入代码中含1的个数为奇数时,电路的输出F2=1,其他情况F2=0。该电路的框图如下所示: (1)按照所设计的电路图接线,注意将电路的输入端接试验台的开关,通过拨动开关输入8421代码,电路输入按至试验台显示灯。 (2)每输入一个代码后观察显示灯,并将结果记录在输入/输出观察表中。 实验步骤 1.按照所给定的实验要求填写出F1,F2理论上的真值表。 2.根据真值表给出F1和F2的卡诺图。

数字电路课程设计

数字电路课程设计 一、概述 任务:通过解决一两个实际问题,巩固和加深在课程教学中所学到的知识和实验技能,基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力,为今后从事生产和科研工作打下一定的基础。为毕业设计和今后从事电子技术方面的工作打下基础。 设计环节:根据题目拟定性能指标,电路的预设计,实验,修改设计。 衡量设计的标准:工作稳定可靠,能达到所要求的性能指标,并留有适当的裕量;电路简单、成本低;功耗低;所采用的元器件的品种少、体积小并且货源充足;便于生产、测试和维修。 二、常用的电子电路的一般设计方法 常用的电子电路的一般设计方法是:选择总体方案,设计单元电路,选择元器件,计算参数,审图,实验(包括修改测试性能),画出总体电路图。 1.总体方案的选择 设计电路的第一步就是选择总体方案。所谓总体方案是根据所提出的任务、要求和性能指标,用具有一定功能的若干单元电路组成一个整体,来实现各项功能,满足设计题目提出的要求和技术指标。 由于符合要求的总体方案往往不止一个,应当针对任务、要求和条件,查阅有关资料,以广开思路,提出若干不同的方案,然后仔细分析每个方案的可行性和优缺点,加以比较,从中取优。在选择过程中,常用框图表示各种方案的基本原理。框图一般不必画得太详细,只要说明基本原理就可以了,但有些关键部分一定要画清楚,必要时尚需画出具体电路来加以分析。 2.单元电路的设计 在确定了总体方案、画出详细框图之后,便可进行单元电路设计。 (1)根据设计要求和已选定的总体方案的原理框图,确定对各单元电路的设计要求,必要时应详细拟定主要单元电路的性能指标,应注意各单元电路的相互配合,要尽量少用或不用电平转换之类的接口电路,以简化电路结构、降低成本。

数字逻辑实验报告(数字时钟设计)

数字逻辑实验报告

实验三、综合实验电路 一、实验目的: 通过一个综合性实验项目的设计与实现,进一步加深理论教学与实验软硬件平台的实践训练,为设计性实验做好充分准备。 二、实验原理: 根据要求的简单设计性的电路设计实验,应用基本器件与MSI按照电路设计步骤搭建出初级电路;设计型、综合型的较复杂实验电路 三、实验设备与器件: 主机与实验箱 四、实验内容: (1)实验任务:根据所学习的器件,按照电路开发步骤搭建一个时钟, 要求实现的基本功能有计时功能、校对时间功能、整点报时、秒表等功能。 (2)实验任务分析:完成该数字时钟,采用同步时序电路,对于计时 的的功能,由于时间的秒分时的进位分别是60、60、24,所以可以应用74LS163计数器分别设计2个模60计数器以及一个模24计数器,那么需要有7个秒输出,7个分输出,6个小时的输出;对于校对时间的功能,由74LS163的特性可知,当该器件处于工作状态时,每来一个CLK脉冲,计数值加1,所以可以手动控制给CLK脉冲,来进行时间的校对;对于整点报时功能,可以采用一个比较电路,当时间的分秒数值全部为零时,那么此时可以接通报时装置,可以在电路中设置报时的的时间;对于秒表功能,有两种方案,可以单独重新设计一个秒表装置,采用模100计数器以及两个模60计数器,可以进行优化,使用原先的两个模60计数器,这样可以简化电路,是电路简洁。 (3)实验设计流程:

(4)输入输出表: (5)各个功能模块的实现: A、计时功能模块的实现(电路图及说明)秒表部分及说明

说明:该部分是实现功能正常计时中的秒部分的计时工作。如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~5),两个器件采用级联方式,用预置位方法实现跳转;该部分有7个秒输出,接到BCD译码显示器。 注解:第一个163器件: LDN端统一接到清零端ABCD端接地 ENP端接到VCC高电平ENT接高电平VCC 第二个163器件: LDN端统一接到清零端ABCD端接地 ENP端接到VCC高电平ENT接高电平第一个163的预置位段 分钟部分以及说明:

数字电路实验二 半加半减器的设计

实验二半加半减器的设计 一、实验目的 1、利用普通的门电路或使用译码器或使用数据选择器设计一个半加半减器。 二、实验仪器及器件 1、数字电路试验箱,示波器 2、虚拟器件:74LS197,74LS138,74LS00,74LS20,74LS151 三、实验预习 在proteus上进行了仿真实验,通过普通的门电路连接成半加半减器的逻辑电路。 在之后的课上了解了编码器和译码器以及数据选择器。 四、实验原理 1、用普通门电路实现组合逻辑电路 2、用译码器实现组合逻辑电路 译码器是将每个输入的二进制代码译成对应的输出高、低电平信号。 3、用数据选择器实现组合逻辑电路 数据选择器的功能是从一组输入数据中选出某一个信号输出。或称为多路开关。 五、实验内容 首先,根据半加半减器的电路逻辑列出真值表: 输入输出 S A B Y C(进/借位) 74LS138对应输出位置0 0 0 0 0 Y0 0 0 1 1 0 Y1 0 1 0 1 0 Y2 0 1 1 0 1 Y3 1 0 0 0 0 Y4 1 0 1 1 1 Y5 1 1 0 1 0 Y6 1 1 1 0 0 Y7 根据真值表画出Y和C卡诺图: Y: S\AB 00 01 11 10 0 1 1 1 1 1 C: S\AB 00 01 11 10 0 1 1 1 根据卡诺图可得逻辑表达式: Y=A⊕B C=(S⊕A)B

然后,开始在数电实验箱上连接电路,我选择的芯片是:74LS197,74LS00,74LS20,74LS138.对于74LS197,先将CP1接连续脉冲,然后分别将Q1,Q2,Q3接到“0-1”显示器上检查电路是否正常,接着将Q3,Q2,Q1分别接到74LS138的S0,S1,S2作为八进制输入,Q3,Q2,Q1分别代表S,A,B。根据真值表,Y在Y1,Y2,Y5,Y6处有高电平的输出,C在Y3,Y5处有高电平输出,分别将它们接入与非门芯片74LS20、74LS00即可得到Y和C的输出。 最后,将CP1,S,A,B,Y,C接入示波器得到下图: 从上到下分别是CP1,B,A,S,C,Y.

数字电子技术实验报告汇总

《数字电子技术》实验报告 实验序号:01 实验项目名称:门电路逻辑功能及测试 学号姓名专业、班级 实验地点物联网实验室指导教师时间2016.9.19 一、实验目的 1. 熟悉门电路的逻辑功能、逻辑表达式、逻辑符号、等效逻辑图。 2. 掌握数字电路实验箱及示波器的使用方法。 3、学会检测基本门电路的方法。 二、实验仪器及材料 1、仪器设备:双踪示波器、数字万用表、数字电路实验箱 2. 器件: 74LS00 二输入端四与非门2片 74LS20 四输入端双与非门1片 74LS86 二输入端四异或门1片 三、预习要求 1. 预习门电路相应的逻辑表达式。 2. 熟悉所用集成电路的引脚排列及用途。 四、实验内容及步骤 实验前按数字电路实验箱使用说明书先检查电源是否正常,然后选择实验用的集成块芯片插入实验箱中对应的IC座,按自己设计的实验接线图接好连线。注意集成块芯片不能插反。线接好后经实验指导教师检查无误方可通电实验。实验中

1.与非门电路逻辑功能的测试 (1)选用双四输入与非门74LS20一片,插入数字电路实验箱中对应的IC座,按图1.1接线、输入端1、2、4、5、分别接到K1~K4的逻辑开关输出插口,输出端接电平显 图 1.1 示发光二极管D1~D4任意一个。 (2)将逻辑开关按表1.1的状态,分别测输出电压及逻辑状态。 表1.1 输入输出 1(k1) 2(k2) 4(k3) 5(k4) Y 电压值(v) H H H H 0 0 L H H H 1 1 L L H H 1 1 L L L H 1 1 L L L L 1 1 2. 异或门逻辑功能的测试

图 1.2 (1)选二输入四异或门电路74LS86,按图1.2接线,输入端1、2、4、5接逻辑开关(K1~K4),输出端A、B、Y接电平显示发光二极管。 (2)将逻辑开关按表1.2的状态,将结果填入表中。 表1.2 输入输出 1(K1) 2(K2) 4(K35(K4) A B Y 电压(V) L H H H H L L L H H H H L L L H H L L L L L H H 1 1 1 1 1 1 1 1

数字逻辑设计实验报告-实验13教材

浙江大学城市学院实验报告 课程名称 数字逻辑设计实验 实验项目名称 实验十二 数据选择器应用 学生姓名 专业班级 学号 实验成绩 指导老师(签名 ) 日期 注意: ● 务请保存好各自的源代码,已备后用。 ● 完成本实验后,将实验项目文件和实验报告,压缩为rar 文件,上传ftp 。如没有个人 文件夹,请按学号_姓名格式建立。 ftp://wujzupload:123456@10.66.28.222:2007/upload ● 文件名为:学号_日期_实验XX ,如30801001_20100305_实验0 1 一. 实验目的和要求 1. 掌握数据选择器的逻辑功能和使用方法。 2. 学习用数据选择器构成组合逻辑电路的方法。 二. 实验内容、原理及实验结果与分析 1、用74LS151实现逻辑函数 要求实现BC A AC C B A Y ++=,自己写出设计过程,画出接线图,并验证其逻辑功能。 计算得到m0=m7=0,m2=m4=m5=m6=1,m1=m3=D (1) 设计原理图 (2) 仿真,模拟验证,若组合成总线显示时,需要注意高低位

(3)组合输出信号 (4)配置管脚 (5)下载到FPGA

(6) 74LS151的输入端接逻辑电平输出(拨位开关),输出端Z 接逻辑电 平显示(发光二极管)。逐项测试电路的逻辑功能,记录测试结果。 2、用74LS151实现逻辑函数 要求实现逻辑函数C B CD A B A F ++=,自己写出设计过程,画出接线图,并验证其逻辑功能。芯片插法,电源、地线接法与实验内容1相同,这里只需要自己实现逻辑函数,然后连线实现其功能。 (1) 设计原理图 (2) 仿真,模拟验证,若组合成总线显示时,需要注意高低位

EDA数字逻辑实验报告

实验报告 课程名称_数字逻辑及系统设计实验学生学院____计算机____________ 专业班级软件2012(2)班 _ 学号 3112006177 学生姓名陈海兵 指导教师_____林小平 _________ 2013年 12 月24 日

一、 实验目的 1. 熟练掌握基本门电路的主要用途以及验证它们的逻辑功能。 2. 熟练掌握常用组合逻辑电路的基本原理及其逻辑电路功能。 3. 熟练掌握常用时序逻辑电路的基本原理及其逻辑电路功能。 4. 掌握Libero IDE 基于FPGA 的设计流程。 5. 熟悉FPGA 的设计与开发流程。熟悉芯片烧录的流程及步骤。 二、 实验要求 1. 要求每人能独立完成实验。严禁抄袭。 2. 能独立搭建Libero IDE 软件基础环境,掌握FPGA 的开发流程。 3. 按照实验指导书中P56-69的实验步骤进行设计,每一步骤均需要截图显示。 4. 完成3次仿真(综合前,综合后,布局布线后),并将仿真波形截图显示。 5. 将程序烧录到Actel Proasic3 A3P030 FPGA 核心板,在数字逻辑及系统实验箱上完成连 线,验证代码的正确性。 6. 纸制版的封面单面打印,其他页面必须双面打印。全班刻一张光盘。 三、 实验内容 1. 设计题目:用3-8译码器74HC138实现举重比赛的裁判表决电路的组合逻辑函数 ,写出模块代码和测试平台代码。 2. 74HC138功能表参照教材中P53表2-9,引脚图参照实验指导书中P30图2-16。 3. 把每一个步骤的实验结果截图,按实验指导书中P6图1-7中所列FPGA 引脚,手工分 配引脚,最后通过烧录器烧录至FPGA 核心板上。 4. 按分配的引脚连线,实测相应功能并记录结果。 四、 实验结果与截图 1. 模块及测试平台代码清单。 模块代码 // 74HC138.v module decoder3_8_1(DataIn,Enable1,Enable2,Enable3,Eq,y); input [2:0]DataIn; input Enable1,Enable2,Enable3; output [7:0]Eq; reg [7:0]Eq; output y; reg y; integer I; always @(DataIn or Enable1 or Enable2 or Enable3) begin if(Enable1||Enable2||!Enable3) Eq=0; AC BC AB Y ++=

数字电路实验报告

数字电路实验报告 班级:1403011 学号: 姓名:于梦鸽地点:EII-310 时间:第五批

实验一基本逻辑门电路实验 (一)实验目的 1.掌握TTL与非门、与或非门和异或门输入与输出之间的逻辑关系。 2.熟悉TTL中、小规模集成电路的外型、管脚和使用方法。 (二)实验所用器件 二输入四与非门74LS00 1片 (三)实验容 1、测试74LS00逻辑关系接线图 输 入输 出 引脚1引脚3 引脚2 K1 K2 23 LED0 L L L L H H H H 图1.1 测试74LS00逻辑关系接线图表1.1 74LS00真值表 2.用3个三输入端与非门IC芯片74LS10安装如图所示的电路 从实验台上的时钟脉冲输出端口选择两个不同频率(约 7khz和 14khz)的脉冲信号分别加到X0和X1端。对应B和S端数字信号的所有可能组合,观察并画出输出端的波形,并由此得出S和B(及/B)的功能。 (四)实验数据结果 1、测试74LS00的逻辑关系 ?逻辑关系连接图

? 真值表 2.测试74LS86的逻辑关系 ? 逻辑关系连接图 ? 真值表 3.测试74LS10的逻辑关系 ? 真值表 输 入 输出 引脚1 引脚2 引脚3 L L H L H H H L H H H L 输 入 输出 引脚1 引脚2 引脚3 L L H L H L H L L H H H S B Y L L 0 L H 0 H L X1 H H X0 LED K1 K2 LED K1 K2

实验二组合逻辑电路部件实验 (一)实验目的: 掌握逻辑电路设计的基本方法 掌握EDA工具MAX-PlusII的原理图输入方法 掌握MAX-PlusII的逻辑电路编译、波形仿真的方法 (二)实验容 1.逻辑单元电路的波形仿真 利用EDA工具的原理图输入法,分别输入74138图元符号;建立74138的仿真波形文件,并进行波形仿真,记录波形;分析74138逻辑关系。 3-8译码器74138的波形仿真 实验数据及结果 2.设计并实现一个3位二进制全加器 输入输出 E A1 A2 Q0 Q1 Q2 Q3 1 ΦΦ 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 E为允许使能输入线,A1、A2为译码器输入,Q0、Q1、Q2、Q3分别为输出。

数字逻辑实验报告-Verilog时序逻辑设计

电子科技大学 实验报告 学生姓名:任彦璟学号:2015040101018 指导教师:吉家成米源王华 一、实验项目名称:Verilog时序逻辑设计 二、实验目的: 掌握边沿D触发器74x74、同步计数器74x163、4位通用移位寄存器74x194,的工作原理。 设计移位寄存器74x194设计3位最大序列长度线性反馈移位寄存器(LFSR:Linear Feedback Shift Register)计数器。 设计同步计数器74x163 。 三、实验内容: 1.设计边沿D触发器74x74。 2.设计通用移位寄存器74x194。 3.采用1片74x194和其它小规模逻辑门设计3位LFSR计数器。 4.设计4位同步计数器74x163。 四、实验原理: 74x74逻辑电路图

CLK_D CLR_L_D S1_L S1_H S0_L S0_H w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 74x194逻辑电路图 3位LFSR逻辑电路图

74x163逻辑电路图 上图的设计可以采用门级描述,也可以采用教材《数字设计—原理与实践》(第4版)第525页的表8-20中的行为描述 五、实验器材(设备、元器件): PC 机、Windows XP 、Anvyl 或Nexys3开发板、Xilinx ISE 14.7开发工具、 Digilent Adept 下载工具。 六、实验步骤: 实验步骤包括:建立新工程,设计代码与输入,设计测试文件,设置仿真,查看波形,约束与实现、生成流代码与下载调试。 七、关键源代 码及波形图: 1.D 触发器的Verilog 代码 源码如下 module vr74x74(CLK, D, PR_L, CLR_L, Q, QN); input CLK, D, PR_L, CLR_L ; output Q, QN ; wire w1, w2, w3, w4 ; nand (w1, PR_L, w2, w4); nand (w2, CLR_L, w1, CLK) ; nand (w3, w2, CLK, w4) ; nand (w4, CLR_L, w3, D) ; nand (Q, PR_L, w2, QN); nand (QN, Q, w3, CLR_L); endmodule

数字集成电路设计实验报告

哈尔滨理工大学数字集成电路设计实验报告 学院:应用科学学院 专业班级:电科12 - 1班 学号:32 姓名:周龙 指导教师:刘倩 2015年5月20日

实验一、反相器版图设计 1.实验目的 1)、熟悉mos晶体管版图结构及绘制步骤; 2)、熟悉反相器版图结构及版图仿真; 2. 实验内容 1)绘制PMOS布局图; 2)绘制NMOS布局图; 3)绘制反相器布局图并仿真; 3. 实验步骤 1、绘制PMOS布局图: (1) 绘制N Well图层;(2) 绘制Active图层; (3) 绘制P Select图层; (4) 绘制Poly图层; (5) 绘制Active Contact图层;(6) 绘制Metal1图层; (7) 设计规则检查;(8) 检查错误; (9) 修改错误; (10)截面观察; 2、绘制NMOS布局图: (1) 新增NMOS组件;(2) 编辑NMOS组件;(3) 设计导览; 3、绘制反相器布局图: (1) 取代设定;(2) 编辑组件;(3) 坐标设定;(4) 复制组件;(5) 引用nmos组件;(6) 引用pmos组件;(7) 设计规则检查;(8) 新增PMOS基板节点组件;(9) 编辑PMOS基板节点组件;(10) 新增NMOS基板接触点; (11) 编辑NMOS基板节点组件;(12) 引用Basecontactp组件;(13) 引用Basecontactn 组件;(14) 连接闸极Poly;(15) 连接汲极;(16) 绘制电源线;(17) 标出Vdd 与GND节点;(18) 连接电源与接触点;(19) 加入输入端口;(20) 加入输出端口;(21) 更改组件名称;(22) 将布局图转化成T-Spice文件;(23) T-Spice 模拟; 4. 实验结果 nmos版图

数字逻辑实验报告1

姓名xxx学号xxxxxxxx 教师 xxx 时间xxx地点xxx楼xxx机房机位 一.与非门逻辑功能测试实验 1.实验目的 1)熟悉TTL中、小规模集成电路的外形、管脚和使用方法。 2)了解和掌握基本逻辑门电路的输入与输出之间的逻辑关系及使用规则。 3)测试与非门74LS00芯片的逻辑功能。 4)根据测试结果完成74LS00的真值表1-4。 2.原理 实现基本逻辑运算和常用逻辑运算的单元电路通称为逻辑门电路。实现“与非”运算的电子电路称为与非门。根据制造工艺不同,逻辑门电路有两大类,一类是以晶体三极管为主要元件的双极型逻辑门电路,另一类是MOS场效应管为主要元件的MOSx型逻辑门电路。根据门电路输出端结构不同,又分为基本输出门电路、开路输出门电路、三台门电路。门电路用高电平表示逻辑值“1”,低电平表示逻辑值“0”。只有相同类型的门电路,其电平才相匹配。 参照74LS00芯片的引脚,将引脚1、2(A、B)分别连接到任意一个小开关插孔上,引脚3(F)连接到任意一个发光二极管电平指示灯插孔,引脚7连接接地插孔,引脚14连接+5V电源插孔,这样就构成了一个与非门电路。 拨动开关(开关拨向下方为0,拨向上方为1)组合A、B的值,观察F(上方的发光二极管指示0,下方的发光二极管指示1)的结果。 3.实验步骤 1)将74LS00的输入引脚连接到任一开关,输出连接到任一对发光二极管。 引脚7连接“接地插孔”;引脚14连接+5V电源插孔。 2)拨动开关,观察二极管的变化,填表1-4。 4.实验数据 表1-4 5.实验现象 在与非门中,只有当A和B的输入都为1时,输出才为0。由于上方的灯亮

数字逻辑设计实验报告

数字逻辑设计实验之--数字时钟 (姓名:网班:1班序号) 摘要:本实验完成了数字时钟的设计,数字时钟是一种用数字显示秒、分、时的计时装置,由于数字集成电路技术的发展和采用了先进的石英技术,它使数字钟具有走时准确、性能稳定、携带方便等优点。数字时钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活带来极大的方便。VHDL是广泛应用的硬件描述语言,可以用在硬件设计流程的建模、综合和模拟等多个阶段。通过应用VHDL对数字时钟的设计,达到对VHDL的理解。该系统在开发软件Quartus Ⅱ环境中设计完成,本文给出了设计该数字时钟系统的流程和方法。 关键词:数字时钟VDHL Quartus Ⅱ 一、实验目的 (1)通过设计一个2FSK调制器,初步了解QuartusII采用VHDL编程方式进行设计的流程。 (2)进一步熟悉FPGA开发的流程以及基本的设计方法、基本的仿真分析方法。 二、课题分析 在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。 首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,在已经正确的设计基础上,添加额外的功能! 三、实验内容 (1)、数字时钟钟要求: ①、显示时、分、秒 ②、时钟的“时”、“分”、“秒”要求各用两位显示; ③、整个系统要有校时部分(可以手动,也可以自动),校时时不能产生进位; (2)设计思想:

北京邮电大学数字电路实验报告

北京邮电大学数字电路实验报告

北京邮电大学 数字电路与逻辑设计实验 实验报告 实验名称:QuartusII原理图输入 法设计与实现 学院:北京邮电大学 班级: 姓名: 学号:

一.实验名称和实验任务要求 实验名称:QuartusII原理图输入法设计与实现 实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。 ⑵掌握QuartusII图形模块单元的生成与调用; ⑶熟悉实验板的使用。 实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑 门设计实现一个半加器,生成新的半加器图像模 块。 ⑵用实验内容(1)中生成的半加器模块以及逻辑门 实现一个全加器,仿真验证其功能,并能下载到实 验板上进行测试,要求用拨码开关设定输入信号, 发光二级管显示输出信号。 ⑶用3线—8线译码器(74L138)和逻辑门实现要求 的函数:CBA F+ C + =,仿真验证其 + B C B A A A B C 功能,,并能下载到实验板上进行测试,要求用拨 码开关设定输入信号,发光二级管显示输出信号。二.设计思路和过程 半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。 a表示加数,b表示被加数,s表示半加和, co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知b a s ⊕=;b a co ?= 选择两个逻辑门:异或门和与门。a,b 为异或门和与门的输入,S 为异或门的输出,C 为与门的输出。 (3)利用QuartusII 仿真实现其逻辑功能,并生成新的半加器图形模块单元。 (4)下载到电路板,并检验是否正确。 全加器的设计实现过程:⑴全加器能够由两个半加器和一个或门构成。全加器有三个输入值a,b,ci ,两个输 出值s,co :a 为被加数,b 为加数,ci 为低 位向高位的进位。 ⑵全加器的逻辑表 示式为: c b a s ⊕⊕= b a ci b a co ?+?⊕=)(

数字电路综合设计报告

成都信息工程学院数字电路综合设计报告 课程名称:乐曲演奏电路综合设计系部:信息安全工程学院 专业班级:信对121 学生姓名:罗星 学号:2012123015 指导教师:邓娜曾祥萍龚一光

一. 设计要求 (3) 二. 系统概述及工作原理 (3) 2.1系统概述 (3) 2.2工作原理 (3) 2.2.1乐曲发声原理 (3) 2.2.2硬件电路发声原理 (4) 三. 设计的具体实现 (4) 3.1单元电路设计与分析 (5) 3.1.1十分频器 (5) 3.1.2数控分频器 (6) 3.1.3分频预置数器 (7) 3.1.4 lpm_connter的设置 (9) 3.2音乐演奏电路的总体工作原理,时钟和音乐节拍的控制关系 (11) 3.2.1总体工作原理 (11) 3.2.2时钟和音乐节拍的控制关系 (11) 3.3调试及运行 (11) 3.3.1运行结果 (11) 3.3.2扩展为其他音乐的方法 (11) 四.心得体会及建议 (12)

基于FPGA的音乐演奏电路设计 一.设计要求 1. 设计一个乐曲硬件演奏电路,通过数字逻辑电路控制蜂鸣器演奏指定的乐曲; 2. 使用数字电路实验板上的FPGA器件(EP1C3T144C8)作为硬件电路平台,使用板载的交流蜂鸣器作为发声元件; 3. 在QuartusII环境下,将各单元电路按各自对应关系相互连接,构成乐曲硬件演奏电路,进行编译及仿真; 4. 将设计下载到实验板上验证乐曲演奏的效果。 二.系统概述及工作原理 2.1系统概述 该系统主要由十分频器,数控分频器,分频预置数器,计数器等构成。 整体电路框图如图一: 图1 2.2工作原理 2.2.1乐曲发声原理 1.乐曲中的每一音符对应着一个特定的频率,要想FPGA发出不同音符的音调,

数字逻辑实验报告

数字逻辑实验报告 姓名:任凯 学号:139074018 班级:计131

实验一 3-8 译码器设计(原理图设计输入)(本实验将详细介绍Altera 公司MAX+PlusⅡ软件的基本应用) 一、实验目的 1. 通过一个简单的3-8 译码器的设计,让学生掌握用原理图描述组合 逻辑电路的设计方法。 2. 掌握组合逻辑电路的软件仿真方法。 3. 初步了解可编程器件设计的全过程。 二、实验步骤 1. 设计输入 1.1 启动MAX+PlusⅡ软件包,选择File/New 菜单,弹出设计输入选择窗口,如下图1.1 所示: 1.2 选择Graphic Editor File,单击“ OK”按钮,打开原理图编辑器,进入 原理图设计输入电路编辑状态。如下图1.2 所示: 1.3 设计的输入 1 )放置一个器件在原理图上 a. 在原理图的空白处双击鼠标左键(或者单击右键选择Symbol/Enter Symbol 快捷菜单),弹出图1.3 所示对话框。 b. 在Symbol Name 框中输入元件名称或用鼠标在元件库中选取所需元件,按下“OK”按钮即可。 c. 对于相同的元件,只要按住Ctrl 键的同时拖动鼠标即可进行复制;也可采用复制/粘贴的方法进行复制。 d. 一个完整的电路应包括:输入端口INPUT、电路元器件的集合、输出端口OUTPUT。 e. 图 1.4为3-8 译码器元件的安放结果。

图 1.4 2)在器件的管脚上添加连线 把鼠标移到元件引脚附近,鼠标指针由箭头变为十字,按住鼠标左键拖动即可画出连线。图1.5 为3-8 译码器原理图。

图1.5 3)标记输入/输出端口属性 双击输入/输出端口的“PIN_NAME”,变成黑色时输入标记符并回车确认。本译码器将三个输入端标记为A、B、C,输出端标记为D0~D7。标记输入/输出端口后的3-8 译码器原理图如图1.6 所示。

相关主题
文本预览
相关文档 最新文档