西北工业大学数电实验报告材料二Quartus和Multisim
- 格式:doc
- 大小:395.63 KB
- 文档页数:10
数字电子技术基础实验报告题目:实验四基于Quartus II的硬件描述语言电路设计小组成员:小组成员:一、实验四基于Quartus II的硬件描述语言电路设计一、实验目的1)学习并掌握硬件描述语言VHDL;熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。
2)熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。
3)熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。
4)熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。
二、实验要求要求1:参考“参考内容1”中给出的与门源程序,编写一个异或门逻辑电路。
1)用QuartusII波形仿真验证;2)下载到DE0开发板验证。
要求2:参考“参考内容2”中给出的将8421BCD码转换成0-9的七段码译码器源程序,编写一个将二进制码转换成0-E的七段码译码器。
1)用QuartusII波形仿真验证;2)下载到DE0开发板,利用开发板上的数码管验证。
要求3:参考“参考内容3”中给出的四位二进制计数器的源程序,编写一个计数器实现0-E计数。
用QuartusII波形仿真验证;要求4:参考“参考内容4”中给出的50M分频器的源程序,编写一个能实现占空比50%的5M和50M分频器即两个输出,输出信号频率分别为10Hz和1Hz。
下载到DE0开发板验证。
(提示:利用DE0板上已有的50M晶振作为输入信号,通过开发板上两个的LED灯观察输出信号)。
电路框图如下:要求5:利用已经实现的VHDL模块文件,顶层文件采用原理图设计方法,实现0-E计数自动循环显示,频率1Hz和10Hz可以切换。
(提示:如何将VHDL模块文件在顶层原理图文件中引用,参考参考内容5)三、实验设备(1)电脑一台;(2)数字电路实验箱;(3)数据线一根。
四、实验原理1.VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。
它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
QuartusII实验报告××××⼤学实验报告⾃学院(系)专业班成绩评定实验题⽬:第周星期⼀、实验⽬的1. 熟悉译码器、数据选择器、计数器等中规模数字集成电路(MSI)的逻辑功能及其使⽤⽅法。
2. 掌握⽤中规模继承电路构成逻辑电路的设计⽅法。
3. 了解EDA软件平台Quartus II的使⽤⽅法及主要功能。
⼆、预习要求1. 复习数据选择器、译码器、计数器等数字集成器件的⼯作原理。
2. 熟悉所有器件74LS153、74LS138、74LS161的功能及外引线排列。
3.完成本实验规定的逻辑电路设计项⽬,并画出接线图,列出有关的真值表。
三、实验基本原理1.译码器译码器的逻辑功能是将每个输⼊的⼆进制代码译成对应的⾼、低电平信号。
译码器按功能可分为两⼤类,即通⽤译码器和显⽰译码器。
通⽤译码器⼜包括变量译码器和代码变换译码器。
变量译码器是⼀种完全译码器,它将⼀系列输⼊代码转换成预知⼀⼀对应的有效信号。
这种译码器可称为唯⼀地址译码器。
如3线—8线、4线—16线译码器等。
显⽰译码器⽤来将数字或⽂字、符号的代码译成相应的数字、⽂字、符号的电路。
如BCD-七段显⽰译码器等。
2.数据选择器数据选择器也陈伟多路选择器或多路开关,其基本功能是:在选择输⼊(⼜称地址输⼊)信号的控制下,从多路输⼊数据中选择某⼀路数据作为输出。
因此,数据选择器实现的是时分多路输⼊电路中发送端电⼦开关的功能,故⼜称为复⽤器。
⼀般数据选择器有n 个地址输⼊端,2n个数据输⼊端,⼀个数据输出端或反码数据输出端,同时还有选通端。
⽬前常⽤的数据选择器有2选1、4选1、8选1、16选1等多种类型。
3.计数器计数器是⼀个庸医实现技术功能的时序部件,它不仅可以⽤来对脉冲计数,还常⽤作数字系统的定时、分频、执⾏数字运算以及其他⼀些特定的逻辑功能。
74LS161是4位同步⼆进制计数器,它除了具有⼆进制加法计数功能外,还具有预置数、保质和异步置零等附加功能。
实验二、反相器(上)一、分析电路,解答下面的问题1.这个电路是不是反相器,为什么?该门属于有比逻辑,还是无比逻辑,为什么?是。
因为当Vin=1时,下拉网络导通,Vout=0;当Vin=0时,M1截止,Vout经RL充电至1,所以是反相器。
有比逻辑。
因为上拉网络始终导通,所以当下拉网络导通时存在竞争,所以是有比逻辑。
2.计算出这个电路的V OH V OL及V IH V IL。
(计算可先排除速度饱和的可能)V in=0时,V OH=2.5VV in=2.5时,假设NMOS 工作在临界饱和区:AI V R I vV V V A I V V L W K I D out L D T in out D T in D61142`1073.55.207.243.05.21039.7)(2/--⨯=⇒+=⎪⎩⎪⎨⎧=-=-=⨯=⇒-⨯=这样的话根据D D I I <1,器件实际工作在线性区⎪⎪⎪⎩⎪⎪⎪⎨⎧=+=--=v V V R I V V V V L W KI in OL L D OL OL T in D 5.25.2]2)[(2`6`10115-⨯=K 将, 5.0/5.1=L W,43.0=T V代入kohm R L 75=解得:=OL V 0.04633V由图得:V OH =2.5V, V OL =0.0356V. 当out in V V =时,NMOS 工作在饱和区⎪⎩⎪⎨⎧+=-⨯=outL D T in DV R I V V L W K I 5.2)(2/2`反相器阈值电压===out in M V V V 0.7932 此时-6.8978)43.0(875.255.2,)43.0(9375.125.22=--==--=in VinVoutin out V d d g V V ⎪⎪⎩⎪⎪⎨⎧=--==+=0.5458||0.9082||g V V V V g V V V M OH M IL M M IH由图得:V IH =0.881V, V IL =0.0378V. SP 文件:.TITLE 1.2UM CMOS INVERTER .options probe.options tnom=25.options ingold=2 limpts=30000 method=gear.options lvltim=2 imax=20 gmindc=1.0e-12.protect.lib'C:\synopsys\cmos25_level49.lib' TT.unprotect.global vddMn out in 0 0 NMOS W=1.5u L=0.5u *(工艺中要求尺寸最大0.5u)RL OUT V DD 75kVDD VDD 0 2.5VVIN IN 0 0.DC VIN 0 2.5V 0.1V.op.probe dc v(out).end3.分析电路噪声容限。
北京邮电大学数字电路与逻辑设计实验实验报告实验名称: QuartusII原理图输入法设计与实现学院:班级:姓名:学号:任课老师:实验日期:成绩:一.实验名称和实验任务要求实验名称:QuartusII原理图输入法设计与实现实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。
⑵掌握QuartusII图形模块单元的生成与调用;⑶熟悉实验板的使用。
实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑门设计实现一个半加器,生成新的半加器图像模块。
⑵利用已生成的半加器实现全加器,仿真验证其功能,并能下载到实验板上进行测试。
⑶在一下三个实验内容中任选一个完成实验:用3线—8线译码器(74L138)和逻辑门实现要求的函数;用D触发器设计一个4位可以自启动的环形计数器;用JK触发器设计一个8421码十进制计数器。
二.设计思路和过程半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。
A表示加数,B表示被加数,S表示半加和,C表示向高位的进位。
⑵由数字电路与逻辑设计理论知识可知:S=A⊕B C=AB⑶选择两个逻辑门:异或门和与门。
A,B为异或门和与门的输入,S为异或门的输出,C为与门的输出。
⑷利用QuartusII仿真实现其逻辑功能,并生成新的半加器图形模块单元。
全加器的设计实现过程:⑴全加器可以由两个半加器和一个或门构成。
全加器有三个输入值,两个输出值:A i为加数,B i为被加数,C i−1为低位向高位的进位。
⑵全加器的逻辑表达式为:S=A i⊕Bi ⊕Ci−1C i=(A i⊕B i) C i−1+A i B i⑶利用全加器的逻辑表达式和半加器的逻辑功能,实现全加器。
选作实验:用3线—8线译码器(74L138)和逻辑门设计实现函数F=C B A+C B A+C B A+C B A。
设计实现过程:⑴利用QuartusII选择译码器(74L138)的图形模块单元。
⑵因为F=∑(0,2,4,7)=Y0 Y2 Y4 Y7,所以函数F可以通过译码器(74L138)和一个与非门实现。
QuartusII实验报告范文时间:2022-12-21地点:行政楼202机房指导老师:王本有一、实验目的1、熟悉QuartuII的软件的基本操作。
2、使用QuartuII软件绘制简单原理图电路。
3、使用QuartuII进行VHDL的组合逻辑电路设计。
二、实验内容1、先打开QuartuII软件,点File菜单→new→DeviceDeignFile→VHDLFile,新建一个新的VHDL空白文件,在这个新弹出的空白窗口里输入一个四选一电路的VHDL程序,输入完毕后点击File菜单→Savea…,在弹出的窗口里选择一个纯英文路径,保存刚才写好的VHDL文件,此处的VHDL文件里面电路的名字MU某41要与文件的保存名字一致,点击保存。
然后会弹出一个Doyouwanttocreatanewprojectwiththifile的对话框,点击Ye按钮,会弹出新建工程页面。
此处若要详细对芯片的选择进行设置可以点击Ne某t逐步选择,也可直接选择Finih使用默认选项。
点击Finih,完成新工程的创建。
编写好VHDL后,对VHDL进行编译,若有错误,可双击错误选项进行修改,通常只需修改第一项后继续编译,修改完成后如下图所示:图01-01四选一VHDL程序程序编译完成没有出错后,就可以进行波形仿真。
点击File菜单→new→OtherFile→VectorWaveformFile,新建一个波形仿真窗口,在新弹出来的窗口空白处点击鼠标右键,弹出一个菜单,选择InertNodeorBu…选项,在弹出的窗口中选择NodeFinder…,然后点击新窗口中的Lit按钮把VHDL中的引脚全部列出来,然后点击>>按钮把引脚导入到波形仿真窗口中,点击OK。
此时波形仿真窗口出现多个引脚,点击保存将波形仿真也保存到刚才VHDL文件的相同路径下,名字也为MU某41,。
然后就可以对波形进行不同的时间段设置,设置好后运行,运行情况如下图所示:图01-02四选一波形图对比输入的信号波形段,可知输出波形段是与输入波形段相对应的。
数电实验1一.实验目的1.了解掌握QuartusⅡ中原理图的设计方法2.了解掌握ED0实验开发板的使用方法二.实验设备1.Quartus开发环境2.ED0开发板三.实验内容要求 1:根据参考内容,用原理图输入方法实现一位全加器。
1)用 QuartusII波形仿真验证;2)下载到 DE0 开发板验证。
要求 2:参照参考内容,用 74138 3-8 译码器和 7400 与非门,用原理图输入方法实现一位全减器。
1)用 QuartusII 波形仿真验证;2)下载到 DE0 开发板验证。
四.实验原理1.实验1实现一位全加器原理图如下Ai,Bi为两个加数,Si为全加和,Ci-1为低位的进位,Ci为向高位的进位。
2.实验2用 74138 3-8 译码器和 7400 与非门实现一位全减器原理图如下。
A0为被减数,A1为减数,Ci为来自低位的借位,CO为向高位的借位五.实验结果实验1:原理图输入波形仿真配置针脚在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE0开发板上并对全加器进行验证。
验证结果无误。
实验2:原理图输入波形仿真六.故障排除&实验心得实验中,我们最大的问题就在于如何构建整个系统。
整个实验都是比较基本的一些语句和一些简单门电路的综合使用。
我们进一步的了解了整个系统的构建和编译过程,使我们对VHDL语句和Quartus的使用有了进一步的认识。
个人认为,VHDL语言不够简洁,有些表示比较麻烦。
这次实验首次让我们将数电理论运用到实践,增强了我们对于全加器和全减器的理解和运用,为我们将来的学习和工作提供了良好的基础。
2ASK调制器的设计与实现一、实验目的(1)掌握2FSK 调制的原理及实现方法;(2)学习与熟悉Quratus II 软件的使用;(3)掌握如何应用仿真器来开发应用系统及仿真调试的过程,了解FPGA 开发的基本流程。
二、实验仪器或软件QuartusII 9.0、FPGA实验板、WD990 微机电源、双踪示波器。
三、实验原理3.1 2ASK调制原理2ASK 是数字调制技术的基础,是一种实用的二进制振幅监控方式。
2ASK调制解调器系统框图如图3.1-1所示:图3.1-1 2ASK调制解调器系统3.1.1 2ASK调制器原理及波形图在幅度键控中载波幅度是随着调制信号而变化的。
最简单的形式是载波在二进制调制信号1或0的控制之下通或断。
典型的波形如图3.1-2所示:图3.1-2 2ASK调制原理与波形3.1.2 实验步骤2ASK调制器的调制器电路如图3.1-3所示:图3.1-3 2ASK调制器电路① m序列信号:设计一个周期为15的M序列作为基带信号(信源)(见例1)。
信源码率5000bit/s。
②时钟信号:由实验板提供20MHz时钟clk,仿真时可设20MHz时钟分频。
③ Start信号:开始信号。
在实验板中需要硬件实现。
Start 信号波形图如下:③分频器:编写一个通用的奇偶通用分频程序。
分频次数与载波频率有关。
本实验用数字电路完成分频器设计。
④计数器:使用QuartusⅡ中的lpm_counter器件实现。
⑤开关电路:由基带信号来控制它的输出。
使用QuartusⅡ中的lpm_latch器件实现。
当M序列输出为“1”时输出“f”,为“0”时输出“0“。
3.1.3 测试.按系统方框图,模块化设计,在顶层文件中调用各模块,最终完成一个2ASK调制器。
实现此系统可分3步完成:①电路设计或程序设计。
②QuartusⅡ软件仿真。
③在FPGA实验板中下载并用示波器观察2ASK调制信号。
四、实验结果及分析第一部分电路图图3.1.1 分频器分频器的设计:采用Verilog语言编写程序,再转换为逻辑符号,接入总电路中。
第1篇一、实验目的1. 理解数字逻辑的基本概念和原理;2. 掌握数字逻辑电路的基本分析方法;3. 熟悉数字电路仿真软件的使用;4. 培养实验操作能力和问题解决能力。
二、实验内容及步骤1. 实验一:组合逻辑电路设计(1)设计2选1多路选择器(MUX21)1)根据教材5.1节流程,利用Quartus II完成MUX21的文本编辑输入(MUX21.v);2)进行仿真测试,给出仿真波形;3)在实验系统上硬件测试,验证设计功能;4)引脚锁定及硬件下载测试,a和b分别接来自不同的时钟,输出信号接蜂鸣器;5)编译、下载和硬件测试实验,通过选择键1,控制s,可使蜂鸣器输出不同音调。
(2)设计三人表决电路1)根据教材5.1节流程,利用Quartus II完成三人表决电路的文本编辑输入(图5-36);2)进行仿真测试,给出仿真波形;3)在实验系统上硬件测试,验证设计功能;4)引脚锁定及硬件下载测试,ABC[2..0]分别接自键3、键2、键1;CLK接自时钟CLOCK0(256Hz),输出信号X接D1,输出信号Y接蜂鸣器;5)编译、下载和硬件测试实验,通过按下键3、键2、键1,控制D1的亮灭。
2. 实验二:时序逻辑电路设计(1)设计‘101’序列检测器1)验证RS/D/JK/T触发器的功能;2)熟悉逻辑分析仪、字发生器的使用;3)形成原始的状态图和状态表;4)采用Mealy型同步时序逻辑电路实现序列检测器的功能;5)初始状态:A,状态1:B,状态2:C;6)状态化简(用隐含表);7)状态编码(优先级1>2>3的顺序编码);8)确定激励函数和输出函数,并画出逻辑电路图;9)在Ni Multisim上实现电路的仿真;10)记录实验现象,采用截屏波形的方法。
(2)设计RISC-V五级流水线CPU1)了解数字逻辑与组成原理实践教程;2)设计32位RISC-V五级流水线CPU代码;3)使用Modelsim进行仿真;4)提供项目源代码、测试数据、设计图和指令集;5)编写实验报告,包括实验目的、环境介绍、系统设计、实验步骤和结果分析。
数字电子技术基础实验报告题目:实验二组合电路实验设计小组成员:小组成员:实验二组合电路实验设计一、实验目的1.通过实验的方法学习数据选择器的电路结构和特点2.掌握数据选择器的逻辑功能及其基本应用3.通过实验的方法学习74LS138的电路结构和特点4.掌握74LS138的逻辑功能及其基本应用二、实验要求要求一:参照参考内容,调用 MAXPLUSII 库中的组合逻辑器件74153双四数据选择器和7400与非门,用原理图输入方法实现一位全加器。
(MULTISIM仿真和FPGA 实现)要求二:参照参考内容,调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和7420与非门,用原理图输入方法实现一位全减器。
(MULTISIM仿真和FPGA 实现)要求三:参照参考内容,调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和门电路,用原理图输入方法实现一个两位二进制数值比较器。
(MULTISIM 仿真和 FPGA 实现)三、实验设备(1)电脑一台;(2)数字电路实验箱;(3)数据线一根。
四、实验原理Multisim 的模拟电路编程原理Quartus II的模拟电路编译、波形仿真及目标器件写入的基本应用数字电路逻辑表达式转换的基本知识数据选择器和译码器的电路结构及其特点实验开发板的基本使用知识五、实验内容1、调用 MAXPLUSII 库中的组合逻辑器件74153双四数据选择器和7400与非门,用原理图输入方法实现一位全加器。
(MULTISIM仿真和 FPGA 实现)(1)构建真值表、卡诺图及降维卡诺图真值表:真值表:S1卡诺图:C0卡诺图:降维卡诺图:(2)逻辑表达式变换过程(3)原理图(Multisim和QuartusII中绘制的原理图):Quartus II 中原理图Multisim 中原理图(4)波形仿真:(5)记录电路输出结果2、调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和7420与非门,用原理图输入方法实现一位全减器。
数字电子技术基础第三次实验报告、描述Quartusll 软件基本使用步骤① 编写Verilog 代码,用文本编辑器正确编写源文件,并经modelsim 仿真确认该电路设计正确。
② 打开Quartusll 软件,新建工程New project (注意工程名和设计文件的module 名保持一致),选择和开发板一致的 FPGA 器件型号。
■■pww n④编译,Start Compilation ,编译源文件(如有错误修改后,重新编译)。
I —f 1 UuM-JI 工 HfiaMi■sm •MITmHL 1 】it A**5KiiatiT^u^ri :i&1 u■审3T1H・”峠if-Ik r irM "小"=③添加文件,点击file->open,之后选择要添加的文件,并勾选 Add file to currentproject.■ 5r-w in¥ 口X.I M■tWIR fetawej. MtamM* E«Maa4inrv*nn♦ 1 Tl n .■EGvi I IPHIWIVE RHF 4- xsfflECA-ihaW MniWmUAf⑤查看电路结构,使用 Tool->RTL viewer 工具查看电路图结构,是否和预期设计一致。
rp M. Oi* >1 JiMiMdaOML <j| Al-O*ih| La ■D/»i -ii !Hbi.urmpM-羽r 嘴U 电Of■ >lir¥i-*U ■屮剑 f*lM W"M*h 1 $TW<tEQuartus Primer*rfw 杠 w* ■ « ■■! I Q » i 恆G|4OV :I4J ■忙ffl草* F■*■1.设计一款时钟上升沿触发的 D 寄存器TilbfilUL.X.■I:(■■i!|*ij JHft* I i ■i E. duqa.,卜r|il.A, -K^'M la^34r vf (r«i H >«ra w wl as-Kif i*d mich Wp CMIM* e faharwl HKhinu. 3.' thd d&a ip*H¥l: MW mRM_LEL HDCTE^DIS' *ih tnvr 05T tc- r vtw. llivl 4 nt* 111 Hi >4 -Mji lltf ¥111 4 igf IhB 4■Z.7UZ - unri J ■»I fi i■- w rnr I U I FIV J mtnt- , ■ w ^aanr* fi Ir ■KdP-ir'iiH/prnrlM*!1I, *.题目代码以及波形分析a)编写模块源码module flipflop(D,Clock,Q);in put D,Clock;output reg Q;always@(posedge Clock) Q=D;en dmoduleb) 测试模块'timescale 1n s/1psmodule tb_flipflop;reg Clock_test;reg D_test;wire Q_test; in itial Clock_test=0;always #20 Clock_test=~Clock_test; in itial D_test=0;always #77 D_test=~D_test;flipflop UUT_flipflop(.CIock(Clock_test),.D(D_test),.Q(Q_test)); en dmodulec) 仿真后的波形截图 input D0,D1,Sel,Clock;output reg Q;d) 综合后的RTL 图形2. 设计一款4bBit 具有并行加载功能的移位寄存器编写模块源码a) 编写模块源码module muxdff(D0,D1,Sel,Clock,Q);每当时钟上升沿到来时,触发器把 D 的信号传给Q1 -MlB ! L IVh :> 柏"甲^革曲神甲 翹甘I 『■申 £^4HtfTAiw i||jI ** E - - M ■ < J ■: < '«Ihl^fcp :- *□-refDwire D;assign D=Sel?D1:D0;always@(posedge Clock)Q<=D;endmodulemodule shift4(R,L,w,Clock,Q);input [3:0]R;input L,w,Clock;output wire [3:0]Q;muxdff Stage3(w,R[3],L,Clock,Q[3]);muxdff Stage2(Q[3],R[2],L,Clock,Q[2]);muxdff Stage1(Q[2],R[1],L,Clock,Q[1]);muxdff Stage0(Q[1],R[0],L,Clock,Q[0]); endmodule b) 测试模块'timescale 1n s/1psmodule tb_shift4;reg Clock_test;reg L_test;reg w_test;reg [3:0]R_test;wire [3:0]Q_test;initialClock_test=0;always #10 Clock_test=~Clock_test;initialbeginL_test=1;#14L_test=0;//always #14 L_test=~L_test; endinitialw_test=0;always #13 w_test=~w_test;initialR_test=4'b1010;shift4 UUT_shift4(.CIock(Clock_test),.L(L_test),.w(w_test),.R(R_test),.Q(Q_test)); en dmoduleL 为0时并行加载,数组 R 为加载时的输入。
数字电子技术基础第四次实验报告一、描述QuartusII软件基本使用步骤1.用文本编辑器正确编写源文件(本例run.v),并经modelsim仿真确认该电路设计正确.2..打开QuartusII软件,新建工程New project (注意工程名和设计文件的module名保持一致),选择和开发板一致的FPGA器件型号。
(本课程为Cyclone IV E系列EP4CE115F29C7)3.添加文件,点击file->open,之后选择要添加的文件,并勾选Add file to current project.4.编译,Start Compilation ,编译源文件(如有错误修改后,重新编译)。
5. 查看电路结构,使用Tool->RTL viewer工具查看电路图结构,是否和预期设计一致。
6.管脚绑定,使用Assignment->pin planner将设计的全部输入/输出接口与开发板的对应管脚进行一一对应。
PIN_Y2 -to clkPIN_H19 -to out[7]PIN_J19 -to out[6]PIN_E18 -to out[5]PIN_F18 -to out[4]PIN_F21 -to out[3]PIN_E19 -to out[2]PIN_F19 -to out[1]PIN_G19 -to out[0]PIN_M23 -to rst7. Processing->Start Compilation,全编译生成可下载文件。
(.sof)8. 连接开发板,安装所需驱动程序(在设备管理器中,选择路径为quatus安装路径)9. 点击start开始烧录,完成后开发板上出现流水灯。
二、题目代码以及波形1.跑马灯设计及FPGA实现①编写模块源码module run (clk,rst,out);input clk,rst;output [7:0] out;reg [7:0] out;reg [24:0] count;always @ ( posedge clk or negedge rst ) if(!rst)begincount<=16'b0;endelsebegincount<=count+1;endalways @ ( posedge clk or negedge rst) if(!rst)beginout<=8'hff;endelsebegincase ( count[24:21] )0: out<=8'b1111_1110;1: out<=8'b1111_1101;2: out<=8'b1111_1011;3: out<=8'b1111_0111;4: out<=8'b1110_1111;5: out<=8'b1101_1111;6: out<=8'b1011_1111;7: out<=8'b0111_1111;8: out<=8'b1011_1111;9: out<=8'b1101_1111;10:out<=8'b1110_1111;11:out<=8'b1111_0111;12:out<=8'b1111_1011;13:out<=8'b1111_1101;14:out<=8'b1111_1110;15:out<=8'b1111_1111;endcaseendendmodule②测试模块`timescale 1ns/1psmodule tb_run;reg clk_test;reg rst_test;wire [7:0]out_test;initialclk_test=0;always #1 clk_test=~clk_test;initialbeginrst_test=1;#1rst_test=0;#1rst_test=1;#180rst_test=0;#1rst_test=1;endrun UUT_run(.clk(clk_test),.rst(rst_test),.out(out_test));endmodule③仿真后的波形截图④综合后的RTL图形1.有限状态机设计(教材Figure 6.86)①编写模块源码module sequence (Clock,Resetn,w,z);input Clock,Resetn,w;output z;reg [3:1]y,Y;parameter [3:1]A=3'b000,B=3'b001,C=3'b010,D=3'b011,E=3'b100;always@(w,y)case(y)A:if(w) Y=D;else Y=B;B:if(w) Y=D;else Y=C;C:if(w) Y=D;else Y=C;D:if(w) Y=E;else Y=B;E:if(w) Y=E;else Y=B;default: Y=3'bxxx;endcasealways@(negedge Resetn,posedge Clock) if(Resetn==0)y<=A;elsey<=Y;assign z=(y==C)|(y==E);endmodule②测试模块`timescale 1ns/1psmodule tb_sequence;reg Clock_test,Resetn_test,w_test;wire z_test;initialbeginClock_test=0;Resetn_test=0;w_test=1;endalways #10 Clock_test=~Clock_test;initialbegin#10Resetn_test=1;w_test=1;#10w_test=0;#20w_test=0;#20w_test=0;#20w_test=1;#20w_test=1;#20w_test=0;#20w_test=0;#20w_test=1;#20w_test=0;#20w_test=0;#20w_test=0;#20w_test=1;#20w_test=1;#20w_test=0;#20w_test=0;endsequence UUT_sequence(.Clock(Clock_test),.Resetn(Resetn_test),.w(w_test),.z(z_test));endmodule③仿真后的波形截图④综合后的RTL图形三、本次实验收获和心得通过本次试验真正接触了FPGA开发板并向板子上烤了文件,虽然题目较为简单,但是在完成的过程中遇到了不少问题,比如软件内部没有需要的开发板型号,自己通过搜索和下载,找到了相应的扩展包并成功添加进入高版本的quartus II软件当中,我的体会是,数字电路归根到底还是依靠硬件实现的,所以将代码的执行效果反映到硬件上是一个重要环节,应该不断练习,提高自己解决问题的能力;另外通过本次实验,我对有限状态机有了更加深入的了解。
Verilog实验报告实验一Quartus及Modelsim软件的基本使用一、实验目的熟悉Quartus和Modelsim软件的基本使用方法和步骤,熟悉基本的Verilog语法,学会用Verilog语言编写简单的程序。
二、实验要求熟练掌握Quartus和Modelsim软件工程建立、添加文件、编译运行和仿真的方法,学会写程序文件和测试文件。
三、实验仪器和设备1、硬件:计算机2、软件:Quartus、Modelsim、(UE)四、实验内容1、运行Quartus软件建立工程并添加程序.v文件,编译运行,查看电路图。
2、运行Modelsim软件建立工程并添加测试.v文件,进行仿真,查看波形图。
五、实验方法和步骤(一)Quartus软件的使用1、启动Quartus软件:双击桌面的Quartus快捷图标,进入如图1所示的界面。
图1-1 启动界面2、建立工程:选择菜单栏的【File】→【New Project Wizard】命令,弹出图2所示新建工程向导。
图1-2 新建工程向导单击【Next】跳转至下一页。
为方便工程管理,在新建工程之前,先新建一个文件夹,把工程保存在新建的文件下,并对工程进行命名。
如图3所示。
图1-3 命名和存放单击【Next】跳转至下一页。
添加事先写好的.v文件。
如图4所示。
图1-4 添加文件(此处也可不添加,直接在建立好的工程中,选择【File】→【New】命令,新建一个Verilog HDL File,如图5所示。
图1-5 新建.v文件)单击【Next】跳转至下一页。
选择FPGA型号,如图6所示。
因为本次实验不在硬件上实现,因此此步跳过。
直接单击【Next】跳转至下一页。
图1-6 选择FPGA型号直到出现【Summary】界面,单击【Finish】。
如图7所示。
图1-7 结束3、编写程序:由按键控制led灯的亮灭。
如图8。
图1-8 编写程序4、编译程序:在【Task】栏中找到如图所示,编译程序。
实验二:Quartus II入门班级:姓名:学号:同组人员:一、实验目的(1)掌握Quartus Ⅱ集成开发软件的原理。
(2)熟练运用Quartus Ⅱ集成开发软件实现基本逻辑电路的实现。
(3)熟悉DEO硬件开发板的连接使用。
二、实验要求要求1:根据参考内容,用原理图输入方法实现一位全加器。
1)用QuartusII 波形仿真验证;2)下载到DE0 开发板验证。
要求2:参照参考内容,用74138 3-8 译码器和7400与非门,用原理图输入方法实现一位全减器。
1)用QuartusII 波形仿真验证;2)下载到DE0 开发板验证。
三、实验内容(一)全加器的设计与实现a.根据逻辑真值表写出逻辑函数表达式Ai和Bi分别表示加数与被加数,Ci表示低位向本位的进位,Si表示本位和,Ci1表示本位向高位的进位。
b.根据逻辑函数表达式画出电路逻辑图c.在QuartusII上绘制全加器原理图并仿真出波形,结果如下:d.下载到DEO板子上验证,实现全加器功能。
(二)全减器的设计与实现a.根据逻辑真值表写出逻辑函数表达式An和Bn分别表示被减数和减数,Cn表示低位向本位的借位,Dn 表示本位差,Cn1表示本位向高位的借位。
逻辑真值表An Bn Cn Cn1 Dn0 0 0 0 00 1 1 10 1 0 1 10 1 1 1 01 0 0 0 11 0 1 0 01 1 0 0 01 1 1 1 1b.根据逻辑函数表达式画出电路逻辑图c.在QuartusII上绘制全减器原理图并仿真出波形,结果如下:d.下载到DEO板子上验证,实现全减器功能。
四、实验心得通过这个实验,我对与非门的用法有了更深刻的理解,对设计电路也从之前的“纸上谈兵”变成了具体实践,设计以及实验完成之后很有成就感。
最重要的是我了解并掌握了Quartyrs的一些基本用法,相信在以后的学习中可以取得更深入的了解。
实验一存储器实验一实验题目存储器实验二实验环境Quartus II三实验要求l、掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法。
2、用文本编辑器编辑 mif文件配置 ROM;3、在初始化存储器编辑窗口编辑mif文件配置ROM;4、验证FPGA中meg_lpm_ROM的功能。
四实验设计1、创建mif文件,并写入ROM信息也可以在文本文件添加ROM信息WIDTH=8;DEPTH=32;ADDRESS_RADIX=UNS;DATA_RADIX=UNS;CONTENT BEGIN0 : 4;1 : 3;2 : 2;3 : 4;4 : 3;5 : 2;6 : 1;7 : 5;8 : 0;9 : 3;10 : 6;[11..14] : 0;15 : 4;16 : 7;17 : 4;[18..26] : 0;[27..28] : 4;29 : 0;30 : 2;31 : 0;END;2、连接电路图五实验仿真与测试六实验结果分析仿真结果从上图可以看出,电路输出了ROM中保存的数据。
七实验小结通过本次试验,我掌握了FPGA中lpm_ROM的设置,以及其作为只读存储器ROM的工作特性和配置方法。
学会了用quartus创建并设置mif文件的方法,以及用文本文档修改mif文件方法。
经过这次实验,我学会了quartus的基本使用方法,以及仿真方法。
实验二运算器组成实验一实验题目运算器组成实验二实验环境Quartus II三实验要求1.掌握简单运算器的数据传输通路。
2.验证运算功能发生器的组合功能。
3.掌握算术逻辑运算加、减、与的工作原理。
4.熟悉简单运算的数据传送通路。
5.验证实验台运算的8位加、减、与、直通功能。
6.按给定数据,完成几种指定的算术和逻辑运算。
四实验设计结合上图74181结构设计电路图如下仿真使用数据如下六实验结果分析符合74181的功能,测试通过七实验小结通过本次实验,我学习了加法器74181的使用方法,简单运算器的数据传输通路。
数字电子技术基础实验报告题目:实验二组合电路实验设计小组成员:小组成员:实验二组合电路实验设计一、实验目的1.通过实验的方法学习数据选择器的电路结构和特点2.掌握数据选择器的逻辑功能及其基本应用3.通过实验的方法学习74LS138的电路结构和特点4.掌握74LS138的逻辑功能及其基本应用二、实验要求要求一:参照参考容,调用 MAXPLUSII 库中的组合逻辑器件74153双四数据选择器和7400与非门,用原理图输入方法实现一位全加器。
(MULTISIM仿真和 FPGA 实现)要求二:参照参考容,调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和7420与非门,用原理图输入方法实现一位全减器。
(MULTISIM仿真和 FPGA 实现)要求三:参照参考容,调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和门电路,用原理图输入方法实现一个两位二进制数值比较器。
(MULTISIM 仿真和 FPGA 实现)三、实验设备(1)电脑一台;(2)数字电路实验箱;(3)数据线一根。
四、实验原理Multisim 的模拟电路编程原理Quartus II的模拟电路编译、波形仿真及目标器件写入的基本应用数字电路逻辑表达式转换的基本知识数据选择器和译码器的电路结构及其特点实验开发板的基本使用知识五、实验容1、调用 MAXPLUSII 库中的组合逻辑器件74153双四数据选择器和7400与非门,用原理图输入方法实现一位全加器。
(MULTISIM仿真和 FPGA 实现)(1)构建真值表、卡诺图及降维卡诺图真值表:真值表:S1卡诺图:C0卡诺图:降维卡诺图:(2)逻辑表达式变换过程(3)原理图(Multisim和QuartusII中绘制的原理图):Quartus II 中原理图Multisim 中原理图(4)波形仿真:(5)记录电路输出结果A B C S C00 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 12、调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和7420与非门,用原理图输入方法实现一位全减器。
数电实验2一.实验目的1.学习并掌握硬件描述语言(VHDL 或Verilog HDL);熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。
2.熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。
3.熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。
4.熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。
二.实验设备1.Quartus开发环境2.ED0开发板三.实验内容要求1:编写一个异或门逻辑电路,编译程序如下。
1)用QuartusII 波形仿真验证;2)下载到DE0 开发板验证。
要求2:编写一个将二进制码转换成0-F 的七段码译码器。
1)用QuartusII 波形仿真验证;2)下载到DE0 开发板,利用开发板上的数码管验证。
要求3:编写一个计数器。
1)用QuartusII 波形仿真验证;2)下载到DE0 开发板验证。
要求4:编写一个能实现占空比50%的5M 和50M 分频器即两个输出,输出信号频率分别为10Hz 和1Hz。
1)下载到DE0 开发板验证。
(提示:利用DE0 板上已有的50M 晶振作为输入信号,通过开发板上两个的LED 灯观察输出信号)。
2)电路框图如下:扩展内容:利用已经实现的VHDL 模块文件,采用原理图方法,实现0-F 计数自动循环显示,频率10Hz。
(提示:如何将VHDL 模块文件在逻辑原理图中应用,参考参考内容5)四.实验原理1.实验1实现异或门逻辑电路,VHDL源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY EXORGATE ISPORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END EXORGATE;ARCHITECTURE fwm OF EXORGATE ISBEGINC<=A XOR B;END;2.实验2实现一个将二进制码转换成0-F的七段译码器,VHDL源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY sevendecoder ISPORT (data_in:IN STD_LOGIC_VECTOR(3 DOWNTO 0);dis_out:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END sevendecoder;ARCHITECTURE fwm OF sevendecoder ISBEGINPROCESS(data_in)BEGINCASE data_in ISWHEN"0000"=>dis_out<="1000000";--显示0 WHEN"0001"=>dis_out<="1111001";--显示1 WHEN"0010"=>dis_out<="0100100";--显示2 WHEN"0011"=>dis_out<="0110000";--显示3 WHEN"0100"=>dis_out<="0011001";--显示4 WHEN"0101"=>dis_out<="0010010";--显示5 WHEN"0110"=>dis_out<="0000010";--显示6WHEN"0111"=>dis_out<="1111000";--显示7 WHEN"1000"=>dis_out<="0000000";--显示8 WHEN"1001"=>dis_out<="0010000";--显示9 WHEN"1010"=>dis_out<="0001000";--显示A WHEN"1011"=>dis_out<="0000011";--显示b WHEN"1100"=>dis_out<="1000110";--显示C WHEN"1101"=>dis_out<="0100001";--显示d WHEN"1110"=>dis_out<="0000110";--显示E WHEN"1111"=>dis_out<="0001110";--显示FWHEN OTHERS=> dis_out<="1111111";--灭灯,不显示END CASE;END PROCESS;END fwm;3.实验3完成一个计数器,VHDL源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISPORT ( clk,RST : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); --四位计数COUT : OUT STD_LOGIC); --进位位END counter;ARCHITECTURE fwm OF counter ISSIGNAL Q1 : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(clk,RST)BEGINIF RST = '0' THEN Q1<=(OTHERS => '0'); COUT<= '0';ELSIF clk'EVENT AND clk='1' THENQ1<=Q1+1;COUT<= '0';IF Q1 >= "1001" THEN Q1<=(OTHERS => '0'); COUT<= '1';END IF;END IF;END PROCESS;DOUT<=Q1 ;END fwm;4.实验4编写一个能实现占空比50%的5M 和50M 分频器即两个输出,输出信号频率分别为10Hz 和1Hz,VHDL源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fpq ISPORT(clk:IN STD_LOGIC;clk_out,clk_out1:OUT STD_LOGIC);END fpq;ARCHITECTURE fwm OF fpq ISCONSTANT m : INTEGER:= 25000000; --50M 分频到1Hz 时=25000000。
西北⼯业⼤学-数字电⼦技术基础-实验报告-实验2数字电⼦技术基础第⼆次实验报告⼀、题⽬代码以及波形分析1. 设计⼀款可综合的2选1多路选择器①编写模块源码module multiplexer(x1,x2,s,f);input x1,x2,s;output f;assign f=(~s&x1)|(s&x2);endmodule②测试模块`timescale 1ns/1psmodule tb_multiplexer;reg x1_test;reg x2_test;reg s_test;wire f_test;initials_test=0;always #80 s_test=~s_test;initialbeginx1_test=0;x2_test=0;#20x1_test=1;x2_test=0;#20x1_test=0;x2_test=1;#20x1_test=1;x2_test=1;#20x1_test=0;x2_test=0;#20x1_test=1;x2_test=0;#20x1_test=0;x2_test=1;#20x1_test=1;x2_test=1;endmultiplexer UUT_multiplexer(.x1(x1_test),.x2(x2_test),.s(s_test),.f(f_test));endmodule③仿真后的波形截图④对波形的分析本例⽬的是令s为控制信号,实现⼆选⼀多路选择器。
分析波形图可以知道,s为0时,f 输出x1信号;s为1时,f输出x2信号。
所以实现了⽬标功能。
2. 设计⼀款可综合的2-4译码器①编写模块源码module dec2to4(W,En,Y);input [1:0]W;input En;output reg [0:3]Y;always@(W,En)case({En,W})3'b100:Y=4'b1000;3'b101:Y=4'b0100;3'b110:Y=4'b0010;3'b111:Y=4'b0001;default:Y=4'b0000;endcaseendmodule②测试模块`timescale 1ns/1psmodule tb_dec2to4;reg [1:0]W_test;reg En_test;wire [0:3]Y_test;initialEn_test=0;always #80 En_test=~En_test;initialbeginW_test=2'b00;#20W_test=2'b01;#20W_test=2'b11;#20W_test=2'b10;#20W_test=2'b00;#20W_test=2'b01;#20W_test=2'b11;#20W_test=2'b10;#20W_test=2'b00;enddec2to4 UUT_dec2to4(.W(W_test),.En(En_test),.Y(Y_test));endmodule③仿真后的波形截图④对波形的分析本例⽬的是实现可综合的2-4译码器,其中数组W是输⼊信号,共有两个值,输⼊⼀个两位⼆进制数据,⽬的是通过译码器将它转换成独热码,数组Y是输出信号,输出四个⼆进制数据,构成独热码。
数字电子技术基础
实验报告
题目:实验二组合电路实验设计
小组成员:
小组成员:
实验二组合电路实验设计
一、实验目的
1.通过实验的方法学习数据选择器的电路结构和特点
2.掌握数据选择器的逻辑功能及其基本应用
3.通过实验的方法学习74LS138的电路结构和特点
4.掌握74LS138的逻辑功能及其基本应用
二、实验要求
要求一:参照参考容,调用 MAXPLUSII 库中的组合逻辑器件74153双四数据选择器和7400与非门,用原理图输入方法实现一位全加器。
(MULTISIM仿真和 FPGA 实现)
要求二:参照参考容,调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和7420与非门,用原理图输入方法实现一位全减器。
(MULTISIM仿真和 FPGA 实现)
要求三:参照参考容,调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和门电路,用原理图输入方法实现一个两位二进制数值比较器。
(MULTISIM 仿真和 FPGA 实现)
三、实验设备
(1)电脑一台;
(2)数字电路实验箱;
(3)数据线一根。
四、实验原理
Multisim 的模拟电路编程原理
Quartus II的模拟电路编译、波形仿真及目标器件写入的基本应用
数字电路逻辑表达式转换的基本知识
数据选择器和译码器的电路结构及其特点
实验开发板的基本使用知识
五、实验容
1、调用 MAXPLUSII 库中的组合逻辑器件74153双四数据选择器和7400与非门,用原理图输入方法实现一位全加器。
(MULTISIM仿真和 FPGA 实现)
(1)构建真值表、卡诺图及降维卡诺图真值表:
真值表:
S1卡诺图:
C0卡诺图:
降维卡诺图:
(2)逻辑表达式变换过程
(3)原理图(Multisim和QuartusII中绘制的原理图):
Quartus II 中原理图
Multisim 中原理图
(4)波形仿真:
(5)记录电路输出结果
2、调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和7420与非门,
用原理图输入方法实现一位全减器。
(MULTISIM仿真和 FPGA 实现)
(1)构建真值表:
真值表:
(2)逻辑表达式变换过程
(3)原理图(Multisim和QuartusII中绘制的原理图):
Quartus II 中原理图
Multisim 中原理图(4)波形仿真:
(5)记录电路输出结果
3、调用 MAXPLUSII 库中的组合逻辑器件74138三线八线译码器和门电路,用原理图输入方法实现一个两位二进制数值比较器。
(MULTISIM仿真和 FPGA 实现)
(1)构建真值表:
真值表:
(2)逻辑表达式变换过程
(3)原理图(Multisim和QuartusII中绘制的原理图):
Quartus II 中原理图
Multisim 中原理图
(4)波形仿真:
(5)记录电路输出结果
六、实验过程中的问题
1.软件使用过程中存在着名称使用不当的情况(如:中文、空格)
2.写入器件过程中存在引脚号混淆,使用发生错误的情况
七、心得体会
1.在实验过程中学习了74LS153数据选择器的使用,而且通过双击进入了数据选择器部了解其中的部构造。
2.在实验过程中学习了74LS138译码器的使用,了解了如何将译码器设计成为脉冲分配器,也实现了全加器。
3.掌握了开发板的各种引脚号以及各种器件的使用,玩那个实在是玩得太开心了。