数字电路及逻辑实验指导书_第1页
数字电路及逻辑实验指导书_第2页
数字电路及逻辑实验指导书_第3页
数字电路及逻辑实验指导书_第4页
数字电路及逻辑实验指导书_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字电路及逻辑实验指导书计算机科学与技术学院 实验教学中心 洪国铭 编写 200631目 录第一章 实验平台简介11 LP-2900逻辑设计实验平台12 逻辑门第二章 Verilog HDL简介 21 Verilog HDL基本结构22 数据类型及常量、变量23 运算符24 语句 241 赋值语句 242 条件语句 243 case语句244 循环语句245 always块语句第三章 PLD开发软件MAX+PLUSII的使用指导3 1 基于MAX+PLUSII的设计输入32 基于MAX+PLUSII的平面编辑33 基于MAX+PLUSII的模拟仿真34 基于MAX+PLUSII的编程下载第四章 数字电路及逻辑实验41 一位半加器设计42 表决电路的设计43 译码器的设计44 数据比较器的设计45 优先编码器的设计46 同步计数器的设计47 分频(除频)器的设计48 异步计数器的设计49 移位寄存器的设计410 数字显示电路的设计第五章 实验参考程序第一章 实验平台简介11 LP-2900逻辑设计实验平台LP-2990逻辑设计实验平台由CPLD晶片板、I/O元件实验板、PC下载界面电路和电源四部分组成。1、CPLD晶片板在CPLD晶片板上,有一片Altera 10K系列晶片,Altera EPF10K10TC144-4 CPLD,该晶片提供不断重新下载新电路的弹性与便利。2、I/O元件实验板 在I/O元件实验板上,有12种I/O元件:4组红绿黄LED;6个共阴极七段显示器;一个蜂鸣器;两个电子骰子;一个时序电路;3组8位开关;4个脉冲按键;一个4x3键盘;一块8x8点矩阵LED显示器;一个液晶显示器;A/D与D/A电路组件;8051单片机模组。这些I/O元件,提供了调试逻辑电路必要的环境。为了便于实验,给出LP-2900的部分I/O元件的脚位:4组红绿黄LED代号L1L2L3L4L5L6L7L8装置红LED黄LED绿LED红LED黄LED绿LED红LED黄LED脚位Pin7Pin8Pin9Pin10Pin11Pin12Pin13Pin14 代号L9L10L11L12 LED_COM装置绿LED红LED黄LED绿LED LED1-LED12的共阴点脚位Pin17Pin18Pin19Pin20Pin141 6个共阴极七段显示器 代号abcdefgdp脚位Pin23Pin26Pin27Pin28Pin29Pin30Pin31Pin32 代号DE1DE2DE3脚位Pin33Pin36Pin37 DE1、DE2、DE3为译码器(74LS138)的输入端,译码器(74LS138)输出端Y0- - -Y5为C1- - -C6,C1- - -C6分别为6个显示器阴极共点端。 4x3键盘代号DE1DE2DE3RK1RK2RK3脚位Pin33Pin36Pin37Pin42Pin43Pin44 RK1 RK2 RK3 为键盘列输出。 DE1、DE2、DE3为译码器(74LS138)的输入端,译码器(74LS138)输出端Y0- - -Y3为C1- - -C4,C1- - -C4分别为键盘的扫描输出。 3组8位开关 代号Sw1Sw2Sw3Sw4Sw5Sw6Sw7Sw8脚位Pin47Pin48Pin49Pin51Pin59Pin60Pin62Pin63代号Sw9Sw10Sw11Sw12Sw13Sw14Sw15Sw16脚位Pin64Pin65Pin67Pin68Pin69Pin70Pin72Pin73 代号Sw17Sw18Sw19Sw20Sw21Sw22Sw23Sw24脚位Pin78Pin79Pin80Pin81Pin82Pin83Pin86Pin87 蜂鸣器 代号 Sp1脚位Pin46时序电路 代号 SOC脚位Pin55(10MHZ)3、PC下载界面电路 PC与LP2900的通信电路。12 逻辑门为了便于在图形方式下选取逻辑器件和在文本方式下使用门原语设计逻辑电路,下面给出部分逻辑门符号以供使用。(1)图形方式逻辑门名称and2 两输入端与门 andi i输入端与门or2 两输入端或门 (i = 2 8)nand2 两输入端与非门nor2 两输入端或非门not 非门xor 异或门xnor 同或门tri 三态门 (2)门原语设计使用逻辑符号and 与 如:一位半加器nand 与非 module fadd(s,c,a,b);/端口列表or 或 input a,b; /输入nor 或非 output s,c; /输出not 非 xor (s,a,b); /s=a异或bxor 异或 and (c,a,b); /c=a与bxnor 同或 andmodule 第二章 Verilog HDL简介 21 Verilog HDL基本结构module 模块名 (I/O端口列表);input 输入端口列表;output 输出端口列表;/wire,reg 信号类型声明;/使用assign语句定义逻辑功能 assign 结果信号名=表达式;/使用always块描述逻辑功能always (敏感信号表达式)begin/过程赋值/if语句/case语句/for循环语句endendmodule22 数据类型(部分)、常量及变量wire 连线型reg 寄存器型在程序运行过程中,其值不变的量称为常量。用parameter来定义。如:parameter sel=8,code=8ha3,bit=4b0110;二进制数(b)十进制数(d)十六进制数(h)八进制数(o)在程序运行过程中,其值可改变的量称为变量。如:wire out,in; /定义out,in 为wire型变量reg 3:0a,b; /定义a,b 分别为四位的reg型变量2. 3 运算符算数运算符:+ (加) - 减)逻辑运算符:&(逻辑与) |(逻辑或) !(逻辑非)位运算符: (按位取反) &(按位与) |(按位或) (按位异或) (按位同或)关系运算符: (小于) (大于) =(大于或等于)等式运算符:= =(等于) !=(不等于) 移位运算符:(右移) (左移) 如语句:a=a2 ; /a左移2位。三目运算符:信号=条件?表达式1:表达式2; 如语句:out=sel?a:b; /当sel=1,out=a 否则 out=b位拼接运算符: 它将两个或多个变量的某些位拼接起来。 如四位全加器:output 3:0sun; output cout; input3:0 ina; input3:0 inb; input cin; assign cout,sun=ina+inb+cin;运算符的优先级:表中顶部符号级别最高,必要时可用( )确定运算次序。运算符!* / %+ - = = != & & | |2. 4 语句2.5.1 赋值语句assign 为连续赋值语句,它用于对wire型变量赋值。如:assign c=a&b; assign d=a+b; assign out=a,b; 2.5.2 条件语句(1) if(表达式) 语句;(2) if(表达式) 语句1;else 语句2;(3) if (表达式) 语句1;else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式n) 语句n else 语句n+1这三种方式,“表达式”一般为逻辑表达式或关系表达式,也可能是一位变量。系统对表达式的判断,若0、x、z按“假”处理,若为1,按“真”处理,执行语句。语句可能是单语句,也可能是多语句,多语句用begin end语句括起来。 2.5.3 case语句相对if语句只有两个分枝而言,case 语句是一种多分枝语句,故case语句多用于多分枝条件译码电路。如描述译码器、数据选择器、状态机及微处理器的指令译码等。格式如下:case(敏感表达式) 值1:语句1; /当敏感表达式值=值1时,执行语句1。值2:语句2; /当敏感表达式值=值2时,执行语句2。- - - - 值n:语句n; /当敏感表达式值=值n时,执行语句n。default: 语句n+1; /当敏感表达式值!=列出值时,执行语句n+1。endcase default语句,不需要可省略。 2.5.3 for循环语句 for(表达式1;表达式2;表达式3) 既for(循环变量赋初值;循环条件;循环变量增值) 如用for语句实现8 x 8乘法: module mult8(outcome,a,b);parameter size=8;inputsize:1a,b;output2*size:1outcome;reg2*size:1outcome;integer i;always (a or b)begin outcome=0; for(i=1;i=size;i=i+1) if(bi) outcome=outcome+(adevice familyflex10k Devices:EPF10k10tc144-43、电路输入(图形方式)(1) 新建工程:FileProjectName输入工程名ok。(2) 新建文件:FileNew选择Graphic Editor Fileok。(3) 保存文件名:FileSave Asok,出现图形编辑窗口。(4) 电路输入:在画面上点击鼠标右键Enter symbol输入电路符号ok。(5) 电路连接:使用窗口左侧的绘图工具连接电路。(6) 管角命名:鼠标移动到管角名称处点击鼠标右键Edit pin name输入管 角名ok。 (7) 存储检查:FileProjiectSave&check。如果有错,按4、5、6步修改。4、文本输入(文本方式)(1) 新建工程:FileProjectName输入工程名ok。(2) 新建文件:FileNew选择Text Editor Fileok输入文名。(3) 保存文件名:FileSave As将文件的扩展名.dtf改成.v或.vhd。Verilog HDL文本用.vok;VHDL文本用.vhdok,出现文本编辑窗口。(4) 入文本文件。(5) 存储检查:FileProjiectSave&check。如果有错,修改文本文件。32 基于MAX+PLUSII的平面编辑 (1)平面规划:Max+plusIIFloorplan editor(将右上角框内的管角拖到下方的窗口芯片的对应管角上)。如未出现上述窗口,操作:layout将lab view点选为Current Assignment Floorplan。(2)平面编译:Max+plusIICompilerStsrt。33 基于MAX+PLUSII的模拟仿真(1) 选择波形文件:FileNewwaveform Editor fileok。(2) 选择仿真节点:NodeEnter Nodes form SNFList = ok。(3) 设置波形或数据:利用窗口左侧图标进行设置。(4) 存储波形文件:FileSave Asok。(5) 波形模拟仿真:Max+plusSimulatorStart。3 4 基于MAX+PLUSII的编程下载(1) 编程下载:Max+plusIIProgrammerConfigure (hardtype : ByteBlaster MV)。(2) 功能调试:在LP-CPLD2900数字实验平台上验证电路功能。 第四章 数字电路及逻辑实验逻辑电路根据输出信号对输入信号响应的不同分为两类:组合逻辑电路(简称组合电路)与时序逻辑电路(简称时序电路)。在组合逻辑电路中,电路在任一时刻的输出信号仅仅决定于该时刻的输入信号,而与电路的原有的输出状态无关。从电路的结构上看,组合逻辑电路的输出端和输入端之间没有反馈回路。在时序逻辑电路中,任何时刻电路的输出不仅取决于该时刻的输入信号,也取决于电路过去的输入。一般来说,它是由组合逻辑电路和存储电路两部分组成,并形成反馈回路。41 一位半加器的设计411实验内容试设计两个一位二进制变量a、b相加,输出本位和s及进位c的逻辑电路。412设计方法1、利用真值表法,写出最简与或逻辑表达式 输入变量a b输出变量s c0 00 11 0 1 10 01 01 00 1 s = ab+ab=ab c =ab 逻辑符号名:xor-异或门 ; and2-两输入与门。2、根据最简逻辑表达式,用MAX+PLUSII图形输入法,画出逻辑电路3、存储检查、平面编辑及下载调试4、用Verilog HDL连续赋值语句assign描述 module fadd(a,b,s,c,ledcom); input a,b; output s,c,ledcom ; wire a,b,s,c ; assign ledccom=1; assign s=!a&b|a&!b; assign c=a&b; endmodule 5、用Verilog HDL门原语设计上述逻辑功能(考核点)6、用VHDL描述 ENTITY fadd ISPORT (a,b:IN BIT; f,cout,ledcom:OUT BIT); END ENTITY fadd;ARCHITECTURE stuctural OF fadd IS CONSTANT vcc:BIT:=1; BEGIN ledcom=vcc; f=a xor b; cout=a and b;END ARCHITECTURE stuctural;42 表决电路的设计4.2.1实验目的掌握组合电路最基本的设计过程(命题 真植表 逻辑表达式 逻辑电路),本节重点是了解LP2900逻辑实验平台、学习EDA设计软件之一MAX+PLUS,为后继实验项目的设计、仿真、下载调试及深入学习打下基础。4.2.2实验内容试设计三变量表决电路,当输入端a、b、c三变量中多数为1时,电路输出f=1,否则f=0。4.2.3设计方法1、 建立真植表,利用公式法或卡诺图法写出最简与或逻辑表达式。 f (a,b,c)=m(3,5,6,7)=bc+ac+ab 逻辑符号名:and2-两输入与门 ; or3-三输入或门。2、 根据最简逻辑表达式,用MAX+PLUSII图形输入法,画出逻辑电路。 3、存储检查、平面编辑及下载调试 4、用Verilog HDL 门原语描述 module biaojue(a,b,c,f,ledcom); input a,b,c; output f , ledcom; assign ledcom=1; and(f1,a,b); and(f2,a,c); and(f3,b,c); or(f,f1,f2,f3); endmodule 5、试用Verilog HDL连续赋值语句assign描述上述逻辑功能(考核点)6、用VHDL语言描述 ENTITY biaojue IS PORT (a,b,c:IN BIT; f,ledcom:OUT BIT); END ENTITY biaojue; ARCHITECTURE stuctural OF biaojue IS CONSTANT t:bit:=1; BEGIN PROCESS(a,b,c) VARIABLE f1,f2,f3:bit; BEGIN ledcom=t; f1:=a and b; f2:=a and c; f3:=b and c; f=f1 or f2 or f3;END PROCESS;END ARCHITECTURE stuctural; 43 译码器的设计431概念实现译码功能的组合逻辑电路称为译码器,它的输入是一组二进制代码,输出是一组高低电平信号。如果每输入一组不同的代码,只有一个输出端呈现有效状态,通常称为多一译码器(一般用于选择设备、接口或电路部件);如果每输入一组不同的代码, 输出端呈现另一组编码与之对应,称为多对多译码器(一般用于代码转换)。432设计内容试设计一个具有使能端的2:4译码器,要求使能输入端g = 0时,允许对输入的二进制代码进行译码,对应的输出端输出0,其它输出端输出均为1。当使能输入端g = 1时,禁止对输入的二进制代码进行译码,译码器的输出y0、y1、y2、y3均为1。433设计方法1、建立真植表,利用公式法或卡诺图法写出最简与或许逻辑表达式 使能控制 G输入端A1 A0输 出 端Y3 Y2 Y1 Y0 1 0 0 0 0X X0 00 11 01 11 1 1 11 1 1 01 1 0 11 0 1 10 1 1 1 y0=ga1a0; y1=ga1a0 ; y2=ga1 a0; y3=ga1 a0;y0=(ga1a0);y1=(ga1a0);y2=(ga1 a0);y3=(ga1 a0);逻辑符号名:nand3-三输入与非门 ; not-非门。 2、根据最简逻辑表达式,用MAX+PLUSII图形输入法,画出逻辑电路 3、存储检查、平面编辑及下载调试4、用三目条件运算符描述 module decoder (g,a1,a0,y3,y2,y1,y0,ledcom) ;input a1,a0 ;input g ;output y3,y2,y1,y0 ;output ledcom ;assign ledcom=1 ;assign y0=(!g&!a1&!a0)?0 :1 ; / 信号=条件?表达式1:表达式2;assign y1=(!g&!a1&a0)?0 :1 ; assign y2=(!g&a1&!a0)?0 :1 ;assign y3=(!g&a1&a0)?0 :1 ;endmodule 5、试用Verilog HDL case语句描述上述逻辑功能(考核点) 6、用VHDL case语句描述上述逻辑功能LIBRARY IEEE;USE IEEE.STD_lOGIC_1164.ALL;ENTITY decoder IS PORT(g,a0,a1:In STD_LOGIC;q3,q2,q1,q0:OUT STD_LOGIC);END ENTITY decoder;ARCHITECTURE rtl OF decoder ISSIGNAL tmp_in:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL tmp_out:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN tmp_intmp_outtmp_outtmp_outtmp_outtmp_out=1111; END CASE; ELSE tmp_out=1111; END IF; q0=tmp_out(0); q1=tmp_out(1); q2=tmp_out(2); q3b1b0时g=1, 当a1a0 b1 X a1 b0 a1 = b1 a0 b) begin g=1;s=0;e=0;end else if(ab) begin s=1;g=0;e=0;end else begin e=1;g=0;s=0;end endendmodule5、试用Verillog HDL三目条件运算符描述(考核点)6、用VHDL语言描述library ieee;use ieee.std_logic_1164.all;entity comp isport(a,b:in std_logic_vector(1 downto 0);- g,s,e,ledcom:out std_logic);end entity comp;architecture rtl of comp is constant t:std_logic:=1; signal tmp:std_logic_vector(2 downto 0);begin ledcomb)then tmp=100; elsif(ab)then tmp=010; else tmp=001; end if; g=tmp(2); s=tmp(1); e=tmp(0); end process;end rtl; 45 优先编码器451概念在数字系统中,要对所处理的信息或数据赋予二进制代码,称为编码。用来完成编码工作的数字电路称为编码器。前述的译码器实现的是“多对一” 译码,而编码器则实现“一对多” 译码。优先编码器允许多个输入信号同时有效,当多个输入信号同时有效时,优先编码器只对其中优先级别最高的输入信号编码。级别较低输入信号不予理睬。452设计内容设计一个二进制优先编码器,输入信号为i3、i2、i1、i0(i3优先级别最高),输出端q1、q0输出的编码为输入信号角标的反码(例如i3=0时,其它任意,q1q0=00)。要求当编码控制信号st=1(禁止编码)时,q1q0=11、测试端ys=0。 当st=0(允许编码)时,i3、i2、i1、i0无有效信号输入(低电平有效),q1q0=11、测试端ys=0;否则q1q0输出对应输入信号角标的反码,ys=1。ys=1表示q1q0编码是有效的编码。453设计方法1、 建立功能表,利用公式法或卡诺图法写出逻辑表达式编码控制 st输入信号 i3 i2 i1 i0输出编码q1 q0测试端 ys100000 x x x x 1 1 1 10 x x x1 0 x x 1 1 0 x1 1 1 01 11 10 00 1 1 0 1 1001111q1 =st+st(i3i2i1i0+i3i2i1+i3i2i1i0)=st +i3i2 ;利用公式ab+ac=a(b+c); a+ab=a+bq0 =st+st(i3i2i1i0+i3i2+i3i2i1i0)=st+i3i1+i3i2 a+b+c=(abc)ys =st(i3+i3i2+i3i2i1+i3i2i1i0)=st(i3+i2+i1+i0)=st(i3i2i1i0)2、根据最简逻辑表达式,用MAX+PLUSII图形输入法,画出逻辑电路 3、存储检查、平面编辑、波形仿真及下载调试4、试用Verilog HDL case语句描述 (1) module encoder4_2 (st,i3,i2,i1,i0,q1,q0,ys,ledcom);input st;input i3,i2,i1,i0;output ys;output q1,q0;output ledcom;reg q1,q0,ys;assign ledcom=1; always (st)begin if(st) q1,q0,ys=3b110; else case(i3,i2,i1,i0) 4b0000:q1,q0,ys=3b001; 4b0001:q1,q0,ys=3b001; 4b0010:q1,q0,ys=3b001; 4b0011:q1,q0,ys=3b001; 4b0100:q1,q0,ys=3b001; 4b0101:q1,q0,ys=3b001; 4b0110:q1,q0,ys=3b001; 4b0111:q1,q0,ys=3b001; 4b1000:q1,q0,ys=3b011; 4b1001:q1,q0,ys=3b011; 4b1010:q1,q0,ys=3b011; 4b1011:q1,q0,ys=3b011; 4b1100:q1,q0,ys=3b101; 4b1101:q1,q0,ys=3b101; 4b1110:q1,q0,ys=3b111; default:q1,q0,ys=3b110; endcaseendendmodule试用Verilog HDL ifelse ifelse if-语句描述(2) module encoder4_2 (st,i3,i2,i1,i0,q1,q0,ys,ledcom);input st;input i3,i2,i1,i0;output ys;output q1,q0;output ledcom;reg q1,q0,ys;assign ledcom=1; always ( i3 or i2 or i1 or i0 or st)begin if(st) q1,q0,ys=3b110; else if(!i3) q1,q0,ys=3b001; else if(!i2) q1,q0,ys =3b011; else if(!i1) q1,q0,ys =3b101; else if(!i0) q1,q0,ys=3b111; else q1,q0,ys=3b110;endendmodule5、用VHDL语言描述如下:library ieee;use ieee.std_logic_1164.all;entity p_encoder isport(st,i3,i2,i1,i0:in std_logic; q1,q0,ys:out std_logic);end entity p_encoder;architecture rtl of p_encoder is signal temin: std_logic_vector(3 downto 0); signal temout: std_logic_vector(2 downto 0);begin temin=i3&i2&i1&i0;-并置语句 process(st,temin) begin if(st=0)then if( temin=1111)then temout=110; elsif(temin(3)=0)then temout=001; elsif(temin(2)=0)then temout=011; elsif(temin(1)=0)then temout=101; elsif(temin(0)=0)then temout=111; end if; else temout=110; end if; ys=temout(0); q0=temout(1); q1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论