文档视界 最新最全的文档下载
当前位置:文档视界 › verilog实验报告

verilog实验报告

verilog实验报告

Verilog实验报告

引言:

Verilog是一种硬件描述语言(HDL),用于设计和模拟数字电路。它是一种高

级语言,能够描述电路的行为和结构,方便工程师进行数字电路设计和验证。

本实验报告将介绍我在学习Verilog过程中进行的实验内容和所获得的结果。

实验一:基本门电路设计

在这个实验中,我使用Verilog设计了基本的逻辑门电路,包括与门、或门和非门。通过使用Verilog的模块化设计,我能够轻松地创建和组合这些门电路,以实现更复杂的功能。

我首先创建了一个与门电路的模块,定义了输入和输出端口,并使用逻辑运算

符和条件语句实现了与门的功能。然后,我创建了一个测试模块,用于验证与

门的正确性。通过输入不同的组合,我能够验证与门的输出是否符合预期。

接下来,我按照同样的方法设计了或门和非门电路,并进行了相应的测试。通

过这个实验,我不仅学会了使用Verilog进行基本门电路的设计,还加深了对逻辑电路的理解。

实验二:时序电路设计

在这个实验中,我学习了如何使用Verilog设计时序电路,例如寄存器和计数器。时序电路是一种具有状态和时钟输入的电路,能够根据时钟信号的变化来改变

其输出。

我首先设计了一个简单的寄存器模块,使用触发器和组合逻辑电路实现了数据

的存储和传输功能。然后,我创建了一个测试模块,用于验证寄存器的正确性。

通过输入不同的数据和时钟信号,我能够观察到寄存器的输出是否正确。

接下来,我设计了一个计数器模块,使用寄存器和加法电路实现了计数功能。

我还添加了一个复位输入,用于将计数器的值重置为初始状态。通过测试模块,我能够验证计数器在不同的时钟周期内是否正确地进行计数。

通过这个实验,我不仅学会了使用Verilog设计时序电路,还加深了对触发器、寄存器和计数器的理解。

实验三:组合电路设计

在这个实验中,我学习了如何使用Verilog设计组合电路,例如多路选择器和加法器。组合电路是一种没有状态和时钟输入的电路,其输出只取决于当前的输入。

我首先设计了一个多路选择器模块,使用条件语句和逻辑运算符实现了多个输

入和一个选择信号之间的映射关系。然后,我创建了一个测试模块,用于验证

多路选择器的正确性。通过输入不同的数据和选择信号,我能够观察到多路选

择器的输出是否符合预期。

接下来,我设计了一个加法器模块,使用逻辑运算符和进位电路实现了两个二

进制数的相加功能。我还添加了一个溢出输出,用于指示是否发生了溢出。通

过测试模块,我能够验证加法器在不同的输入情况下是否正确地进行相加。

通过这个实验,我不仅学会了使用Verilog设计组合电路,还加深了对多路选择器和加法器的理解。

结论:

通过这些实验,我学会了使用Verilog进行数字电路的设计和模拟。Verilog作

为一种硬件描述语言,能够帮助工程师更轻松地进行数字电路的设计和验证。

我通过设计基本门电路、时序电路和组合电路,加深了对数字电路的理解,并掌握了Verilog的基本语法和应用技巧。我相信这些知识将对我的未来学习和工作有所帮助。

eda电子设计使用verilog语言电子琴实验报告

电子设计自动化课程设计报告 院系:信息工程学院 专业:电子信息工程 学号: 姓名: 指导教师: 2013 年月日

目录 1设计目的 (3) 2题目描述与要求 (3) 3课程设计报告内容 (3) 3.1设计原理与思路 (3) 3.2操作过程 (4) 3.3设计和调试过程中出现的问题及解决方法 (7) 4设计总结和心得体会 (8)

一、课程设计目的 使用VerilogHDL语言进行前端设计,并使用Quaruts软件在实验箱上实现仿真,实现硬件电子琴。电子琴要求有8个音阶,使用外部时钟信号32MHz,能同步显示音阶。 二、课程设计题目描述和要求 题目:简易电子琴的设计 主要功能:(1)设计一个八音电子琴。 (2)由键盘输入控制音响,同时可自动演奏乐曲。 (3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。 三、课程设计报告内容 3.1设计原理与思路 系统由数控分频器、乐曲存储模块以及发声模块组成。数控分频器对FPGA的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。由发声模块产生音符对应的频率的信号来使扬声器发音。 (1)模块automusic

模块automsic由auto信号来选择发声的方式,auto=0时系统自动播放内置的音乐,auto=1时由键盘来手动演奏音乐。 (2)模块TONE 模块Tone是音阶发生器,当8位发声控制输入Index中某一位为高电平时,则对应某一音阶的数值将从端口Tone输出,作为获得该音阶的分频预置值;同时由Code输出对应该音阶简谱的显示数码,如‘5’,并由High输出指示音阶高8度显示。 (3)模块Speaker 模块Speaker中的主要电路是一个数控分频器,它由一个初值可预置的加法计数器构成,当模块Speaker由端口Tone获得一个2进制数后,将以此值为计数器的预置数,对端口Clk12MHZ输入的频率进行分频,之后由Spkout向扬声器输出发声。 3.2操作过程 新建工程

Verilog实现流水线CPU实验报告

实验报告 课程名称:__ 数字系统设计实验Ⅱ__指导老师:成绩:_______ 实验名称:流水线MIPS微处理器设计实验类型:____设计型__ __ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的 1.了解提高CPU性能的方法。 2.掌握流水线MIPS微处理器的工作原理。 3.理解数据冒险、控制冒险的概念以及流水线冲突的解决方法。 4.掌握流水线MIPS微处理器的测试方法。 二、实验任务 设计一个32位流水线MIPS微处理器,具体要求如下: 1.至少运行下列MIPS32指令。 (1)算术运算指令:ADD、ADDU、SUB、SUBU、ADDI、ADDIU。 (2)逻辑运算指令:AND、OR、NOR、XOR、ANDI、ORI、XORI、SLT、SLTU、SLTI、SLTIU。 (3)移位指令:SLL、SLLV、SRL、SRLV、SRA。 (4)条件分支指令:BEQ、BNE、BGEZ、BGTZ、BLEZ、BLTZ。 (5)无条件跳转指令:J、JR。 (6)数据传送指令:LW、SW。 (7)空指令:NOP。 2.采用5级流水线技术,对数据冒险实现转发或阻塞功能。 3.在XUP Virtex-Ⅱ Pro 开发系统中实现MIPS微处理器,要求CPU的运行速度大于 25MHz。 三、实验原理 1.总体设计 流水线是数字系统中一种提高系统稳定性和工作速度的方法,广泛应用于高档CPU的架构中。根据MIPS处理器的特点,将整体的处理过程分为取指令(IF)、指令译码(ID)、执行(EX)、存储器访问(MEM)和寄存器会写(WB)五级,对应多周期的五个处理阶段。如图3.1所示,一个指令的执行需要5个时钟周期,每个时钟周期的上升沿来临时,此指令所代表的一系列数据和控制信息将转移到下一级处理。

Verilog流水灯实验报告

流水灯实验报告 实验二流水灯 一、实验目的 学会编写一个简单的流水灯程序并掌握分频的方法。熟悉Modelsim仿真软件的使用。 二、实验要求 用Quartus编写流水灯程序,在Modelsim软件中进行仿真。 三、实验仪器和设备 1、硬件:计算机 2、软件:Quartus、Modelsim、(UE) 四、实验内容 1、将时钟周期进行分频。 2、编写Verilog程序实现LED等依次亮灭,用Modelsim进行仿真,绘制波形图。 五、实验设计 (一)分频原理 已知时钟周期f为50MHz,周期T为1/f,即20ns。若想得到四分频计数器,即周期为80ns的时钟,需要把时钟进行分频。即每四个时钟周期合并为一个周期。原理图如图1所示。 图1 四分频原理图 (二)流水灯设计思路 1、实现4盏LED灯依次隔1s亮灭,即周期为1s; 2、计算出频率f为1/T=1Hz; 3、设置计数器cnt,当检测到clk上升沿时开始计数,当cnt计数到24_999_999时,clk_4跳变为1,LED灯亮起,当cnt计数49_999_999时,clk_4置0,LED灯熄灭。 4、给LED赋初值4’b0001,第一盏灯亮。 5、利用位拼接,实现循环。 (三)设计框图 图2 设计基本框图 (四)位拼接的用法 若输入a=4'b1010,b=3'b101,c=4'b0101,想要使输出d=5'b10001 用位拼接,符号“{ }”:d<={b[2:1],c[1],a[2:1]} 即把b的低1~2位10,c的低1位0,a的低1~2位01拼接起来,得到10 0 01。 流水灯 4'b0001 4'b0010 4'b0100 4'b1000

verilog实验报告

verilog实验报告 Verilog实验报告 引言: Verilog是一种硬件描述语言(HDL),用于设计和模拟数字电路。它是一种高 级语言,能够描述电路的行为和结构,方便工程师进行数字电路设计和验证。 本实验报告将介绍我在学习Verilog过程中进行的实验内容和所获得的结果。 实验一:基本门电路设计 在这个实验中,我使用Verilog设计了基本的逻辑门电路,包括与门、或门和非门。通过使用Verilog的模块化设计,我能够轻松地创建和组合这些门电路,以实现更复杂的功能。 我首先创建了一个与门电路的模块,定义了输入和输出端口,并使用逻辑运算 符和条件语句实现了与门的功能。然后,我创建了一个测试模块,用于验证与 门的正确性。通过输入不同的组合,我能够验证与门的输出是否符合预期。 接下来,我按照同样的方法设计了或门和非门电路,并进行了相应的测试。通 过这个实验,我不仅学会了使用Verilog进行基本门电路的设计,还加深了对逻辑电路的理解。 实验二:时序电路设计 在这个实验中,我学习了如何使用Verilog设计时序电路,例如寄存器和计数器。时序电路是一种具有状态和时钟输入的电路,能够根据时钟信号的变化来改变 其输出。 我首先设计了一个简单的寄存器模块,使用触发器和组合逻辑电路实现了数据 的存储和传输功能。然后,我创建了一个测试模块,用于验证寄存器的正确性。

通过输入不同的数据和时钟信号,我能够观察到寄存器的输出是否正确。 接下来,我设计了一个计数器模块,使用寄存器和加法电路实现了计数功能。 我还添加了一个复位输入,用于将计数器的值重置为初始状态。通过测试模块,我能够验证计数器在不同的时钟周期内是否正确地进行计数。 通过这个实验,我不仅学会了使用Verilog设计时序电路,还加深了对触发器、寄存器和计数器的理解。 实验三:组合电路设计 在这个实验中,我学习了如何使用Verilog设计组合电路,例如多路选择器和加法器。组合电路是一种没有状态和时钟输入的电路,其输出只取决于当前的输入。 我首先设计了一个多路选择器模块,使用条件语句和逻辑运算符实现了多个输 入和一个选择信号之间的映射关系。然后,我创建了一个测试模块,用于验证 多路选择器的正确性。通过输入不同的数据和选择信号,我能够观察到多路选 择器的输出是否符合预期。 接下来,我设计了一个加法器模块,使用逻辑运算符和进位电路实现了两个二 进制数的相加功能。我还添加了一个溢出输出,用于指示是否发生了溢出。通 过测试模块,我能够验证加法器在不同的输入情况下是否正确地进行相加。 通过这个实验,我不仅学会了使用Verilog设计组合电路,还加深了对多路选择器和加法器的理解。 结论: 通过这些实验,我学会了使用Verilog进行数字电路的设计和模拟。Verilog作 为一种硬件描述语言,能够帮助工程师更轻松地进行数字电路的设计和验证。

verilog hdl实验报告

verilog hdl实验报告 《Verilog HDL实验报告》 Verilog HDL(硬件描述语言)是一种用于描述电子系统的硬件的语言,它被广泛应用于数字电路设计和硬件描述。本实验报告将介绍Verilog HDL的基本概念和使用方法,并通过实验展示其在数字电路设计中的应用。 实验目的: 1. 了解Verilog HDL的基本语法和结构 2. 掌握Verilog HDL的模块化设计方法 3. 熟悉Verilog HDL的仿真和综合工具的使用 实验内容: 1. Verilog HDL的基本语法和结构 Verilog HDL是一种硬件描述语言,其语法和结构类似于C语言。它包括模块定义、端口声明、信号赋值等基本元素。在本实验中,我们将学习如何定义Verilog模块,并使用端口声明和信号赋值描述数字电路的行为。 2. Verilog HDL的模块化设计方法 Verilog HDL支持模块化设计,可以将复杂的电路分解为多个模块,每个模块描述一个子电路的行为。在本实验中,我们将学习如何设计和实现Verilog模块,并将多个模块组合成一个完整的数字电路。 3. Verilog HDL的仿真和综合工具的使用 Verilog HDL可以通过仿真工具进行功能验证,也可以通过综合工具生成实际的硬件电路。在本实验中,我们将使用Verilog仿真工具对设计的数字电路进行功能验证,并使用综合工具生成对应的硬件电路。

实验步骤: 1. 学习Verilog HDL的基本语法和结构 2. 设计一个简单的数字电路,并实现Verilog模块描述其行为 3. 使用仿真工具对设计的数字电路进行功能验证 4. 使用综合工具生成对应的硬件电路 实验结果: 通过本实验,我们学习了Verilog HDL的基本概念和使用方法,并成功设计和实现了一个简单的数字电路。我们使用仿真工具对设计的数字电路进行了功能验证,并使用综合工具生成了对应的硬件电路。实验结果表明,Verilog HDL在数字电路设计中具有重要的应用价值。 结论: Verilog HDL是一种强大的硬件描述语言,它可以帮助工程师们更好地描述和设计数字电路。通过本实验,我们对Verilog HDL有了更深入的理解,并掌握了其在数字电路设计中的应用方法。希望通过本实验报告的学习,读者们能够更好地掌握Verilog HDL的使用技巧,为自己的数字电路设计工作提供更多的帮助和支持。

FPGA——Verilog时序电路实验报告

Verilog 设 计 实 验 报 告 唐睿电子工程2011301200062

武汉大学电工电子实验教学示范中心 集成电路设计实验实验报告 :学院:电子信息学院专业:电子信息工程2014 年 5 月7 日 实验名称时序逻辑电路基础指导教师曹华伟姓名唐睿年级2011级学号2011301200062 成绩 一、预习部分 1.实验目的(预期成果) 2.实验基本原理(概要) 3.主要仪器设备(实验条件,含必要的元器件、工具) 1).实验目的 1.掌握时序逻辑电路的实现方法; 2.了解时序电路的仿真与测试; 3.熟悉并理解硬件描述语言; 4.用硬件描述语言实现基本时序电路基础的电路; 5.在DE2-115开发板中验证并测试其时序逻辑电路功能是否实现。 2).实验基本原理 1. D触发器工作原理:SD 和RD 接至基本RS 触发器的输入端,它们分别是预置和 清零端,低电平有效。当SD=1且RD=0时(SD的非为0,RD的非为1,即在两个控制端口分别从外部输入的电平值,原因是低电平有效),不论输入端D为何种状态,都会使Q=1,Q非=0,即触发器置1;当SD=0且RD=1(SD的非为1,RD的非为0)时,Q=0,Q非=1,触发器置0,SD和RD通常又称为直接置1和置0端。我们设它们均已加入了高电平,不影响电路的工作。 2. 时序逻辑电路(Sequential Logic Circuit)输出不仅取决于当前输入信号,而且取决于 电路之前所处的状态。基本的时序电路单元有触发器(D、JK、T 等触发器)、锁存器、计数器等。 3. VHDL 中,主要程序分析,时序电路通过process(clk)和if clk’event and clk = ‘1’ then 边沿检测语句实现触发器风格的电路;具有非完分支的if、case 语句形成锁存器电路。例如: process(clk)begin ――D 触发器 if (clk’event and clk = ‘1’) then

Verilog硬件描述语言实验报告

硬件描述语言实验报告 班级: 2016133班 学号: 201613354 姓名: 齐方

目录 硬件描述语言·····················································································································- 0 - 实验报告·································································································································- 0 - 实验一简单组合逻辑设计·································································································- 2 - 实验二简单分频时序逻辑电路的设计·············································································- 5 - 实验三利用条件语句实现计数分频时序电路·································································- 8 - 实验四阻塞赋值与非阻塞赋值的区别·········································································· - 14 - 实验五用always块实现较复杂的组合逻辑电路 ························································· - 18 -

八选一数据选择器(verilog实验报告)

Verilog HDV 数字设计与综合实验报告 微电子0901班 **:*** _ 学号:_********

一、实验课题: 1.八选一数据选择器 2.四位数据比较器 二、八选一数据选择器Verilog程序: 2.1主程序 module option(a,b,c,d,e,f,g,h,s0,s1,s2,out); input [2:0] a,b,c,d,e,f,g,h; input s0,s1,s2; output [2:0] out; reg [2:0] out; always@(a or b or c or d or e or f or g or h or s0 or s1 or s2) begin case({s0,s1,s2}) 3'd0 : out=a; 3'd1 : out=b; 3'd2 : out=c; 3'd3 : out=d; 3'd4 : out=e; 3'd5 : out=f; 3'd6 : out=g; 3'd7 : out=h; endcase end endmodule 2.2激励程序 module sti; reg [2:0] A,B,C,D,E,F,G,H;

reg S0,S1,S2; wire [2:0] OUT; option dtg(A,B,C,D,E,F,G,H,S0,S1,S2,OUT); initial begin A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=0;S1=0;S2=0; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=0;S1=0;S2=1; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=0;S1=1;S2=0; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=0;S1=1;S2=1; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=1;S1=0;S2=0; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=1;S1=0;S2=1; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=1;S1=1;S2=0; #100 A=3'd0;B=3'd1;C=3'd2;D=3'd3;E=3'd4;F=3'd5;G=3'd6;H=3'd7;S0=1;S1=1;S2=1; end endmodule 三、四位数据比较器 3.1主程序 module fourcompare(a,b,c); input[3:0] a,b; output [1:0] c; reg[1:0] c; always@(a or b) begin if(a>b) c=2'd2; else if(a

八选一数据选择器和四位数据比较器verilog实验报告

八选一数据选择器和四位数据比较器verilog实验报告实验报告:八选一数据选择器和四位数据比较器 一、引言 数据选择器和数据比较器是数字电路中常用的基本电路模块,它们在 许多数字系统中起着重要的作用。本实验通过使用Verilog语言,设计并 实现了八选一数据选择器和四位数据比较器电路。本实验报告将分别介绍 这两个电路的设计原理、实验过程以及实验结果。 二、八选一数据选择器的设计 1.设计原理 八选一数据选择器是一种多路选择器,根据控制信号来选择其中一个 输入信号输出。其输入端包括8个数据输入信号(D0-D7)、3个控制信 号(S2、S1、S0)以及一个使能信号(EN),输出端为一个数据输出信号(Y)。当使能信号为高电平时,根据控制信号的值,将对应的输入信号 输出。 2.设计过程 本实验中,我们使用Verilog语言进行八选一数据选择器的设计。首先,我们声明输入输出端口: module mux8to1(input [7:0] D, input [2:0] S, input EN, output reg Y); 然后,我们使用case语句来实现根据控制信号选择输出信号的功能:begin

if (EN) case (S) 3'b000:Y=D[0]; 3'b001:Y=D[1]; 3'b010:Y=D[2]; 3'b011:Y=D[3]; 3'b100:Y=D[4]; 3'b101:Y=D[5]; 3'b110:Y=D[6]; 3'b111:Y=D[7]; default: Y = 1'bx; endcase else Y = 1'bx; end 最后,我们将设计的模块实例化并进行仿真和综合验证。 三、四位数据比较器的设计 1.设计原理

Verilog 实验报告 秒表

Verilog HDL实验报告基于Verilog HDL的数字秒表 班级:信科14-04班 姓名:温华强 学号:08143080 教师:王冠军

基于Verilog HDL的数字秒表 一、秒表功能 1. 计时范围:00:00:00—59:59:99 2. 显示工作方式:八位数码管显示 3.具有暂停和清零的功能 二、实验设计原理 1、秒表的逻辑结构较简单,它主要由十进制计数器、六进制计计数器、分频器、数据选择器和显示译码器组成,在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。 2、秒表有共有8个输出显示,其中6个显示输出数据,分别为百分之一秒,十分之一秒,秒,十秒,分,十分,所以共有6个计数器与之相对应,另外两个为间隔符,显示‘-’。8个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。 3、可定义一个24位二进制的寄存器hour用于存放8个计数器的输出,寄存器从高位到低位每连续4位为一组,分别存放百分之一秒,十分之一秒,间隔符,秒,十秒,间隔符,分,十分,由频率信号输出端输出频率为100HZ的时钟信号输入到百分之一秒模块的时钟端ckl,百分之一秒模块为100进制的计数器,当计数器到“1001”时,百分之一秒模块清零,同时十分之一秒模块加1,十分之一秒模块也为100进制的计数器,当计数到“1001”时,十分之一模块清零,同时秒模块加1;以此类推,一直到分模块计数器到59进59。 秒表计数单位与对应的输出信号 4、为了消除按键消抖问题,定义寄存器key-inner来存储按键key的输入信号,key-flag作为启动/暂停的转换标志,key-inner[0]出现一个下降沿时,key-flag取反一次,当key-flag为0时计数器启动,1时计数器暂停,当key-flag 为1同时key-inner[1]为9时,计数器清零。

(完整word版)Verilog数字钟设计实验报告

基于FPGA实现多功能数字钟 ——电子系 071180094 王丛屹 摘要 本文利用Verilog HDL语言自顶向下的设计方法设计多功能数字钟,并通过ISE完成综合、仿真.此程序通过下载到FPGA 芯片后,可应用于实际的数字钟显示中,实现了基本的计时显示和设置,调整时间,闹钟设置的功能. [关键词]FPGA;Verilog HDL;数字钟

一、多功能数字钟的设计 设计一个多功能数字时钟,具有时分、秒计数显示、闹钟功能。能够利用按键实现对闹钟时间的设定并在当前显示时间到时后能够进行闹钟提示.能够利用按键实现“较时”、“较分"功能,随时对数码管的显示进行校正和校对.数字中系统主要由系统时钟,三个功能按键(mode,turn ,change ),FPGA ,数码管和蜂鸣器部分组成。 图: 多功能数字钟总体设计模块 以下就各个模块说明其功能 1. 分频模块

由于FPGA内部提供的时钟信号频率大约为50MHz,在这需要将它转化成1Hz的标准时钟信号供数字钟的计时显示;在此我采用了级联分频法. RTL图如下: 代码如下:

always @(posedge clk_1) if ( cnt2 〈156/2—1)/////////////////////////////////////100分频,生成10000Hz信号begin cnt2 〈= cnt2 + 1; end else begin cnt2 〈= 0; clk_2 <= ~clk_2; end always @(posedge clk_2) if ( cnt5 〈10/2-1) /////////////////////////////////////////10分频,生成1kHz标准信号begin cnt5〈= cnt5 + 1; end else begin cnt5〈= 0; clk_1k〈= ~clk_1k; end always @(posedge clk_2) if ( cnt3 < 100/2—1)//////////////////////////////////////////100分频,生成100Hz信号begin

2022年verilog八位十进制计数器实验报告附源代码

8位10进制计数器实验报告 一、实验目旳 ●学习时序逻辑电路 ●学会用verilog语言设计时序逻辑电路 ●掌握计数器旳电路构造 ●掌握数码管动态扫描显示原理 二、实验内容 实现一种8bit十进制(BCD码)计数器 端口设立: 用拨动开关实现复位和使能 LED灯来表达8位数据 用数码管显示16进制旳八位数据 1.复位时计数值为8‘h0 2.复位后,计数器实现累加操作,步长为1,逢9进1,,计数值达到8‘h99后,从0开 始继续计数 3.使能信号为1时正常计数,为0时暂停计数,为1时可继续计数。 4.每0.5s计数值加1 5.8位旳成果显示在LED灯上,其中LED灯亮表达相应旳位为1,LED灯灭表达相应旳 灯为0 6.用isim进行仿真,用forever语句模拟时钟信号输入,并给变量赋值仿真initial语句。 7.用7段数码管旳后两位显示16进制下8位成果。

三、实验成果 烧写成果: 拨动reset开关到1时,LED灯显示10010000,7段数码管显示“90”。 之后拨动WE开关呢,开始计数,LED开始变化并且7段数码管开始计数。从99后达到00,LED重新开始从00000000开始亮,且数码管重新从00开始计数。 之后拨动WE开关,暂停计数,LED暂停亮灭,七段数码管暂停变化,WE拨回1,继续计数。 拨动复位信号时,忽视WE信号,直接复位。 仿真成果: 当输入reset信号时波形变化如下 当达到一种扫描信号旳周期时旳波形如下

当达到一种以上计数信号旳周期时旳波形 实验分析: 实验总体构造和模块间关系如图所示:(其中还需要补上使能信号) 实验原理: 由于规定实现数码管和LED灯旳显示,先考虑LED灯,可以直接由8位输出信号控制,而数码管需要同步显示两个不同旳数字,需要时分复用,即迅速旳交替显示十位和个位,运用人眼旳视觉暂留来达到同步显示。这样就需要两种不同旳频率信号。一种是每0.5s一次,作为计数信号,用脉冲生成器生成,另一种是1ms一次旳扫描信号,用降频器生成,将计数信号输入计数器来计数,并将计数旳值和扫描信号同步输入扫描显示模块。在扫描显示模块里用一种变量值在0和1间交替来指引选择信号选择数码管旳不位数。交替旳条件是收到扫描信号。7段数码管和LED灯都与计数值旳

verlog实验报告

Verilog实验报告 1. 引言 本实验旨在通过使用Verilog硬件描述语言来实现一个简单的电路设计。Verilog是一种用于描述电路行为和结构的编程语言,可以用于设计和仿真数字电路。本实验将通过逐步的思考过程,详细说明实验的设计和实现。 2. 设计思路 首先,我们需要确定电路的功能和需要实现的功能。在这个例子中,我们将设计一个简单的4位加法器电路。 接下来,我们需要创建一个顶层模块,该模块将包含所需的输入和输出端口,并将其他模块连接在一起。我们可以使用以下代码创建一个顶层模块: module top_module(input [3:0] a, input [3:0] b, output [3:0] sum); // 端口声明 // 内部逻辑实现 endmodule 然后,我们可以创建一个子模块,该模块将执行实际的加法操作。我们可以使用以下代码创建一个加法器模块: module adder(input [3:0] a, input [3:0] b, output [3:0] sum); // 加法操作实现 endmodule 在加法器模块中,我们可以使用位级操作符+来执行实际的加法运算。我们可以使用以下代码实现加法操作: assign sum = a + b; 最后,我们将在顶层模块中实例化加法器模块,并将输入和输出端口连接在一起。我们可以使用以下代码实现实例化和连接: adder adder_instance(.a(a), .b(b), .sum(sum)); 3. 实验结果 在完成上述步骤后,我们可以编译和仿真我们的Verilog代码。可以使用常见的Verilog仿真器(如ModelSim)来进行仿真。

数字系统设计与Verilog HDL实验报告(一)

《数字系统设计与Verilog HDL》 实验报告(一) 班级:自动1003班 姓名:** 学号:********

实验一、ModelSim认识及四位比较器 一、实验目的 1、了解及掌握ModelSim软件的基本功能; 2、通过ModelSim软件编写基本的程序进行仿真和调试。 二、实验内容 1、熟悉ModelSim软件中各部分的功能及用法; 2、编写一个四位比较器设计程序以及测试该模块的测试程 序,要求如下: (1)输入两个四位二进制数a、b; (2)若ab,则输出LA_out=1,EQ_out=0,LE_out=0; 三、实验步骤及源程序 新建工程及文件,分别添加设计程序及测试程序,进行编译及纠错,编译通过后运行程序仿真进行调试得出结果。 设计模块: module compare4(LA_out,EQ_out,LE_out,a,b,LA_in,EQ_in,LE_in); output LA_out,EQ_out,LE_out; input [3:0] a,b; input LA_in,EQ_in,LE_in; reg LA_out,EQ_out,LE_out; always @(b) begin if(a>b) begin LA_out=1'b1;

EQ_out=1'b0; LE_out=1'b0; end else if(a

verilog汉字滚动显示实验报告

数字系统设计 实验报告 实验06:汉字滚动显示 实验地点:理工楼703 实验时间:2011年05月20日

实验六汉字滚动显示 一、实验目的 1)用8×8点阵显示屏滚动显示至少4个汉字; 2)可以用拨码开关控制左、右滚动显示。 二、实验原理 汉字滚动显示原理为依次对多汉字抽取像素信息,并按序排队存放于ROM 之中,便可得到一个待显示数据序列。进一步通过寻址的方法来控制该数据序列的释放过程,就可实现在8×8 LED 发光二极管点阵上滚动显示多汉字信息的目的。下图给出的就是实现滚动显示多汉字信息的原理示意图。 由图可知,某一时刻能在显示数据序列中定位待显示数据的地址指针可用下式计算:addr=n+m。显然,n的取值范围应为0~N,并由它控制汉字显示的滚动速度;m的取值范围应为0~7,并由它决定LED点阵的开关的扫描速度。因此,控制n扫遍全部待显示数据的时间,可调节汉字信息的滚动速度;改变m 的重复扫描周期,可改善在LED点阵上显示完整汉字信息的稳定性。由此可见,要实现汉字向左滚动,则汉字信息定位指针依次加1,如果实现汉字向右滚动,则依次减1。 三、实验步骤 1)根据实验要求作预习报告。 2)根据实验需求,进行程序的设计。 3)根据以前设计的经验,反复调试程序。 4)调试通过,下载到FPGA开发板上进行实践调试。 5)完成整个过程,写实验报告。 实验程序: dispword(clk,tl,tr,dg,ds); module

reg[7:0] b1[31:0],b2[31:0],b3[31:0],b 4[31:0],b5[31:0],b6[31:0],b7 [31:0],b8[31:0]; reg[31:0] a1,a2,a3,a4,a5,a6,a7,a8; reg f1,f2; input tl,tr,clk; output [0:7] dg,ds; integer a_temp; integer b_temp,k,k1,i; reg [0:7] dg,ds; always@(posedge clk) begin if(a_temp==9999) begin f1=~f1; a_temp<=0; end else a_temp<=a_temp+1; end always@(posedge clk) begin if(b_temp==9999999) begin f2=~f2; b_temp<=0; end else b_temp<=b_temp+1; end ***汉字初始化与经过移动后的汉字赋值*** always@(posedge clk) begin a1[31:0]=32'b1111_1111 _1111_1111_0010_0000_00 00_1000; a2[31:0]=32'b0000_1000 _0000_1000_0100_0000_0 000_1000; a3[31:0]=32'b0000_1000 _0000_1000_1111_1111_00 00_1000; a4[31:0]=32'b1111_1111 _1111_1111_1011_1101_00 00_1000; a5[31:0]=32'b0001_0000 _0001_0000_1010_0101_0 000_1111; a6[31:0]=32'b0010_0100 _0010_0100_1011_1101_0 000_1000; a7[31:0]=32'b0100_0010 _0100_0010_1000_0101_0 000_1000; a8[31:0]=32'b1000_0001_1

1100序列信号发生器的VerilogHDL语言设计实验报告

1100序列信号发生器的VerilogHDL语言设计实验报 告 一、实验目的 1、设计一个序列信号发生器,可以在时钟的作用下周期性的产生1110010序列信号 2、学习时序电路的设计方法; 3、掌握产生周期性信号电路的设计方法; 4、掌握同步和异步概念; 5、掌握仿真的目的和作用; 二、实验环境 QuartusII 、PC机、GW-PK2 EDA实验箱 三、实验原理 给出原理图,说明行为描述方式设计序列信号发生器的原理。 可以产生周期信号的序列信号发生器由计数器和译码器构成。若想产生1110010序列信号,则需要三位二进制计数器,从000记到110,当时钟是上升沿时,若当前记到110,则将计数清为000,再从

头开始,否则计数加1,译码器将每个三位二进制数转换为一位序列信号,计数器和译码器分别由两个进程实现。 四、实验内容及要求 利用QuartusII完成序列信号发生器的VHDL设计及仿真测试,给出仿真波形,进行引脚锁定,并在实验箱上进行硬件验证。 五、实验步骤 (1)用文本方式输入设计文件并存盘 ①创建工程,利用“New Preject Wizard”创建此设计工程。选择菜单“File”“New Preject Wizard”,点击Next,即可弹出工程设置对话框点击此框最上一栏右侧的按钮“…”,设置工程路径,找到文件夹D:\Quartus8\vhdl_code\three,填写工程名和顶层文件名称后,点击Next按钮进行下一步。 ②添加设计源程序。如果已有源程序,可以在此加入到工程中,如果没有点击Next进行下一步。

③选择目标芯片。首先在“Family”栏选芯片系列,在此选“ACEX1K”系列,选择此系列的具体芯片:EP1K30TC144-3。 ④选择仿真器和综合器类型。点击上图的Next按钮,这时弹出 的窗口是选择仿真器和综合器类型的,如果都是选默认的“NONE”,表示都选QuartusII中自带的仿真器和综合器,因此,在此都选默认项“NONE”。

Verilog实验报告

实验报告册(-第2学期) 试验课程:VHDL 系别专业:信息工程 班级:1404 *名:** 任课教师:** 教育信息技术试验教学中心制

实验报告一、试验准备

二、试验过程

试验环节: 1、设计思绪 一种1位全加器可以用两个1位半加器及一种或门连接而成。而一种1位半加器可由基本门电路构成。半加器的真值表为 其中a为被加数,b为加数,so为本位和,co为本位向高位进位,因而可得体现式为:so=NOT(a XOR (NOT b)) ;而co=a AND b ;其原理图形如下: 而全加器的真值表如下: 其中ain为被加数,bin为加数,cin为低位向本位的进位,sum为本位向高位的进位,cout为本位和其原理图如图所示:

2、设计全加器 (1)、在File菜单中选择New项,将出现新建文献对话框。选择“Device Design File->Block Diagram->Schematic File”项。点击“OK”,在主界面中将打开“Block Editor”窗口。 (2)元件的添加:在绘图区点击鼠标右键->Insert->Symbol…或双击鼠标左键,弹出对应的Symbol对话框,在name栏输入需添加的元件,input(输入引脚),两个h_suber ,or2(两输入或门),output(输出引脚)等,回车或点击ok,此时在鼠标光标处将出现该元件图标,并随鼠标的移动而移动,在合适的位置点击鼠标左键,放置一种元件。设计好的全加器如原理图所示。保留文献:从“File” 菜单下选择“Save”,出现文献保留对话框,选择文献夹d:suber(与刚刚的半加器选在同一种文献夹下必须)。单击“OK”. (3)试验程序来自书上(由于汇报书有限,略)

Verilog基本电路设计逻辑仿真实验报告

实验报告 1、基本门电路 一、实验目的 1、了解基于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代码-与非 // HC00.v module HC00(A,B,Y); input [4:1]A,B; output [4:1]Y; assign Y=~(A&B); endmodule //74HC00测试平台代码 // test.v `timescale 1ns/1ns module test1(); 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代码-或非 // HC02.v module HC02(A,B,Y); input [4:1]A,B; output [4:1]Y; assign Y=~(A|B); endmodule //74HC02测试平台代码// test.v `timescale 1ns/1ns module test2(); reg [4:1]a,b; wire [4:1]y; HC02 u2(a,b,y);

相关文档