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

课程名称:Verilog数字系统设计实验实验项目:时钟姓名:专业:计算机科学与技术班级:学号:计算机科学与技术学院201年月日哈尔滨理工大学计算机科学与技术学院实验报告实验项目名称:时钟设计一、实验目的1. 掌握 Verilog HDL 语言的基本运用;2. 熟悉 QuartusⅡ的简单操作;3. 掌握一个基本 EDA 工程设计流程;4. 掌握时钟的设计基本原理。
二、实验内容计数器部分中包含有三个主要计数部分,分别是十进制、六进制以及二十四进制,其中六进制和十进制共同组成六十进制,即实现分和秒的计数,之所以将其分开是便于分别显示个位和十位,通过编写计数器,来计数信号的数量,从而实现时分秒按各自的进制正常计数,同时,将前一时钟单位的进位信号作为下一时钟单位的clk,即从后向前驱动,这样便实现了时钟的正常运转。
三、实验要点及说明1.编写各个模块的 VHDL 代码并进行编译与波形仿真, 仿真无误后生成元件符号。
2.设计数字钟电路的顶层文件,在顶层文件中调入第一步中生成的元件符号,并根据连接关系将它们连接在一起。
3.引脚分配,为顶层设计文件中的各个输入输出端口分配芯片相应的引脚。
4.下载程序到芯片,观看实验现象是否为预想的那样。
同时使用清零按键看能否实现清零,时间正常走动情况下通过按键能否实现校时。
四、实验结果下载成功后,拨动开关 DP4至髙电平,使六个数码管复位淸零;拨动开关 DP4 至低电平,数字钟开始自动计,此过程中可以通过 1键设置小时数,2 键设置分钟数。
当秒数满 60 则进一位, 分钟数满60 进一位,当显示为 23:59:59 时,秒数在加一则显示 00:00:00,同时指示一天结束的 LED 灯亮 10 秒,之后从新计时。
五、程序代码module clock(clk,rst,load,data,lamp,de, led_g,st_stop,ledcom);// clk-时钟10M,rst-复位,load-初始值设置,st_stop-启动暂停input clk,rst,load,st_stop;input [7:0] data; //初始值output lamp; //倒计时结束指示灯output [2:0]de; //数码管位选output [7:0]led_g; //数码管段码output ledcom; //指示灯公共端reg clk_g; // ..... LED扫描时钟信号......reg clk_s;// 秒时钟reg[15:0] cnt1; // 10ms 分频计数器reg[23:0] cnt2; // 1s 分频器计数器reg[3:0] bcd1; // 个位bcd码reg[3:0] bcd2; // 十位bcd码reg lamp; // 指示灯reg[1:0]state1; // 2位数码管扫描位置寄存器reg[3:0]led_g_bcd; // bcd转段码寄存器parameterLED1=3'b000,//数码管1LED2=3'b001;//数码管2assign ledcom=1;//// 10Mhz 晶振用2个分频器分别产生数码管扫描时钟和秒时钟// 10ms方波时钟clk_galways @(posedge clk)beginif (cnt1 >=50000)begincnt1 <= 0;clk_g <= ~clk_g;endelsecnt1 <= cnt1 +1'b1;end// 1s方波时钟clk_salways @(posedge clk)beginif (cnt2 >=5000000)begincnt2 <= 0;clk_s <= ~clk_s;endelsecnt2 <= cnt2 +1'b1;endalways@(posedge clk_s or negedge rst or posedge load ) beginif(!rst) //复位初始状态beginlamp<=0; //灭灯bcd1<=0; //数码管输出0bcd2<=0; //endelseif (load)beginbcd1<=data[3:0];//设置初值bcd2<=data[7:4];//endelseif (st_stop) // 启动暂停切换//BCD倒计时计算,到0时亮灯beginif(bcd1==9) //个位/*******/beginif(bcd2==5) lamp<=1;elsebeginbcd1<=0;bcd2<=bcd2+1;endend/******/elsebeginbcd1<=bcd1+1;lamp<=0;endendend//数码管对应位置扫描输出always @(posedge clk_g or negedge rst)beginif(!rst)beginstate1<=LED1;led_g_bcd<= 0;endelsecase(state1)LED1:beginled_g_bcd<=bcd1;state1<=LED2;endLED2:beginled_g_bcd<=bcd2;state1<=LED1;endendcaseendassign de=state1; //位置//数码管段码表译码assign led_g=(led_g_bcd==0)? 8'h3F:(led_g_bcd==1)? 8'h06:(led_g_bcd==2)? 8'h5b:(led_g_bcd==3)? 8'h4f:(led_g_bcd==4)? 8'h66:(led_g_bcd==5)? 8'h6d:(led_g_bcd==6)? 8'h7d:(led_g_bcd==7)? 8'h07:(led_g_bcd==8)? 8'h7f:(led_g_bcd==9)? 8'h6f:8'h00; endmodule。
最新Verilog数字电路设计--实验报告

Verilog数字电路设计实验名称Verilog数字电路设计班级130324姓名张先炳13031205同组者廖瑞13031191自动化与电气工程学院2016年4月25日目录目录 (2)实验一简单组合逻辑设计 (1)1 实验目的 (1)2 实验设备 (1)3 实验内容 (1)4 实验代码 (1)5 仿真结果 (2)选作一:设计一个字节的比较器 (3)1 实验要求 (3)2 模块代码 (3)3 测试代码 (3)4 仿真结果 (4)实验二简单分频时序逻辑电路的设计 (4)1 实验目的 (4)2 实验设备 (4)3 实验内容 (5)4 实验代码 (5)5 仿真结果 (6)选作二:七段数码管译码电路 (6)1 实验要求 (6)2 模块代码 (7)3 测试代码 (8)4 仿真结果 (8)实验三:利用条件语句实现计数分频时序电路 (9)1 实验目的 (9)2 实验设备 (9)3 实验内容 (9)4 实验代码 (9)5 仿真结果 (11)6 实验分析 (11)选作三:设计一个单周期形状的周期波形。
(11)1 实验要求 (11)2 模块代码 (11)3 测试代码 (12)4 仿真结果 (13)实验四:用always块实现较复杂的组合逻辑 (13)1 实验目的 (13)2 实验设备 (13)3 实验内容 (13)4 实验代码 (14)5 仿真结果 (16)选作四:运用always块设计一个8路数据选择器。
(16)1 实验要求 (16)2 模块代码 (16)3 测试代码 (17)4 仿真结果 (18)实验五:在Verilog HDL中使用函数 (19)1 实验目的 (19)2 实验设备 (19)3 实验内容 (19)4 实验代码 (19)5 仿真结果 (21)选作五:设计一个带控制端的逻辑运算电路 (22)1 实验要求 (22)2 模块代码 (22)3 测试代码 (23)4 仿真结果 (25)实验六:在Verilog HDL中使用任务(task) (25)1 实验目的 (25)2 实验设备 (25)3 实验内容 (25)4 实验代码 (25)5 仿真结果 (28)选作六:冒泡法排序 (28)1 实验要求 (28)2 模块代码 (28)3 测试代码 (29)4 仿真结果 (30)选作七:串行输入排序 (30)1 实验要求 (30)2 模块代码 (31)3 测试代码 (32)4 仿真结果 (33)5 实验分析 (34)实验七:利用有限状态机进行时序逻辑的设计 (34)1 实验目的 (34)2 实验设备 (34)3 实验内容 (35)4 实验代码 (35)5 仿真结果 (37)6 实验分析 (37)选作八:楼梯灯 (37)1 实验要求 (37)2 模块代码 (38)3 测试代码 (45)4 仿真结果 (47)5 实验分析 (47)附:分工明细 (49)实验一简单组合逻辑设计1 实验目的1、掌握基本组合逻辑电路的实现方法。
时序电路应用实验报告(3篇)

第1篇一、实验目的1. 理解时序电路的基本概念和组成,掌握时序电路的设计方法和分析方法。
2. 掌握计数器、寄存器、移位寄存器等时序电路的应用。
3. 熟悉FPGA开发环境,能够使用Quartus II设计工具进行时序电路的设计和仿真。
二、实验原理时序电路是数字电路中的一种重要电路,它能够根据输入信号的变化,产生一系列有序的输出信号。
时序电路主要由触发器、逻辑门和时钟信号组成。
1. 触发器:触发器是时序电路的基本单元,具有存储一个二进制信息的功能。
常见的触发器有D触发器、JK触发器、T触发器等。
2. 逻辑门:逻辑门用于实现基本的逻辑运算,如与、或、非、异或等。
3. 时钟信号:时钟信号是时序电路的同步信号,用于控制触发器的翻转。
三、实验内容1. 计数器设计(1)设计一个3位同步二进制加计数器。
(2)设计一个3位同步二进制减计数器。
2. 寄存器设计使用74LS74触发器设计一个双向移位寄存器。
3. 移位寄存器设计使用74LS74触发器设计一个单向移位寄存器。
4. 环形计数器设计使用74LS74触发器设计一个环形计数器。
5. 可控分频器设计使用Verilog HDL语言设计一个可控分频器,实现时钟信号的分频功能。
四、实验步骤1. 使用Quartus II设计工具创建工程,并添加所需的设计文件。
2. 根据实验原理,编写时序电路的Verilog HDL代码。
3. 编译代码,并生成测试平台。
4. 在测试平台上进行仿真,验证时序电路的功能。
5. 将设计下载到FPGA,进行硬件实验。
6. 记录实验结果,分析实验现象。
五、实验结果与分析1. 计数器实验结果(1)3位同步二进制加计数器:按照时钟信号的变化,计数器能够从000计数到111。
(2)3位同步二进制减计数器:按照时钟信号的变化,计数器能够从111减到000。
2. 寄存器实验结果使用74LS74触发器设计的双向移位寄存器,能够实现数据的左移和右移功能。
3. 移位寄存器实验结果使用74LS74触发器设计的单向移位寄存器,能够实现数据的左移功能。
时序逻辑电路的Verilog_HDL实现实验报告

时序逻辑电路的Verilog HDL 实现一.实验要求(1):编写JK 触发器、8位数据锁存器、数据寄存器的Verilog HDL 程序,并实现其仿真及其测试程序;(2):在实验箱上设计含异步清零和同步使能的计数器。
(3):进行波形仿真测试后;画出仿真波形。
(4):写出实验心得二.实验内容:(1)1.JK 触发器的元件符号如图7.14所示,其中J 、K 是数据输入端,CLR 是复位控制输入端,当CLR=0时,触发器的状态被置为0态;CLK 是时钟输入端;Q 和QN 是触发器的两个互补输出端。
JK 触发器的状态方程为Q n+1 =J Q n +K Q nJK 触发器的verilog HDL 程序module jkff_rs(clk,j,k,q,rs,set); input clk,j,k,set,rs;output reg q;always@(posedge clk,negedge rs,negedge set)begin if(!rs) q<=1'b0;else if(!set) q<=1'b1;else case({j,k})2'b00:q<=q;2'b01:q<=1'b0;2'b10:q<=1'b1;2'b11:q<=~q;default:q<=1'bx;endcaseendendmoduleJK 触发器的功能:带异步清0,异步置1(低电平有效)JK 触发器的仿真结果JK 触发器的元件符号2.8位数据锁存器锁存器元件符号如图所示。
CLR是复位控制输入端,当CLR=0时,8位数据输出Q[7..0]=00000000。
ENA是使能控制输入端,当ENA=1时,锁存器处于工作状态,输出Q[7..0]=D[7..0];ENA=0时,锁存器的状态保持不变。
OE是三态输出控制端,当OE=1时,输出为高阻态;OE=0时,锁存器为正常输出状态。
数字系统设计与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四、实验结果五、实验心得体会这次试验相对于上次有了一定的难度,由于这门课程刚开始学习,我还不能很好地从宏观把握这门课程,对这门课程的认识和理解还不够深刻,所以做实验时遇到了一些困难,虽然找了一些参考资料,有一定的帮助,但最后还是有点纠结,最终在和同学的交流中才比较深刻的对实验有了了解。
数字逻辑实验报告-Verilog时序逻辑设计

上图的设计可以采用门级描述,也可以采用教材《数字设计—原理与实践》(第4版)第525页的表8-20中的行为描述
五、实验器材(设备、元器件):
PC机、Windows XP、Anvyl或Nexys3开发板、Xilinx ISE 14.7开发工具、Digilent Adept下载工具。
六、实验步骤:
实验步骤包括:建立新工程,设计代码与输入,设计测试文件,设置仿真,查看波形,约束与实现、生成流代码与下载调试。
七、关键源代码及波形图:
1.D触发器的Verilog代码
源码如下
仿真结果如下图所示
检查输入输出关系,设计无误。
2.4位通用移位寄存器74x194
源码如下:
仿真计无误。
3.3位LFSR计数器
源码如下:
仿真结果如下图所示
检验输入输出结果正常,设计无误。
4.74x163计数器
设计同步计数器74x163。
三、实验内容:
1.设计边沿D触发器74x74。
2.设计通用移位寄存器74x194。
3.采用1片74x194和其它小规模逻辑门设计3位LFSR计数器。
4.设计4位同步计数器74x163。
四、实验原理:
74x74逻辑电路图
74x194逻辑电路图
3位LFSR逻辑电路图
74x163逻辑电路图
电子科技大学
实验报告
学生姓名:任彦璟学号:2015040101018指导教师:吉家成米源王华
一、实验项目名称:Verilog时序逻辑设计
二、实验目的:
掌握边沿D触发器74x74、同步计数器74x163、4位通用移位寄存器74x194,的工作原理。
设计移位寄存器74x194设计3位最大序列长度线性反馈移位寄存器(LFSR:Linear Feedback Shift Register)计数器。
实验四 FPGA 时序逻辑设计

实验四FPGA 时序逻辑设计学习目标1、了解可编程数字系统设计的流程2、掌握Quartus II 软件的使用方法3、掌握原理图输入方式设计时序逻辑电路的方法和流程必做实验1、实验内容:设计一个电路,用4×4 矩阵键盘输入一个 4 位数,并在数码管上显示,要求如下:(1)输入时,数字顺序是从左到右。
例如,顺序输入0、1、2、3 应该在数码管上显示“0123” 。
(2)比较输入数值,比较结果用 1 个LED 显示。
如果输入值和你的学号后 4 位相等,则LED灯亮,不等LED灭。
(3)实验箱上的数码管内部已译码,4×4 键盘上拉电阻也已连接好。
2、实验要求:1、根据设计要求划分设计层次、单元模块和接口信号,在预习报告上记录设计过程,绘制系统框图,每个模块的状态转移图或ASM 图,并设计验证方案。
2、用原理图输入法设计所有单元模块并编译,分析编译时产生的错误和警告信息3、对所有的单元模块进行功能仿真,并记录和分析全部仿真结果4、在顶层文件中连接全部单元模块并编译、综合、分配管脚和适配。
5、对整个系统进行时序仿真,并记录和分析仿真结果。
6、将仿真正确的设计下载到实验箱上,连接输入输出设备和示波器进行板级验证实验内容设计原理矩阵式键盘,将I/O线分别组成行、列结构,按键设置在行列的交点上。
4×4行列键用4条I/O线作为行线,4条I/O线作为列线所组成的的键盘,16个按键分别设置在行、列线的交点处,行线、列线分别连接到按键开关的两端。
所有的行线和列线都通过上拉电阻接电源,钳位在高电平状态。
相比较独立式按键,4×4行列式键盘只需要8 根I/O 线就实现了16个按键,节省了8个I/O口。
但由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。
通过对行线轮流加低电平信号,的值在1110,1101,1011和0111之间变化。
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’) thenq <= d; end if;end process;process(g,d) begin ――锁存器if g=1 then q <= d; end if;end process;Verilog HDL 中,时序电路通过always 块语句和@(posedge clk)或@(negedge clk)边沿条件方式实现,例如:always @(posedge clk) //二分频器begin if (! Rst) clk_out = 0;else clk_out =~clk_out; end3. 实验设备与软件平台D E2-115实验板,Q u a r tu s I I v5.0,微型计算机,。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学实验报告学生姓名:任彦璟学号: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_DS1_LS1_H S0_LS0_Hw1w2w3w4w5w6w7w8w9w10w11w12w13w14w15w16w17w18w19w2074x194逻辑电路图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仿真结果如下图所示检查输入输出关系,设计无误。
2.4位通用移位寄存器74x194 源码如下:moduleVr74x194(CLK,CLR_L,LIN,RIN,S1,S0,A,B,C,D,Q A,QB,QC,QD);input CLK,CLR_L,LIN,RIN,S1,S0,A,B,C,D ;output QA,QB,QC,QD ;wire CLK_D ;wire CLR_L_D ;wire S1_L,S1_H;wire S0_L,S0_H;wire QAN,QBN,QCN,QDN ;wirew1,w2,w3,w4,w5,w6,w7,w8,w9,w10;wirew11,w12,w13,w14,w15,w16,w17,w18,w19, w20;buf(CLK_D,CLK);buf(CLR_L_D,CLR_L);not(m1,S1);not(m0,S0);and(n1,S0,m1,RIN);and(n2,S0,S1,A);and(n3,m0,m1,QA); and(n5,S0,m1,QA);and(n6,S0,S1,B);and(n7,m0,m1,QB);and(n8,m0,S1,QC);and(n9,S0,m1,QB);and(n10,S0,S1,C);and(n11,m0,m1,QC);and(n12,m0,S1,QD);and(n13,S0,m1,QC);and(n14,S0,S1,D);and(n15,m0,m1,QD);and(n16,m0,S1,LIN);or(p1,n1,n2,n3,n4);or(p2,n5,n6,n7,n8);or(p3,n9,n10,n11,n12);or(p4,n13,n14,n15,n16);vr74x74q1(CLK_D,p1,1'b1,CLR_L_D,QA,QAN);vr74x74q2(CLK_D,p2,1'b1,CLR_L_D,QB,QBN);vr74x74q3(CLK_D,p3,1'b1,CLR_L_D,QC,QCN);vr74x74q4(CLK_D,p4,1'b1,CLR_L_D,QD,QDN); endmodule仿真结果如下图所示检验输入输出结果正常,设计无误。
3.3位LFSR计数器源码如下:module LFSR( CLK,RESET,X2,X1,X0);input CLK,RESET;output X2,X1,X0;wire w1,w3,w6 ;Vr74x194 U1(.CLK(CLK),.CLR_L(1'b1),.RIN(w6),.S1(RESET),.S0(1'b1),.A(1'b1),.B(1'b0),.C(1'b0),.D(1'b0),.QA(X2),.QB(X1) ,.QC(X0));xor (w3,X1,X0) ;nor (w1,X2,X1) ;xor (w6,w1,w3) ;endmodule仿真结果如下图所示检验输入输出结果正常,设计无误。
4. 74x163计数器 源码如下and(w21,w20,w25);not(w26,ENT); nor(w1,LD_L,CLR);nor(w2,w1,CLR); xor(w4,w25,~QN[0]); xor(w10,w9,~QN[1]); xor(w16,w15,~QN[2]); xor(w22,w21,~QN[3]); and(w3,w1,A); and(w5,w2,w4); and(w7,w1,B); and(w11,w2,w10); and(w13,w1,C); and(w17,w2,w16); and(w19,w1,D); and(w23,w2,w22); or(w6,w3,w5); or(w12,w7,w11); or(w18,w13,w17); or(w24,w19,w23); vr74x74 U1 (D[0], CLK, 1, CLR_L, Q[0], QN[0]); vr74x74 U2 (D[1], CLK, 1, CLR_L, Q[1], QN[1]); vr74x74 U3 (D[2], CLK, 1, CLR_L, Q[2], QN[2]); vr74x74 U4 (D[3], CLK, 1, CLR_L, Q[3], QN[3]);endmodulemoduleVr74x163(CLK,CLR_L,LD_L,ENP ,ENT,D,Q,RC O ); input CLK,CLR_L,LD_L,ENP ,ENT; input [3:0]D; output [3:0]Q; output RCO; wirew1,w2,w3,w4,w5,w6,w7,w8,w9,w10; wirew11,w12,w13,w14,w15,w16,w17,w18,w19,w20;wire w21,w22,w23,w24,w25,w26; wire CK; wire CLR; wire [3:0]QN; wire CLK1; buf(CLK1,CLK); not(CLR,CLR_L); not(w8,QN[0]); nor(w14,QN[1],QN[0]); nor(w20,QN[2],QN[1],QN[0]); and(w25,ENP ,ENT); and(w9,w8,w25); and(w15,w14,w25);3位LFSR计数器顶层设计模块module lfsr_8_main(input CLK ,input RESET ,output LED2 , LED1 , LED0);wire CLK_1Hz ;counter_100M u1( CLK , CLK_1Hz ) ;LFSR_8 u2(CLK_1Hz , RESET , LED2 , LED1 , LED0 );endmodule仿真结果如下图所示八、实验结论:边沿D触发器负跳沿触发的主从触发器工作时,必须在正跳沿前加入输入信号。
如果在CP 高电平期间输入端出现干扰信号,那么就有可能使触发器的状态出错。
而边沿触发器允许在CP触发沿来到前一瞬间加入输入信号。
移位寄存器D、2D、1D、0D为并行输入端;3Q、2Q、1Q、0Q为并行输出端;RS为右移串行输入端;LS为左移串行输入端1S、0S为操作模式控制端;RC为直接无条件清零端;CP为时钟脉冲输入端。
74LS194有5种不同操作模式:并行送数寄存;右移(方向由3Q→0Q);左移(方向由0Q→3Q);保持及清零。
对于同步计数器,由于时钟脉冲同时作用于各个触发器,克服了异步触发器所遇到的触发器逐级延迟问题,于是大大提高了计数器工作频率,各级触发器输出相差小,译码时能避免出现尖峰;但是如果同步计数器级数增加,就会使得计数脉冲的负载加重。
九、总结及心得体会:在这此次试验中,根据边沿D触发器74x74的原理图编写设计和仿真模块;根据通用移位寄存器74x194的原理图编写设计和仿真模块;采用1片74x194和其它小规模逻辑门设计3位LFSR计数器,编写设计和仿真了模块;根据4位同步计数器74x163的原理图编写设计和仿真了模块;将输入为100MHz的系统时钟采用7片74x163和其它小规模逻辑门设计了1Hz的数字信号;在FPGA开发板上调试了3位LFSR计数器。
十、对本实验过程及方法、手段的改进建议:无报告评分:指导教师签字:。