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

合集下载

数电实验报告2.1—基于Verilog HDL显示译码器设计

数电实验报告2.1—基于Verilog HDL显示译码器设计

<基于Verilog HDL显示译码器设计>实验报告学生姓名:班级学号:指导老师:<实验报告内容>一、实验名称:基于Verilog HDL 显示译码器设计二、实验学时:4学时 三、实验目的:进一步掌握QuartusII 软件逻辑电路设计环境及Verilog HDL 的基本语法,熟悉设计流程及思路。

掌握显示译码器的工作原理及应用。

(提示:本实验将涉及到verilog 的条件语句(如if …else, case ….end case, for ….等)、赋值语句(如assign 等)和二进制变量位宽的定义等内容,请大家实验前做好本部分预习和自学,可参考本课本第九章内容,也可自行查找有关Verilog 设计基础的相关内容,推荐参考书:北京航空航天出版社,夏宇闻编著 )。

通过对所设计逻辑电路功能仿真,分析所设计电路逻辑功能是否正确,掌握逻辑功能仿真的方法。

四、实验内容:基于verilog 的显示译码器逻辑设计及功能仿真五、实验原理:(1)半导体发光二极管(LED )数码显示器:半导体发光二极管数码显示器由7(或8)个LED 排成“日”字形,称为七段(或八段),封装成数码管,如错误!未找到引用源。

所示。

LED 数码管内部有共阴极和共阳极两种接法。

如错误!未找到引用源。

(2)常用显示译码器管脚功能(74LS148):LCD —七段显示译码器:介绍常用的74LS148七段显示译码器,图 3为74LS4874LS48(a )图 1 图 2 CC fg a bcd e BI 7123456图 3(3)74LS48的逻辑功能:如表1:表1其译码器输出(Ya~Yg)是高电平有效,适用于驱动共阴极LED数码管,显示的字形表中所示。

因其译码器输出端的内部有上拉电阻(是2K的限流电阻),因此在与LED管连接时无需再外接限流电阻。

具体功能介绍及内部设计图,请自行上网查阅74LS48的DATASHEET。

VerilogHDL实验报告

VerilogHDL实验报告

VerilogHDL实验报告实验一Modelsim仿真软件的使用一、实验目的(1)熟悉Modelsim 软件(2)掌握Modelsim 软件的编译、仿真方法(3)熟练运用Modelsim 软件进行HDL 程序设计开发二、实验内容1、实验要求用Verilog HDL 程序实现一个异或门,Modelism仿真,观察效果。

2、步骤1、建立工程2、添加文件到工程3、编译文件4、查看编译后的设计单元5、将信号加入波形窗口6、运行仿真3、方法moduleyihuo (a,b,c);inputa,b;output c;assign c=a^b;endmodule测试程序:module t_yihuo;reg a,b; wire c;initial begin a=0; forever #20 a=~a; end initial begin b=0; forever #30 b=~b; endyihuou1(a,b,c);endmodule二、实验结果波形图:三、分析和心得通过这次的实验,我基本熟悉Modelsim软件,掌握了Modelsim软件的编译、仿真方法。

同时在编写程序的过程中,加深了我对课上所讲的HDL的语法的认识。

实验二简单组合电路设计一、实验目的(1)掌握基于Modelsim的数字电路设计方法(2)熟练掌握HDL 程序的不同实现方法二、实验内容1、实验要求设计一个三人表决器(高电平表示通过),实验内容如下:(1)三个人,一个主裁判,两个副裁判;(2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。

使用 Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真。

2、方法module test(a,b,c,s);inputa,b,c;output s;assign s=c|(b&a);endmodulemodulet_test;rega,b,c;wire s;initialbegina=0;forever#10 a=~a;endinitialbeginb=0;forever #20 b=~b;endinitialbeginc=0;forever#40 c=~c;endtest u1(a,b,c,s);endmodule三、实验结果四、分析和心得通过本次实验,我掌握基于Modelsim的简单数字电路设计方法,且尝试了用不同方法实现功能,三人表决器可以通过testbench测试程序实现,也可以利用always模块实现,可见程序的设计思想是很重要的。

Verilog HDL 实验报告

Verilog HDL 实验报告

Verilog实验报告班级:学号:姓名:实验1 :用 Verilog HDL 程序实现直通线1 实验要求:(1) 编写一位直通线的 Veirlog HDL 程序.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4) 建议用模式 52 试验程序:module wl(in,out);input in;output out;wire out;assign out=in;endmodule3 测试基准:`include “wl.v”module wl_tb;reg in_tb;wire out_tb;initialbeginin_tb =0;#100 in_tb =1;#130 in_tb =0;endendmodule4 仿真图形:实验2 :用 Verilog HDL 程序实现一位四选一多路选择器1实验要求:(1) 编写一位四选一多路选择器的 Veirlog HDL 程序.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4)建议用模式 52 试验程序:module mux4_to_1 (out,i0,i1,i2,i3,s1,s0);output out;input i0,i1,i2,i3;input s1, s0;reg out;always @ (s1 or s0 or i0 or i1 or i2 or i3)begincase ({s1, s0})2'b00: out=i0;2'b01: out=i1;2'b10: out=i2;2'b11: out=i3;default: out=1'bx;endcaseendendmodule3 测试基准:`include "mux4_to_1.v"module mux4_to_1_tb1;reg ain,bin,cin,din;reg[1:0] select;reg clock;wire outw;initialbeginain=0;bin=0;cin=0;din=0;select=2'b00;clock=0;endalways #50 clock=~clock;always @(posedge clock)begin#1 ain={$random} %2;#3 bin={$random} %2;#5 cin={$random} %2;#7 din={$random} %2;endalways #1000 select[0]=!select[0];always #2000 select[1]=!select[1];mux4_to_1 m(.out(outw),.i0(ain),.i1(bin),.i2(cin),.i3(din),.s1(select[1]),.s0(select[0])); endmodule4 仿真图形:实验3:用 Verilog HDL 程序实现十进制计数器1实验要求:(1) 编写十进制计数器的 Veirlog HDL 程序. 有清零端与进位端, 进位端出在输出为 9 时为高电平.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4) 自行选择合适的模式2 实验程序:module counter_10c (Q, clock, clear, ov);output [3:0] Q;output ov;input clock, clear;reg [3:0] Q;reg ov;initial Q=4'b0000;always @ (posedge clear or negedge clock)beginif (clear)Q<=4'b0;else if (Q==8)beginQ<=Q+1;ov<=1'b1;endelse if (Q==9)beginQ<=4'b0000;ov<=1'b0;endelsebeginQ<=Q+1;ov<=1'b0;endendendmodule3 测试基准:`include"./counter_10c.v"module counter_10c_tb;wire[3:0] D_out;reg clk,clr;wire c_out;reg[3:0] temp;initialbeginclk=0;clr=0;#100 clr=1;#20 clr=0;endalways #20 clk=~clk;counter_10c m_1(.Q(D_out),.clear(clr),.clock(clk),.ov(c_out)); endmodule4 仿真波形:实验4 :用 Verilog HDL 程序实现序列检测器1 实验要求:、(1) 编写序列检测器的 Veirlog HDL 程序. 检测串行输入的数据序列中是否有目标序列5'b10010, 检测到指定序列后, 用一个端口输出高电平表示.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4) 自行选择合适的模式2试验程序:module e15d1_seqdet( x, z, clk, rst);input x,clk, rst;output z;reg [2:0] state;wire z;parameter IDLE = 3 'd0,A = 3'd1,B = 3'd2,C = 3'd3,D = 3'd4,E = 3'd5,F = 3'd6,G = 3'd7;assign z =(state==D && x==0)?1:0;always @(posedge clk or negedge rst)if(!rst)beginstate<=IDLE;endelsecasex(state)IDLE: if(x==1)state<=A;else state<=IDLE;A: if (x==0)state<=B;else state<=A;B: if (x==0)state<=C;else state<=F;C: if(x==1)state<=D;else state<=G;D: if(x==0)state<=E;else state<=A;E: if(x==0)state<=C;else state<=A;F: if(x==1)state<=A;else state<=B;G: if(x==1)state<=F;else state <=G;default: state<=IDLE;endcaseendmodule3测试基准:`include"e15d1_seqdet.v"`timescale 1ns/1ns`define halfperiod 20module e15d1_seqdet_tb;reg clk, rst;reg [23:0] data;wire z;reg x;initialbeginclk =0;rst =1;#2 rst =0;#30 rst =1;data= 20 'b1100_1001_0000_1001_0100;#(`halfperiod*1000) $stop;endalways #(`halfperiod) clk=~clk;always @ (posedge clk)begin#2 data={data[22:0],data[23]};x=data[23];ende15d1_seqdet m(.x(x),.z(z),.clk(clk),.rst(rst)); endmodule4仿真波形:。

数字系统设计综合实验报告

数字系统设计综合实验报告

数字系统设计综合实验报告1)实验目的复习加法器的分类及工作原理。

掌握用图形法设计半加器的方法。

掌握用元件例化法设计全加器的方法。

掌握用元件例化法设计多位加法器的方法。

掌握用Verilog HDL语言设计多位加法器的方法。

学习运用波形仿真验证程序的正确性。

学习定时分析工具的使用方法。

2)实验原理加法器是能够实现二进制加法运算的电路,是构成计算机中算术运算电路的基本单元。

目前,在数字计算机中,无论加、减、乘、除法运算,都是化为若干步加法运算来完成的。

加法器可分为1位加法器和多位加法器两大类。

1位加法器有可分为半加器和全加器两种,多位加法器可分为串行进位加法器和超前进位加法器两种。

半加器如果不考虑来自低位的进位而将两个1位二进制数相加,称半加。

实现半加运算的电路则称为半加器。

若设A和B是两个1位的加数,S是两者相加的和,C是向高位的进位。

则由二进制加法运算规则可以得到。

全加器在将两个1位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位三个数相加,这种运算称全加。

实现全加运算的电路则称为全加器。

若设A、B、CI分别是两个1位的加数、来自低位的进位,S是相加的和,C是向高位的进位。

则由二进制加法运算规则可以得到:3)实验内容及步骤用图形法设计半加器,仿真设计结果。

用原件例化的方法设计全加器,仿真设计结果用原件例化的方法设计一个4为二进制加法器,仿真设计结果,进行定时分析。

用Verilog HDL语言设计一个4为二进制加法器,仿真设计结果,进行定时分析。

分别下载用上述两种方法设计4为加法器,并进行在线测试。

4)设计1)用图形法设计的半加器,如下图1所示,由其生成的符号如图2所示。

2)用元件例化的方法设计的全加器如图3所示,由其生成的符号如图4所示。

图三:图四:5)全加器时序仿真波形如图下图所示6)心得体会:第一次做数字系统设计实验,老师给我们讲了用图形法设计的全过程。

verilog实验报告

verilog实验报告

verilog实验报告Verilog实验报告引言:Verilog是一种硬件描述语言(HDL),用于设计和模拟数字电路。

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

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

实验一:基本门电路设计在这个实验中,我使用Verilog设计了基本的逻辑门电路,包括与门、或门和非门。

通过使用Verilog的模块化设计,我能够轻松地创建和组合这些门电路,以实现更复杂的功能。

我首先创建了一个与门电路的模块,定义了输入和输出端口,并使用逻辑运算符和条件语句实现了与门的功能。

然后,我创建了一个测试模块,用于验证与门的正确性。

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

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

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

实验二:时序电路设计在这个实验中,我学习了如何使用Verilog设计时序电路,例如寄存器和计数器。

时序电路是一种具有状态和时钟输入的电路,能够根据时钟信号的变化来改变其输出。

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

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

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

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

我还添加了一个复位输入,用于将计数器的值重置为初始状态。

通过测试模块,我能够验证计数器在不同的时钟周期内是否正确地进行计数。

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

实验三:组合电路设计在这个实验中,我学习了如何使用Verilog设计组合电路,例如多路选择器和加法器。

组合电路是一种没有状态和时钟输入的电路,其输出只取决于当前的输入。

数字系统设计实验报告

数字系统设计实验报告

一、实验目的1. 理解数字系统设计的基本概念和流程。

2. 掌握数字电路的基本设计方法和技巧。

3. 熟悉常用数字集成电路的使用方法。

4. 培养实际动手能力和团队协作精神。

二、实验内容本次实验主要围绕数字系统设计展开,包括以下几个方面:1. 数字电路原理图绘制与仿真2. 数字系统硬件描述语言(HDL)编程3. 顶层模块设计4. 系统仿真与调试三、实验步骤1. 数字电路原理图绘制与仿真(1)根据实验要求,设计数字电路原理图,如数字时钟、移位寄存器等。

(2)使用Multisim等仿真软件对原理图进行仿真,验证电路功能。

2. 数字系统硬件描述语言(HDL)编程(1)根据原理图,使用Verilog或VHDL等HDL语言编写代码。

(2)对代码进行语法检查,确保代码正确。

3. 顶层模块设计(1)根据实验要求,设计顶层模块,如数字时钟控制器、移位寄存器控制器等。

(2)将底层模块(如计数器、触发器等)集成到顶层模块中。

4. 系统仿真与调试(1)使用仿真软件对顶层模块进行仿真,验证系统功能。

(2)根据仿真结果,对代码进行修改和优化,直至系统功能满足要求。

四、实验结果与分析1. 数字电路原理图绘制与仿真(1)原理图设计:根据实验要求,设计了一个数字时钟电路原理图,包括分频器、计数器、触发器等模块。

(2)仿真结果:通过仿真软件对原理图进行仿真,验证了电路功能。

2. 数字系统硬件描述语言(HDL)编程(1)代码编写:使用Verilog语言编写了数字时钟电路的代码,包括分频器、计数器、触发器等模块。

(2)代码验证:通过语法检查,确保代码正确。

3. 顶层模块设计(1)顶层模块设计:根据实验要求,设计了一个数字时钟控制器顶层模块,将底层模块集成到顶层模块中。

(2)系统仿真:通过仿真软件对顶层模块进行仿真,验证了系统功能。

4. 系统仿真与调试(1)系统仿真:通过仿真软件对顶层模块进行仿真,验证了系统功能。

(2)调试:根据仿真结果,对代码进行修改和优化,直至系统功能满足要求。

Verilog-HDL实验报告

Verilog-HDL实验报告

HDL实验报告专业电子科学与技术姓名学号指导老师1 实验一Modelsim仿真软件的使用1.1 实验目的(1)熟悉Modelsim 软件;(2)掌握Modelsim 软件的编译、仿真方法;(3)熟练运用Modelsim 软件进行HDL 程序设计开发。

1.2 实验步骤(1)学习使用Modelsim软件;(2)分析原理及功能;(3)用Verilog HDL编写程序;(4)编写测试程序进行仿真;(4)观察波形,分析仿真结果是否正确。

1.3 实验内容用Verilog HDL 程序实现一个异或门,Modelsim 仿真,观察效果。

1.4.1 程序module my_xor(ina,inb,out);input ina,inb;output out;assign out=ina^inb;endmodulemodule t_xor;reg ina,inb;wire out;initialbeginina=1'b0;forever #20 ina=~ina;endinitialbegininb=1'b0;forever #10 inb=~inb;endmy_xor tt(.ina(ina),.inb(inb),.out(out));endmodule2 实验二简单组合电路设计2.1 实验目的(1)掌握基于Modelsim 的数字电路设计方法;(2)熟练掌握HDL 程序的不同实现方法2.2 实验步骤(1)分析原理及功能;(2)根据原理用Verilog HDL编写程序;(3)编写测试程序进行仿真;(4)观察波形,分析仿真结果是否正确。

2.3 实验内容设计一个三人表决器(高电平表示通过) ,实验内容如下:(1)三个人,一个主裁判,两个副裁判;(2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。

使用Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真(要求:至少使用两种方法实现上述实验内容和testbench)。

verilog HDL课题报告

verilog HDL课题报告

一、实验目的通过此设计的编程和下载运行,初步掌握Verilog HDL语言的always 块语句及基本编程结构。

二、实验过程(1)新建工程;通过“file”→“new project wizard…”菜单命令启动新项目向导,利用向导,建立一个新项目。

(2)输入设计程序在file菜单下,单击“new”命名,弹出对话框,选择Verilog HDL File 选项,建立Verilog HDL文件,输入下面程序:module liushuideng(ledout,clk);output[8:0]ledout;input clk;reg[8:0]ledout;reg[23:0]counter;initialledout=8'b11111111;always@(posedge clk)begincounter=counter+1;if(counter==24'b110000000000000000000000)beginledout=ledout<<1;if(ledout==8'b00000000)ledout=8'b11111111;counter=0;endendendmodule(3)指定管脚和设置不用引脚启动pin planner工具,弹出对话框,在“location”列,选择要分配的位置,为每个电路端子都分配适当的脚位。

在Assignments菜单下,单击Device…命令,进入Device & Pin Options对话框,在切换到Unused Pins页,在Reserved all unused pins栏目中,选择As input tri-stated,回到Setting对话框,单击“确定”。

(4)编译在processing菜单下,单击Start Compilation命令,开始编译项目,若编译成功,单击“确定”。

(5)仿真在file菜单下,单击“new”,弹出对话框,切换到other files页。

VHDL实验报告汇总

VHDL实验报告汇总

实验一4选一多路选择器一:实验目的及实验环境目的1、熟悉ModelSim SE 6.5c的verilog 的文本设计流程,组合电路的设计、仿真和测试。

2、用verilog语言完成设计4选一多路选择器。

3、熟悉文本输入及仿真步骤。

4、初步了解可编程器件设计的全过程。

环境1、P C 机一台2、M odelSim SE 6.5c二. 实验内容1、用verilog语言完成设计4选一多路选择器,2、用结构建模及数据流建模两种方法实现。

3、对于所设计的程序进行编译,检查纠错。

4、程序完善之后进行程序的仿真并进行波形的记录与分析三.实验步骤1、建立工程2、添加文件到工程3、编译文件4、查看编译后的设计单元5、将信号加入波形窗口6、运行仿真四.运行结果五.总结本次实验让我更加的熟悉modelsim使用方法,以及使用时应该注意的问题。

在试验中也学习到了Verilog语法。

在实验中我们应该注意verilog的格式要求,在用编程语言编程的时候,要自习留意语法标准,整理好逻辑思维的同时保证格式的正确。

否则就会浪费大量的时间来完成实验。

试验开始到结束这一过程中,我遇到了很多困难,后来都在同学的提醒和帮助下克服了。

相信有了这次对这个语言和这个软件的接触,我们都有了更加深入的理解。

六.源代码module mux41(a,b,c,d,s1,s0,out);input[1:0] a,b,c,d;input s1,s0;output[1:0] out;reg[1:0] out;always @(a or b or c or d or s1 or s0)begin :mux41case({s1,s0})2'b00: out<=a;2'b01: out<=b;2'b10: out<=c;2'b11: out<=d;default: out=a;endcaseendendmodulemodule sti;reg[1:0] a,b,c,d;reg s0,s1;wire[1:0] out;mux41 dtg(a,b,c,d,s0,s1,out);initialbegina=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=0;s1=0;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=0;s1=1;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=1;s1=0;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=1;s1=1;endendmodule实验二、Verilog HDL设计分频器及计数器一.实验目的及实验环境1)实验目的1、掌握较复杂数字电路或系统的纯Verilog HDL实现方法;2、体会纯Verilog HDL语言输入设计与原理图输入设计的差别;3、更加熟练的使用modelsim软件;2)实验环境计算机一台,使用modelsim软件进行实验仿真3)实验内容1、使用modelsim设计二分频器;2、使用modelsim设计模8计数器;三.测试数据及运行结果1、分频器正常测试数据(3组)及运行结果;2、计数器正常测试数据(3组)及运行结果通过本次实验,进一步熟悉并加深了对verilong语言的认识,初步运用并熟悉了整个程序及操作,加深对分频器的理解。

verilog hdl实验报告

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 实验报告

Verilog 实验报告

Verilog 实验报告一、实验目的本次 Verilog 实验的主要目的是通过实际编写代码和进行仿真,深入理解 Verilog 语言的基本语法、逻辑结构和时序特性,掌握数字电路的设计方法和实现过程,并能够运用Verilog 实现简单的数字逻辑功能。

二、实验环境本次实验使用的软件工具是 Xilinx Vivado 20192,硬件平台是Xilinx Artix-7 开发板。

三、实验内容(一)基本逻辑门的实现1、与门(AND Gate)使用 Verilog 语言实现一个两输入的与门。

代码如下:```verilogmodule and_gate(input a, input b, output out);assign out = a & b;endmodule```通过编写测试激励文件对该模块进行仿真,验证其逻辑功能的正确性。

2、或门(OR Gate)同样实现一个两输入的或门,代码如下:```verilogmodule or_gate(input a, input b, output out);assign out = a | b;endmodule```3、非门(NOT Gate)实现一个单输入的非门:```verilogmodule not_gate(input a, output out);assign out =~a;endmodule```(二)组合逻辑电路的实现1、加法器(Adder)设计一个 4 位的加法器,代码如下:```verilogmodule adder_4bit(input 3:0 a, input 3:0 b, output 4:0 sum);assign sum = a + b;endmodule```2、减法器(Subtractor)实现一个 4 位的减法器:```verilogmodule subtractor_4bit(input 3:0 a, input 3:0 b, output 4:0 diff);assign diff = a b;endmodule```(三)时序逻辑电路的实现1、计数器(Counter)设计一个 4 位的计数器,能够在时钟上升沿进行计数,代码如下:```verilogmodule counter_4bit(input clk, output 3:0 count);reg 3:0 count_reg;always @(posedge clk) begincount_reg <= count_reg + 1;endassign count = count_reg;endmodule```2、移位寄存器(Shift Register)实现一个 4 位的移位寄存器,能够在时钟上升沿进行左移操作:```verilogmodule shift_register_4bit(input clk, input rst, output 3:0 data_out);reg 3:0 data_reg;always @(posedge clk or posedge rst) beginif (rst)data_reg <= 4'b0000;elsedata_reg <={data_reg2:0, 1'b0};endassign data_out = data_reg;endmodule```四、实验结果与分析(一)基本逻辑门的结果通过仿真,与门、或门和非门的输出结果与预期的逻辑功能完全一致,验证了代码的正确性。

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

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

《数字系统设计与Verilog HDL》实验报告(二)班级:自动1003班姓名:**学号:********实验二、四位并串转换电路一、实验目的1、了解及掌握时序电路的基本结构常用数字电路;2、通过ModelSim软件编写时序电路的程序进行仿真和调试。

二、实验内容1、熟悉时序电路中时钟的同步与异步用法;2、编写一个四位并串转换设计程序以及测试该模块的测试程序,要求如下:(1)输入一个四位二进制数pin;(2)每个时钟周期按从左往右的顺序输出一位pin的二进制位的数。

三、实验步骤及源程序新建工程及文件,分别添加设计程序及测试程序,进行编译及纠错,编译通过后运行程序仿真进行调试得出结果。

设计模块:module para_to_serial4(pin,clk,reset,sout);input [3:0] pin;input clk,reset;output sout;reg sout;reg [3:0] data;always @(posedge clk or negedge reset)beginif(~reset)beginsout<=1'b0;data<=pin;endelsebegindata<={data[2:0],data[3]};sout<=data[3];endendendmodule测试模块:`timescale 1ns/1nsmodule test_para_to_ser;wire sout;reg [3:0] pin;reg clk,reset;para_to_serial4 test1(pin,clk,reset,sout);initialbeginclk=1'b0;reset=1'b0;#5 reset=1'b1;#300 $stop;endinitialpin=4'b1001;always#5 clk=~clk;endmodule四、实验结果五、实验心得体会这次试验相对于上次有了一定的难度,由于这门课程刚开始学习,我还不能很好地从宏观把握这门课程,对这门课程的认识和理解还不够深刻,所以做实验时遇到了一些困难,虽然找了一些参考资料,有一定的帮助,但最后还是有点纠结,最终在和同学的交流中才比较深刻的对实验有了了解。

数字系统设计_实验报告

数字系统设计_实验报告

一、实验目的1. 熟悉数字系统设计的基本流程和方法;2. 掌握数字系统硬件描述语言(如Verilog)的基本语法和设计方法;3. 培养动手实践能力,提高数字系统设计水平;4. 了解数字系统设计中常用模块的功能和实现方法。

二、实验内容1. 数字系统硬件描述语言(Verilog)编程2. 数字系统模块设计3. 数字系统仿真与调试三、实验步骤1. 设计数字系统模块(1)分析数字系统功能需求,确定模块功能;(2)根据模块功能,设计模块的输入输出端口和内部结构;(3)使用Verilog语言编写模块代码。

2. 编写顶层模块(1)根据数字系统功能需求,设计顶层模块的输入输出端口和内部结构;(2)将已设计的模块实例化,连接各模块端口;(3)编写顶层模块代码。

3. 仿真与调试(1)使用仿真工具(如ModelSim)对顶层模块进行仿真;(2)观察仿真波形,分析模块功能是否满足设计要求;(3)根据仿真结果,对模块代码进行修改和优化;(4)重复步骤(2)和(3),直至模块功能满足设计要求。

四、实验结果与分析1. 数字系统模块设计(1)设计了一个4位加法器模块,包括两个4位输入端口、一个4位输出端口和两个进位输出端口;(2)设计了一个2位乘法器模块,包括两个2位输入端口和一个4位输出端口;(3)设计了一个8位存储器模块,包括一个8位输入端口、一个8位输出端口和一个地址输入端口。

2. 顶层模块设计(1)根据功能需求,设计了一个包含加法器、乘法器和存储器的数字系统顶层模块;(2)将已设计的模块实例化,连接各模块端口;(3)编写顶层模块代码。

3. 仿真与调试(1)使用ModelSim对顶层模块进行仿真;(2)观察仿真波形,发现加法器和乘法器功能正常,但存储器模块存在错误;(3)分析存储器模块代码,发现地址输入端口的逻辑关系错误;(4)修改存储器模块代码,重新进行仿真,验证模块功能正确。

五、实验总结1. 通过本次实验,掌握了数字系统设计的基本流程和方法;2. 学会了使用Verilog语言进行数字系统模块设计;3. 培养了动手实践能力,提高了数字系统设计水平;4. 了解数字系统设计中常用模块的功能和实现方法。

数字系统设计及实验实验报告

数字系统设计及实验实验报告

数字系统设计及实验实验报告一、实验目的数字系统设计及实验课程旨在让我们深入理解数字逻辑的基本概念和原理,掌握数字系统的设计方法和实现技术。

通过实验,我们能够将理论知识应用于实际,提高解决问题的能力和实践动手能力。

本次实验的具体目的包括:1、熟悉数字电路的基本逻辑门、组合逻辑电路和时序逻辑电路的设计方法。

2、掌握使用硬件描述语言(如 Verilog 或 VHDL)进行数字系统建模和设计。

3、学会使用相关的电子设计自动化(EDA)工具进行电路的仿真、综合和实现。

4、培养团队合作精神和工程实践能力,提高解决实际问题的综合素质。

二、实验设备和工具1、计算机:用于编写代码、进行仿真和综合。

2、 EDA 软件:如 Quartus II、ModelSim 等。

3、实验开发板:提供硬件平台进行电路的下载和测试。

4、数字万用表、示波器等测量仪器:用于检测电路的性能和信号。

三、实验内容1、基本逻辑门电路的设计与实现设计并实现与门、或门、非门、与非门、或非门和异或门等基本逻辑门电路。

使用 EDA 工具进行仿真,验证逻辑功能的正确性。

在实验开发板上下载并测试实际电路。

2、组合逻辑电路的设计与实现设计一个 4 位加法器,实现两个 4 位二进制数的相加。

设计一个编码器和译码器,实现数字信号的编码和解码。

设计一个数据选择器,根据控制信号选择不同的输入数据。

3、时序逻辑电路的设计与实现设计一个同步计数器,实现模 10 计数功能。

设计一个移位寄存器,实现数据的移位存储功能。

设计一个有限状态机(FSM),实现简单的状态转换和控制逻辑。

四、实验步骤1、设计方案的确定根据实验要求,分析问题,确定电路的功能和性能指标。

选择合适的逻辑器件和设计方法,制定详细的设计方案。

2、代码编写使用硬件描述语言(如 Verilog 或 VHDL)编写电路的代码。

遵循代码规范,注重代码的可读性和可维护性。

3、仿真验证在 EDA 工具中对编写的代码进行仿真,输入不同的测试向量,观察输出结果是否符合预期。

HDL实验报告

HDL实验报告

HDL实验报告专业:学号:姓名:指导老师:目录实验一:modelsim软件使用 (3)实验二:简单组合电路设计 (5)实验三:二进制全加器设计 (7)实验四:二进制计数器设计 (12)实验五:基本IO口硬件实现 (16)实验一Modelsim 仿真软件的使用一、实验目的(1)熟悉Modelsim 软件;(2)掌握Modelsim 软件的编译、仿真方法(3)熟练运用Modelsim 软件进行HDL 程序设计开发二、实验步骤(1)学习,练习使用Modelsim软件(2)用 Verilog HDL 程序实现一个异或门,Modelsim 仿真,观察效果三、实验结果1.程序:module yihuo(a,b,c);input a,b;output c;assign c=a^b;endmodule测试文件:module t_yihuo;reg a,b;wire c;initialbegina=1’b0;b=1’b0;#20 a=1’b1;b=1’b0;#20 a=1’b0;b=1’b1;#20 a=1’b1;b=1’b1;endyihuo u1(a,b,c);endmodule仿真波形:四、心得1、编程时候要注意不能少了句子末尾的分号;2、initial后面不能有分号;3、程序第一行后面得加上分号,但是末尾不需要。

实验二简单组合电路设计一、实验目的(1)掌握基于Modelsim 的数字电路设计方法;(2)熟练掌握HDL 程序的不同实现方法二、实验内容设计一个三人表决器(高电平表示通过),实验内容如下:(1)三个人,一个主裁判,两个副裁判;(2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。

使用 Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真(要求:至少使用两种方法实现上述实验内容和testbench)。

三、实验结果程序1module one (ina,inb,inc,outc);input ina,inb,inc;output outc;reg outc;always @(ina or inb or inc)outc=ina|inb&inc;endmodule程序2module one (ina,inb,inc,outc);input ina,inb,inc;output outc;asign outc=ina|inb&inc;endmodule测试文件:module t_biaojue;reg a,b,c;wire y;initialbegina=1'b0;forever #10 a=~a;endinitialbeginb=1'b0;forever #20 b=~b;endinitialbeginc=1'b0;forever #40 c=~c;endone t(a,b,c,y);endmodule仿真波形如下:实验心得:第一次独立使用modelsim软件,从一开始的生疏,到做完实验后慢慢地了解如何使用这个软件,并自己做出了基本的仿真,通过仿真验证程序的对与错。

Verilog HDL 数字系统设计及实践 第2章Verilog基本语法_

Verilog HDL 数字系统设计及实践  第2章Verilog基本语法_


Verilog有下面四种基本的逻辑状态。 ◆ 0:低电平、逻辑0或逻辑非 ◆ 1:高电平、逻辑1或“真” ◆ x或X:不确定或未知的逻辑状态 ◆ z或Z:高阻态 • Verilog中的所有数据类型都在上述4类逻辑状态中 取值,其中x和z都不区分大小写,也就是说,值 0x1z与值0X1Z是等同的。
数据类型
27
• reg [5:0] Frx; Arc = Bar + Crt; Frx = Bar + Crt; • 第一个加的结果长度由Bar ,Crt 和A rc 长 度决定,长度为4 位。 • 第二个加法操作的长度同样由Frx 的长度决 定(Frx 、Bat 和Crt 中的最长长度),长 度为6位。 • 在第一个赋值中,加法操作的溢出部分被 丢弃;而在第二个赋值中,任何溢出的位 存储在结果位Frx [ 4 ]中。
net型
Net型数据相当于硬件电路中的各种物理连接,其特点是 输出的值紧跟输入值的变化而变化。对连线型有两种驱 动方式,一种方式是在结构描述中将其连接到一个门元 件或模块的输出端;另一种方式是用持续赋值语句assign 对其进行赋值。 wire是最常用的Net型变量。 wire型变量的定义格式如下: wire 数据名1,数据名2,……数据名n; 例如: wire a,b; //定义了两个wire型变量a和b Examples:
• 2.位选择和域选择
在表达式中可任意选中向量中的一位或相邻几位,分别称为 位选择和域选择,例如:
A=mybyte[6]; B=mybyte[5:2]; • 再比如: reg[7:0] a,b; reg[3:0] c; reg d; d=a[7]&b[7]; c=a[7:4]+b[3:0]; //位选择 //域选择 //位选择 //域选择

VerilogHDL基础实验可编程实验报告

VerilogHDL基础实验可编程实验报告

可编程逻辑器件设计实验报告实验名称:第二部分:VerilogHDL基础实验实验目的:掌握Quartus II 软件的基本使用方法,完成基本时序电路设计实验时间: 2014 年 06 月 19 日地点: 803实验室学生姓名:学号:实验名称:简单D触发器实验一简单D触发器1、实验步骤(1)创建工程启动New Project Wizard,创建一个工程。

(2)创建文件选择菜单File—>New—>Verilog HDL File,创建一个Verilog HDL文件,在Verilog HDL文件中编写能够完成实验功能的Verilog HDL代码。

(3)编译工程选择菜单Processing —>Start Compilation,或者单击按钮。

(4)观察RTL视图选择菜单Tools—>Netlist Viewers—>RTL Viewer即可生成RTL视图。

(5)仿真1).创建VWF文件选择菜单File—>New—>Vector Waveform File2). 设定“End Time”选择菜单Edit File—> End Time,在弹出的对话框中将Time设置为20us。

3).在VWF文件中输入信号节点选择菜单View—>Utility Windows—>Node Finder,在出现的对话框中将Filter框中设置为Pins:all,再单击List按钮,从端口列表中选择需要观察的并拖到波形编辑窗口中。

4).编辑输入信号波形5).观察仿真结果选择菜单Processing—>Start Simulation,或者单击按钮,观察输出波形。

2. VerilogHDL代码module _DFF (clk,d,q);input clk,d;output q;reg q;always@ (posedge clk)beginq<=d;endendmodule3. RTL 视图4.仿真波形实验二同步置数的D触发器1.实验步骤(1)创建工程启动New Project Wizard,创建一个工程。

基于Verilog-HDL的现代数字系统设计

基于Verilog-HDL的现代数字系统设计



能够在多个层次上对所设计的系统加 以描述. 从开关级、 、 门级 寄存器卿 到功能级和系统级 , 都可以描述。设计的规模可以是任意的 , 语言不对 设计的规模施加任何 限制。并且具有混合建模能 力。 即在—个设计中各个模块可以在不同设计层次 E 建模和描述 。 基本逻辑门, 例如 ado 和 nn n 、r ad等都内置在 语言中; 开关级结构模型 , p o 和 n o 等也 例如 m s m s 被内置在语言 中, 用户可以直接调用。用户定义原 语 D 泡 建的灵活性。用户定义的原语既可 以是 P0 组合逻辑原语 , 也可以是时序逻辑原语。 V ro D 的基本设计单元是’ 抉 ( o 。 el H L ig 喂- b c l 个模块是由两部分组成的一 部分描述接口; 另一 部分描述逻辑功能 ,即定义输入是如何影响输出 的。 2 Q ats I ur I简介 u Q ats I Ahr 公 司 推 出 的 F G /P D ur 是 uI ea P AC L 的开发工具 , 其具有功能强大 , 使用灵活方便等优
i u  ̄1 m>)
in m [. = ) fu a  ̄ O ( 3
b sn  ̄ i
工具 , E A计术的发展, 随着 D 为现代数字系统 的 设 计提供了 灵活 , 快捷的途径。E A以计算机为工作 D 平台, 了 融合 应用 电子技术、 计算机技术和智能化 技术 的最新成果 而开发 出的电子 C D A 通用 软件 包 。它根据硬件描述语言( D ) H L 完成设计文件 , 自 动完成逻辑编译 、 化简、 、 、 、 分割 综合 优化 布局布线 及仿真, 直至可实现对于特定 目 标芯片的适配编译 、 逻辑映射和编程下载等工作。本文通过介绍 V e ig H L l o D 语言和 Q a u 工具来对现代数字系 ur s I t I 最后通过设计—个 交通灯控制器对现代数字系统的设计进行详细的

数字通信系统设计实验报告

数字通信系统设计实验报告

实验1:用 Verilog HDL 程序实现乘法器1实验要求:(1) 编写乘法器的 Veirlog HDL 程序.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证(4) 注意乘法逻辑电路的设计.2 试验程序:Module multiplier(input rst,input clk,input [3:0]multiplicand,input [3:0]multiplier,input start_sig,output done_sig,output [7:0]result); reg [3:0]i;reg [7:0]r_result;reg r_done_sig;reg [7:0]intermediate;always @ ( posedge clk or negedge rst )if( !rst )begini<=4'b0;r_result<=8'b0;endelseif(start_sig)begincase(i)0:beginintermediate<={4'b0,multiplicand};r_result<=8'b0;i<=i+1;end1,2,3,4:beginif(multiplier[i-1])beginr_result<=r_result+intermediate;endintermediate<={intermediate[6:0],1'b0};i<=i+1;end5:beginr_done_sig<=1'b1;i<=i+1;end6:beginr_done_sig<=1'b0;i<=1'b0;endendcaseendassign result=r_done_sig?r_result:8'bz; assign done_sig=r_done_sig;endmodule3测试基准:`timescale 1 ps/ 1 psmodule multiplier_simulation();reg clk;reg rst;reg [3:0]multiplicand;reg [3:0]multiplier;reg start_sig;wire done_sig;wire [7:0]result;/***********************************/ initialbeginrst = 0; #10; rst = 1;clk = 1; forever #10 clk = ~clk;end/***********************************/ multiplier U1(.clk(clk),.rst(rst),.multiplicand(multiplicand),.multiplier(multiplier),.result(result),.done_sig(done_sig),.start_sig(start_sig));reg [3:0]i;always @ ( posedge clk or negedge rst ) if( !rst )begini <= 4'd0;start_sig <= 1'b0;multiplicand <= 4'd0;multiplier <= 4'd0;endelsecase( i )0: // multiplicand = 10 , multiplier = 2if( done_sig ) begin start_sig <= 1'b0; i <= i + 1'b1; endelse begin multiplicand <= 4'd10; multiplier <= 4'd2; start_sig <= 1'b1; end1: // multiplicand = 15 , multiplier = 15if( done_sig ) begin start_sig <= 1'b0; i <= i + 1'b1; endelse begin multiplicand <= 4'd15; multiplier <= 4'd15; start_sig <= 1'b1; end2: // multiplicand = 0 , multiplier = 0if( done_sig ) begin start_sig <= 1'b0; i <= i + 1'b1; endelse begin multiplicand <= 4'd0; multiplier <= 4'd1; start_sig <= 1'b1; end3: // multiplicand = 7 , multiplier = 11if( done_sig ) begin start_sig <= 1'b0; i <= i + 1'b1; endelse begin multiplicand <= 4'd7; multiplier <= 4'd11; start_sig <= 1'b1; end4:begin i <= i; endendcaseendmodule4仿真图形:实验2:用 Verilog HDL 程序实现二分频1实验要求:(1) 编写二分频的 Veirlog HDL 程序.(2) 编写配套的测试基准.(3) 掌握分频时序逻辑电路的设计方法(4) 学习时序逻辑电路的设计方法2 试验程序:module frequency_divider(input clk,input rst,output out_clk); reg r_out_clk;always@(posedge clk or negedge rst)if(!rst)beginr_out_clk<=1'b0;endelsebeginr_out_clk<=~r_out_clk;endassign out_clk=r_out_clk;endmodule3 测试基准:`timescale 1 ps/ 1 psmodule frequency_divider_simulation();reg clk;reg rst;wire out_clk;initialbeginrst = 0; #10; rst = 1;clk = 1; forever #10 clk = ~clk;endfrequency_divider U1(.clk(clk),.rst(rst),.out_clk(out_clk));endmodule4 仿真图形:实验3:用 Verilog HDL 程序实现一位四选一多路选择器1实验要求:(1) 编写一位四选一多路选择器的 Veirlog HDL 程序.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4) 学会其逻辑时序的设计方法.2 试验程序:module data_selector(input clk,input rst,input [1:0]address,input [3:0]data,output out_data);reg r_out_data;always@(posedge clk or negedge rst)if(!rst)beginr_out_data<=1'bz;endelsebeginr_out_data<=data[address];endassign out_data=r_out_data;endmodule3 测试基准:module data_selector_simulation();reg clk;reg rst;reg [1:0]address;reg [3:0]data;wire out_data;initialbeginrst = 0; #10; rst = 1;clk = 1; forever #10 clk = ~clk;enddata_selector U1(.clk(clk),.rst(rst),.address(address),.data(data),.out_data(out_data));reg [3:0]i;always @ ( posedge clk or negedge rst ) if( !rst )begini <= 4'd0;endelsecase( i )0:begindata<=4'b1010;address<=2'd0;i<=i+1;end1:begindata<=4'b1010;address<=2'd1;i<=i+1;end2:begindata<=4'b1010;address<=2'd2;i<=i+1;end3:begindata<=4'b1010;address<=2'd3;i<=i+1;end4:begin i <= 4'd4; endendcaseendmodule4 仿真图形:实验4:用 Verilog HDL 程序实现四位加法器1实验要求:(1) 编写四位加法器的 Veirlog HDL 程序.(2) 编写配套的测试基准.(3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证.(4) 注意逻辑时序的描述设计方法2 试验程序:module adder(input rst,input clk,input [3:0]adder1,input [3:0]adder2,input start_sig,output [4:0]out_adder,output done_sig);reg [4:0]r_out_adder;reg [2:0]i;reg r_done_sig;always@(posedge clk or negedge rst)if(!rst)begini<=3'b0;r_out_adder=5'b0;endelsebeginif(start_sig)case(i)0:beginr_out_adder<={1'b0,adder1};i<=i+1;end1:beginr_out_adder<=r_out_adder+{1'b0,adder2};r_done_sig<=1'b1;i<=i+1;end2:begini<=0;r_done_sig<=1'b0;endendcaseendassign done_sig=r_done_sig;assign out_adder=i?5'bz:r_out_adder;endmodule3 测试基准:`timescale 1 ps/ 1 psmodule adder_simulation();reg clk;reg rst;reg [3:0]adder1;reg [3:0]adder2;reg start_sig;wire done_sig;wire [4:0]out_adder;/***********************************/initialbeginrst = 0; #10; rst = 1;clk = 1; forever #10 clk = ~clk;end/***********************************/adder U1(.clk(clk),.rst(rst),.adder1(adder1),.adder2(adder2),.out_adder(out_adder),.done_sig(done_sig),.start_sig(start_sig));reg [3:0]i;always @ ( posedge clk or negedge rst )if( !rst )begini <= 4'd0;start_sig <= 1'b0;adder1 <= 4'd0;adder2 <= 4'd0;endelsecase( i )0: // adder1 = 10 , adder2 = 2if( done_sig ) begin start_sig <= 1'b0; i <= i + 1'b1; endelse begin adder1 <= 4'd10; adder2 <= 4'd2; start_sig <= 1'b1; end 1: // adder1= 15 , adder2 = 15if( done_sig ) begin start_sig <= 1'b0; i <= i + 1'b1; endelse begin adder1 <= 4'd15; adder2 <= 4'd15; start_sig <= 1'b1; end 2: // adder1 = 0 , adder2 = 0if( done_sig ) begin start_sig <= 1'b0; i <= i + 1'b1; endelse begin adder1 <= 4'd0; adder2 <= 4'd1; start_sig <= 1'b1; end3: // adder1 = 7 , adder2 = 11if( done_sig ) begin start_sig <= 1'b0; i <= i + 1'b1; endelse begin adder1 <= 4'd7; adder2 <= 4'd11; start_sig <= 1'b1; end4:begin i <= i; endendcaseendmodule4仿真图形:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数字系统设计与Verilog HDL》
实验报告(二)
班级:自动1003班
姓名:刘洋
学号:06101103
实验二、四位并串转换电路
一、实验目的
1、了解及掌握时序电路的基本结构常用数字电路;
2、通过ModelSim软件编写时序电路的程序进行仿真和调试。

二、实验内容
1、熟悉时序电路中时钟的同步与异步用法;
2、编写一个四位并串转换设计程序以及测试该模块的测试程
序,要求如下:
(1)输入一个四位二进制数pin;
(2)每个时钟周期按从左往右的顺序输出一位pin的二进制位的数。

三、实验步骤及源程序
新建工程及文件,分别添加设计程序及测试程序,进行编译及纠错,编译通过后运行程序仿真进行调试得出结果。

设计模块:
module para_to_serial4(pin,clk,reset,sout);
input [3:0] pin;
input clk,reset;
output sout;
reg sout;
reg [3:0] data;
always @(posedge clk or negedge reset)
begin
if(~reset)
begin
sout<=1'b0;
data<=pin;
end
else
begin
data<={data[2:0],data[3]};
sout<=data[3];
end
end
endmodule
测试模块:
`timescale 1ns/1ns
module test_para_to_ser;
wire sout;
reg [3:0] pin;
reg clk,reset;
para_to_serial4 test1(pin,clk,reset,sout);
initial
begin
clk=1'b0;
reset=1'b0;
#5 reset=1'b1;
#300 $stop;
end
initial
pin=4'b1001;
always
#5 clk=~clk;
endmodule
四、实验结果
五、实验心得体会
这次试验相对于上次有了一定的难度,由于这门课程刚开始学习,我还不能很好地从宏观把握这门课程,对这门课程的认识和理解还不够深刻,所以做实验时遇到了一些困难,虽然找了一些参考资料,有一定的帮助,但最后还是有点纠结,最终在和同学的交流中才比较深刻的对实验有了了解。

相关文档
最新文档