模可变计数器

合集下载

实验一 模可变计数器

实验一 模可变计数器

南昌大学实验报告学生姓名:柳宇航学号:6102113025专业班级:通信工程中兴131班实验类型:□验证□综合□设计□创新实验日期:2015.10.22实验成绩:实验一模可变计数器的设计(一)实验要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下:1、设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的数,没按下时模为100-199之间(具体数值自行确定)的数;2、计数结果用三位数码管十进制显示。

(二)实验步骤1.选定M=0时,实现模值为17的计数;M=1时,实现模值为119的计数。

2.建立工作库文件夹,输入计数器的Verilog代码并存盘。

3.选目标器件CycloneII中的EP2C35F672C8并编译。

4.建立仿真波形文件,设置仿真结束时间和输入条件,进行波形仿真。

图1仿真波形的建立图2M=0时模17计数仿真M=0时,计数到16,灯亮M=1M=0复位M=1时,计数到118,灯亮图3M=1时模119计数仿真波形分析:当RST为高电平时,计数清零。

当RST为低电平,使能位EN为高电平时,开始计数:模控制位M为低电平时,则计数器记到16时归0后重新计数,实现模为17的计数功能;模控制位M为高电平时,则计数器记到118时归0后重新计数,实现模为119的计数功能。

当EN 为低电平时,暂停计数。

5.管脚分配clk PIN_C13en PIN_A5m PIN_B5rst PIN_A6sel[0]PIN_G18sel[1]PIN_G17sel[2]PIN_G16SG[0]PIN_F13SG[1]PIN_F14SG[2]PIN_F15SG[3]PIN_E15SG[4]PIN_F16SG[5]PIN_F17SG[6]PIN_E18SG[7]PIN_F18d[0]PIN_H106.下载测试。

下载到实验箱上测试,下推K7(M=0),可以从实验箱数码管观察到0~16模17计数。

模可变16位加法计数器.

模可变16位加法计数器.

课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 模可变16位加法计数器设计初始条件:可用仪器: PC机(Quartus II软件)硬件:EDA-IV型实验箱。

要求完成的主要任务:(1)设计任务设计可变16位加法计数器,可通过3个选择位M2、M1、M0实现最多8种不同模式的计数方式,例如可构成5、10、16、46、100、128、200、256进制,共8种计数模式。

(2)时间安排:2012.12.17 课程设计任务布置、选题、查阅资料2012.12.18-21 设计,软件编程、仿真和调试2012.12.22 2012.12.23 实验室检查仿真结果,验证设计的可行性和正确性,熟悉实验平台和试验箱2012.12.24-26 设计的硬件调试2012.12.27-28 机房检查设计成果,现场演示硬件实物,提交设计说明书及答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要.................................... 错误!未定义书签。

Abstract (II)1 计数器的工作原理 (1)2 设计原理 (3)2.1 整体设计原理 (3)2.2 单元模块的设计 (4)2.2.1 计数模块的设计 (4)2.2.2显示模块的设计 (5)2.2.3分频模块的设计 (5)2.2.4 顶层模块的设计 (5)3 单元模块元件原理图 (6)4 电路系统的功能仿真 (8)5 硬件调试 (10)6 个人小结 (12)参考文献 (13)附录 (14)摘要计数器的种类按照计数器中的触发器是否同时翻转分类,可将计数器分为同步计数器和异步计数器两种,如果按照计数过程中数字增减分类,又可将计数器分为加法计数器、减法计数器和可逆计数器,随时钟信号不断增加的为加法计数器,不断减少的为减法计数器,可增可减的叫做可逆计数器。

计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。

(完整版)安徽大学研究生入学考试数字电路与逻辑设计答

(完整版)安徽大学研究生入学考试数字电路与逻辑设计答

2005年招收攻读硕士学位研究生入学考试试题答案一、填空(30分)1. 同A BC +相等的逻辑函数表达式是( A )(A) ()()A B A C ++ (B) ()()A B A C ++ (C) ()A B C + 2. 能使F A =的电路是 ( C )3. PAL 为可编程阵列器件,其主要结构是 ( B ) (A) 与阵列可编程,或阵列亦可编程 (B) 与阵列可编程,或阵列固定 (C) 与阵列固定,或阵列可编程 注:PAL 与可编程 ,或固定 PROM 与固定 ,或可编程4. 一位二进制数A 为被减数,B 为减数,则(A-B )为 ( B ) (A) A B ⊕ (B) AB (C) AB AB +5.某RAM 有10根字线,4根位线,其容量为 ( B ) (A) 104⨯ (B) 1024⨯ (C) 4102⨯ 注:2=⨯字线容量位线6.T 触发器的状态方程是 ( B ) (A) 1nn n QT Q +=⊕ (B) 1n n n Q T Q +=⊕ (C) 1n n Q T +=7. ()F A B C A =⊕⊕+的最简表达式是 ( B ) (A) F A = (B) F A BC BC =++ (C) F A B C =++ 8.能实现F A B =⊕的电路是 ( C )(A)(B)(C)1注:9.实现100个变量相异或需要异或门的个数为 ( A ) (A)99个 (B)100个 (C)51个10.对n 个变量,最小项的个数为 ( C ) (A) n (B) 21n - (C) 2n 二、 根据题意画出波形 (30分)1.ABAB(C)217CP1Y2Y OC 门 集电极开路门实现“线与”功能三态门 有使能端(B)2.三、分析 (30分)1 已知CT54LS195电路功能表为试说明下图所示电路是多少进制计数器?并画出状态转换表。

QACP 令Q 起始状态为零1【参考答案】J 端对应3Q ,K 对应3Q 。

基于Verilog的任意模长可加减计数器设计

基于Verilog的任意模长可加减计数器设计

基于Verilog 的任意模长可加减计数器设计一、设计要求计数器是一种在时钟的触发下,完成计数功能的时序逻辑电路,输出结果由输入时钟和计数器上一状态的计数共同决定。

本设计要求实现的计数器,具有以下功能:(1)要求实现计数器工作状态的控制;(2)要求实现计数器的异步清零功能;(3)要求实现计数器递增和递减的功能;(4)要求实现计数器的计数范围(模长)任意改变;二、设计思路计数器工作状态的控制,可以设计一个使能端,在外部时钟的触发下,只有当使能端信号有效(高电平),才启动计数器的计数功能(递增或递减),否则计数器输出结果不变。

计数器的异步清零功能,可以设计一个外部输入的清零端,在外部输入信号有效(低电平)的情况下,直接清零计数器,不用等待下一个外部时钟的触发,即计数器的清零是异步的。

计数器计数方向的控制,设计一个加减可控的信号端口,在时钟的触发、异步清零无效以及计数器使能端有效的情况下,该输入端为高电平则计数器完成递增功能,低电平则完成递减功能。

实现计数器的任意模长,即进入下一个计数周期,其计数的最大值可以发生变化。

设计一个4位(最大模长为16)的输入端口,可以在当前计数周期结束,即计数器产生一个溢出信号的同时,判断该端口输入的信号是否发生变化,通过相邻两个计数周期的端口数据作异或运算,结果为高电平则代表模长发生变化,即进入的下一个计数周期,其计数最大值要发生变化。

三、程序设计本次设计使用的是Quartus 11.0开发环境,该软件没有自带仿真功能(9.0版本以后都没自带),需要使用第三方的Modelsim软件,故本设计的程序包括计数器的Verilog设计以及仿真测试需要的testbench激励文件两部分。

计数器的Verilog设计:module Prj(clk,rst_input,en,add_sub,data_input,full,data_output);input clk; // 外部时钟input rst_input; // 外部清零(异步)input en; // 计数使能input add_sub; // 计数方向input [3:0] data_input; // 计数器模长输入output reg full; // 计完当前模长output [3:0] data_output; // 计数器输出reg [3:0] current_counter;// 当前计数值(输出)reg update_length_en; // 改变模长的使能信号// 当前计数周期与上个计数周期的模长输入reg [3:0] current_clk_data_input,last_clk_data_in put;reg [3:0] counter_length; // 下个计数周期的模长reg [1:0] k;always @(posedge clk,negedge rst_input) beginif(!rst_input) // 异步清零beginfull=0;current_counter=0;endelse if(en) // 计数使能beginif(add_sub) // 加法器beginif(current_counter<(counter_length-1))begincurrent_counter=current_counter+1;full=0;endelse// 加法器计数完产生full脉冲以触发// 判断下个计数周期的模长是否变化begincurrent_counter=0;full=1; //full输出endendelse // 减法器beginif(current_counter>0)begincurrent_counter=current_counter-1;full=0;endelse // 减法器计数完begincurrent_counter=counter_length-1;full=1;endendendend//驱动当前计数输出assign data_output=current_counter;initialbegink=1; // k=1 表示启动计数器的第一个计数周期endalways @(posedge full) // 加法器/减法器完成当前周期计数// 计完当前周期(即full有效)才更新beginlast_clk_data_input<=data_input; // 上个周期的模长current_clk_data_input=data_input;//当前周期的模长update_length_en<=last_clk_data_input^current_clk_data_input;// update_length_en为更新计数器模长的使能端,// 异或运算使能端为0代表模长变化 1不变k=k+1; // k的初值为1,k变化说明计数模长更改过了if(k==2'd3)k=2;endalways @(posedge clk)beginif(update_length_en) // 使能有效计数模长变化counter_length=current_clk_data_input;elsebeginif(k>=2)// 下个周期计数器模长不变(保持上次更改的)counter_length=last_clk_data_input;if(k==1)// 整个计数器系统,最初的模长(一次没更改过)counter_length=data_input;endendendmodule测试激励文件testbench:`timescale 1 ps/ 1 psmodule Prj_vlg_tst();reg add_sub;reg clk;reg [3:0] data_input;reg en;reg rst_input;wire [3:0] data_output;wire full;Prj i1 (.add_sub(add_sub),.clk(clk),.data_input(data_input),.data_output(data_output),.en(en),.full(full),.rst_input(rst_input));parameter clk_period=10; // 时钟周期initial // 初始化使能端、清零端和时钟信号beginen=1;rst_input=1;clk=1;#(46*clk_period) en=0;#(3*clk_period) en=1;#(4*clk_period) rst_input=0;#(2*clk_period) rst_input=1;endalways #(clk_period/2) clk=~clk;initialbegin// 计数器模长分别为6 4 5 3// 左边为上一模长持续的时钟个数data_input=4'b0110;#(22*clk_period) data_input=4'b0100;#(12*clk_period) data_input=4'b0101;#(12*clk_period) data_input=4'b0011;#(5*clk_period);endinitialbegin// 计数器计数方向的改变// 左边为递增递减持续的时钟个数add_sub=1;#(9*clk_period) add_sub=0;#(10*clk_period) add_sub=1;#(13*clk_period) add_sub=0;#(4*clk_period) add_sub=1;endendmodule四、仿真结果如图1所示,最开始计数器输入的模长data_input为6,在计数方向控制端add_sub为高电平的情况下,可以从0计数到5,在add_sub为低电平的情况下,可以实现计数器的递减;当计数器模长data_input变为4的时候,先计完当前周期的模长(0到5),才开始模长为4的计数(0到3)。

一种音乐播放控制电路的设计

一种音乐播放控制电路的设计

一种音乐播放控制电路的设计作者:刘玉英来源:《现代电子技术》2010年第17期摘要:简谱是一种比较简单易学的音乐记谱法,数字简谱用不同的点和线段配合八个阿拉伯数字0~7构成音符,记录并表示千变万化的音乐曲子及其基本音乐元素。

通过音乐播放控制电路的设计实例,比较详细地说明音乐播放控制电路在数字逻辑电路的实践应用。

通过该设计介绍用频率信号驱动蜂鸣器演奏电子音乐的原理,使读者掌握模可变计数器的设计方法以及只读存储器(ROM)的应用。

关键词:简谱; 模可变计数器; 只读存储器; 音乐播放控制电路中图分类号:TN710-33文献标识码:A文章编号:1004-373X(2010)17-0205-03Design of Control Circuit for Music BroadcastingLIU Yu-ying(School of Information Science, Donghua University, Shanghai 200051, China)Abstract: The numbered musical notation is a simple music notation. It consists of different points and line segments cooperating with Arabic numerals 0~7, and records and expresses ever changing musics and its basic elements. By the design instance of a music broadcasting control circuit, the actual application of the music broadcasting control circuit in the digital logic circuit is explainedbuzzer is presented to make readers to master the design mothod of the mode variable counter and the usage of the read-only-memory(ROM).Keywords: numbered musical notation; mode variable counter; read-only-memory(ROM); control circuit for music broadcasting收稿日期:2010-05-19随着电子技术发展,电子电路的形式趋向复杂化,面对这一状况,人们已经清醒地认识到,要分析和设计复杂的电子系统人工的方法已不适用。

基于FPGA的模可变16进制加法器的设计

基于FPGA的模可变16进制加法器的设计

课程设计任务书学生姓名:兰翔专业班级:电子科学与技术2班指导教师:葛华工作单位:信息工程学院题目:模可变16位加法计数器设计初始条件:QuartusII6.0,微机要求完成的主要任务:深入学习Verilog HDL语言与FPGA理论知识。

利用QuartusII强大的硬件语言处理功能,数字电路仿真功能以及波形处理功能,实现模可变16位加法计数器设计。

1.利用Verilog HDL语言描述计数器功能;2.用QuartusII对Verilog HDL语言进行仿真;3. 撰写《EDA技术应用实践》课程设计说明书。

时间安排:学习Verilog HDL语言的概况第1天学习Verilog HDL语言的基本知识第2、3天学习QuartusII的应用环境,仿真功能。

第4、5天课程设计第6-9天答辩第10天指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)A BSTRACT.......................................................... I I1.设计任务 (1)1.1初始条件 (1)1.2课题要求 (1)1.3设计要求 (1)2.Q UARTUS II简介 (2)3.课题内容 (3)3.1 总体框图 (3)3.2 各部分功能 (3)3.2.1按键触发 (3)3.2.2 LED显示部分 (5)3.2.3计数部分 (6)4.心得体会 (8)参考文献 (9)附录一V ERILOG HDL原程序 (10)附录二总原理图 (15)摘要FPGA(Field Programmable Gate Array)即“现场可编程门阵列”是应着当代微电子技术迅猛发展而产生的一种技术,到现在为止,已经存在了27年。

由于其电路执行速度快、上市时间短、成本低廉、可靠性高、易于维护升级而被人们所青睐,目前已经广泛用于通信、信号处理、嵌入式处理器、图形处理和工业控制的领域。

本次课设就是在Altera公司的FPGA设计平台QuartusII上进行的计数器设计。

时序逻辑电路习题解答

时序逻辑电路习题解答

5-1 分析图所示时序电路的逻辑功能,写出电路的驱动方程、状态方程和输出方程,画出电路的状态转换图和时序图。

CLKZ图 题 5-1图解:从给定的电路图写出驱动方程为:00121021()n n nn n D Q Q Q D Q D Q ⎧=⎪⎪=⎨⎪=⎪⎩将驱动方程代入D 触发器的特征方程D Qn =+1,得到状态方程为:10012110121()n n n n n n n n Q Q Q Q Q Q Q Q +++⎧=⎪⎪=⎨⎪=⎪⎩由电路图可知,输出方程为2nZ Q =根据状态方程和输出方程,画出的状态转换图如图题解5-1(a )所示,时序图如图题解5-1(b )所示。

题解5-1(a )状态转换图1Q 2/Q ZQ题解5-1(b )时序图综上分析可知,该电路是一个四进制计数器。

5-2 分析图所示电路的逻辑功能,写出电路的驱动方程、状态方程和输出方程,画出电路的状态转换图。

A 为输入变量。

YA图 题 5-2图解:首先从电路图写出驱动方程为:()0110101()n n n n nD AQ D A Q Q A Q Q ⎧=⎪⎨==+⎪⎩将上式代入触发器的特征方程后得到状态方程()101110101()n n n n n n nQ AQ Q A Q Q A Q Q ++⎧=⎪⎨==+⎪⎩电路的输出方程为:01n nY AQ Q =根据状态方程和输出方程,画出的状态转换图如图题解5-2所示YA题解5-2 状态转换图综上分析可知该电路的逻辑功能为:当输入为0时,无论电路初态为何,次态均为状态“00”,即均复位;当输入为1时,无论电路初态为何,在若干CLK 的作用下,电路最终回到状态“10”。

5-3 已知同步时序电路如图(a)所示,其输入波形如图 (b)所示。

试写出电路的驱动方程、状态方程和输出方程,画出电路的状态转换图和时序图,并说明该电路的功能。

X(a) 电路图1234CLK5678X(b)输入波形 图 题 5-3图解:电路的驱动方程、状态方程和输出方程分别为:00101100011011011, ,n n n n n n n n n nJ X K X J XQ K XQ X Q XQ XQ XQ Q XQ XQ XQ Y XQ ++⎧==⎪⎨==⎪⎩⎧=+=⎪⎨⎪=+=+⎩= 根据状态方程和输出方程,可分别做出1110,n n Q Q ++和Y 的卡诺图,如表5-1所示。

vhdl课程设计设计模为 4、8、12、16的可变计数器实验报告总结

vhdl课程设计设计模为 4、8、12、16的可变计数器实验报告总结

VHDL课程设计 - 可变计数器实验报告总结
一、设计概述
本课程设计的主要目标是设计并实现一个可变计数器,其模(Modulo)值可以在4、8、12、16之间进行选择。

计数器采用VHDL编程语言进行描述,并在FPGA开发板上进行测试验证。

二、设计实现
1. 硬件平台:我们选择了Xilinx的FPGA开发板作为硬件平台,它具有丰富的I/O资源和足够的逻辑单元,可以满足我们的设计需求。

2. VHDL编程:我们采用VHDL语言进行编程,实现了模4、模8、模12和模16的可变计数器。

通过选择不同的计数模式,计数器的模值可以在4、8、12、16之间进行切换。

3. 测试与验证:为了验证计数器的功能,我们编写了测试平台,并通过仿真和实际硬件测试对计数器进行了全面的测试。

三、实验结果与分析
1. 实验结果:通过仿真和实际硬件测试,我们验证了计数器的
功能正确性。

在不同的模值下,计数器都能正确地进行计数操作,并且在达到模值后能正确地回绕到0。

2. 结果分析:实验结果表明,我们的VHDL编程和FPGA开发技能得到了很好的应用和提升。

同时,通过这次课程设计,我们更深入地理解了可变计数器的设计和实现原理,提高了我们的硬件设计能力。

四、总结与展望
本次课程设计让我们深入了解了VHDL编程语言和FPGA开发技术,提高了我们的硬件设计能力。

通过实际的设计和测试,我们成功地实现了一个可变模值的计数器,达到了课程设计的要求。

在未来的学习和工作中,我们将继续深入学习FPGA设计和VHDL编程,不断提高自己的硬件设计能力。

同时,我们也期待将这种技术应用于更多的实际项目中,为工程实践做出贡献。

数字逻辑电路实验_东南大学中国大学mooc课后章节答案期末考试题库2023年

数字逻辑电路实验_东南大学中国大学mooc课后章节答案期末考试题库2023年

数字逻辑电路实验_东南大学中国大学mooc课后章节答案期末考试题库2023年1.下面四个选项,哪些能实现如下的功能表?【图片】参考答案:__2.中规模组合逻辑电路实验中要注意一些问题,以下说法正确的是:参考答案:两个4选1数据选择器加一个或门可以扩展成一个8选1数据选择器;_输入端要注意高低位顺序;_控制端不能悬空,必须接有效的高电平或者低电平;3.下面关于双D触发器7474的描述有哪些是正确的参考答案:清零端R是异步工作的,当R=‘0’的时候,触发器清零;_时钟端CLK是上升沿触发的;_每个触发器有两个输出端,其中一个是原变量输出,另一个是反变量输出;4.下面关于计数器74161的说法哪些是正确的:参考答案:清零端CLR是异步工作的,当CLR=‘0’的时候,计数器清零;_当计数器使能端ENT和ENP都为’0’时,计数器保持当前的计数值不变;_只有当计数器记到“1111”的时候,计数器进位输出端RCO输出‘1‘,其他时候输出‘0’;5.下面三个电路分别是什么模的计数器?【图片】参考答案:模6、模5、模6;6.下面关于广告流水灯实验的说法哪些是正确的:参考答案:触发器时钟端接单脉冲按钮,可以帮助我们单步调试计数器功能;_将触发器的输出Q接到译码器74138的地址端A,其中Q2-->A2,Q1-->A1,Q0-->A0,不可接反;_如果广告流水灯的8个灯全亮,且74138供电正常,则需要检查74138的6脚是否接‘1’,5脚和4脚是否接‘0’;7.下面关于序列发生器实验的说法哪些是正确的:参考答案:序列的长度决定了计数器的模值;_1个74161+1个3-8译码器,配合适量的与非门,可以实现多个长度相同的序列发生器;8.使用可编程逻辑器件设计电路的步骤:1编译;2输入原理图; 3下载;4仿真验证结果;5创建新工程参考答案:5-2-1-4-39.下面关于可编程数字逻辑器件说法正确的是:参考答案:内部预置了大量易于实现各种逻辑函数的结构;_利用软件工具来进行设计;_有保持信息或控制连接的特殊结构;_是一种大规模的集成电路;10.下面有关仿真说法正确的是:参考答案:功能仿真速度快,适合于复杂大系统的初步功能检查:_时序仿真速度比较慢;_功能仿真主要是检查逻辑功能是否正确,不考虑任何延迟信息;_时序仿真是利用在布局布线中获得的精确延时参数进行的精确仿真;11.下图仿真波形正确的说法:【图片】参考答案:Q3能够实现对输入CLK的10分频_这是一个模10计数器;12.下面关于多方向交通灯主控制器设计说法正确的是:参考答案:不同状态下,根据外部输入条件,控制相应的计数器计数或者保持;_根据状态图列出状态表、写出表达式,画出原理图;_最简由四个状态实现;13.关于多方向交通灯主干道计时器下面说法正确的是:参考答案:是可变模倒计数器;_使能端信号由控制单元产生;_高低位分别由一个4位二进制计数器组成;14.数字系统模块划分下面说法正确的是:参考答案:分控制单元和数据处理单元;_控制单元决定数据处理单元执行的顺序;_数据处理单元通常可以分成多个子系统,每个子系统实现一个指定的逻辑功能;_数据处理单元负责执行数据处理的操作;15.数字系统的设计方法主要有以下几种:参考答案:自顶向下为主,自底向上为辅的方法;_自底向上法;_自顶向下法;16.多方向交通灯系统中,根据系统框图,下面说法正确的是:参考答案:该系统有3个输入信号;17.对数字TTL器件,电源电压要求正确的是:参考答案:VCC=5V, GND=0V18.对74HC系列器件,当工作电源是5V时,下列说法正确的是:参考答案:Vihmin约3.5V19.示波器测量脉冲信号时,方法错误的是:参考答案:测量高频脉冲信号的上升时间,示波器探头开关在*1和*10两档测量结果相同20.有关面包板说法正确的是:参考答案:窄条面包板,横向一组5个孔相通;_宽条面包板,纵向一组5个孔相通;21.数字电路静态验证故障排除中,下列说法错误的是:参考答案:电路出现故障时,最好的办法是拆掉电路重新搭接一遍;22.可以使用的故障排除方法有:参考答案:从前往后查;_从后往前查;23.对初学者,在面包板上搭接数字电路,要注意避免以下问题:参考答案:芯片插反了;_芯片选型错误;_引脚号数错了;_导线及芯片未插到面包板底部;24.一位8421BCD码与4位二进制数的说法正确的是:参考答案:一位8421BCD码仅有0-9十种状态,后6种状态不用考虑,可以做任意输出;_4位二进制数有0-15 共计16种状态;25.下图中输入和输出的对应关系正确的是:【图片】参考答案:输出不确定。

FANUC系统PMC的功能指令

FANUC系统PMC的功能指令

FANUC 系统PMC 的功能指令1.1.1 顺序程序结束指令FANUC-0i 系统的PMC 程序结束指令有第1级程序结束指令END1、第2级程序结束指令END2和程序结束指令END 三种,其指令格式如图1-1所示。

SUB64END SUB1END1SUB2END2图1-1 程序结束功能指令格式a )第 1 级程序结束b )第 2 级程序结束c )程序结束....a )b )c )1. 第1级程序结束指令END1第1级程序结束指令END1每隔8ms 读取的程序,主要处理系统急停、超程、进给暂停等紧急动作。

因为第1级程序过长将会延长PMC 整个扫描周期,所以第1级程序不宜过长。

如果不使用第1级程序时,必须在PMC 程序开头指定END1,否则PMC 无法正常运行。

2. 第2级程序结束指令END2第2级程序用来编写普通的顺序程序,如系统就绪、运行方式切换、手动进给、手轮进给、自动运行、辅助功能(M 、S 、T 功能)控制、调用子程序及信息显示控制等顺序程序。

通常第2级的步数较多,在一8ms 个内不能全部处理完(每个8ms 内都包括第1级程序),所以在每个8ms 中顺序执行第2级的一部分,直至执行第2级的终了(读取END2)。

在第2级程序中,因为有同步输入信号存储器,所以输入脉冲信号的信号宽度应大于PMC 的扫描周期,否则顺序程序会出现误动作。

3. 程序结束指令END将重复执行的处理和模式化的程序作为子程序登录,然后用CALL 或CALLU 命令由第2级程序调用。

包含子程序PMC 的梯形图的最后必须用END 指令结束。

图1-2为某一数控立式加工中心应用PMC 程序结束指令的具体例子。

..)(X1008.4R800.0*ESP.M F1.7MA X56.0CALL K9.1.X60.1 X1003.0系统急停....G8.4SUB64END SUB2END2图1-2 PMC 程序结束指令的应用.F0.6F45.0*ESP ALM.A .)(G71.1SA*ESPA *LOT垂直轴(Z 轴).)(Y1002.0*SPPB )(G8.5*SP)(R800.0*LOT. X1003.2. X1003.4. X1003.1. X1003.3.X1003.5*+XOT *+YOT *+ZOT *-XOT *-YOT *-ZOT SUB1END1MLK.M X1006.6)(G44.1MLKSUB65CALL ATCPCAP100R800.0)(A0.0……SUB71SP ATCPCAP100SUB72SPE …制动线圈.主轴急停.进给保持.机床超程.机床锁住.1000.机床超程报警.换刀子程序.(PMC 轴控制).....1.1.2 定时器指令1. 可变定时器(TMR )TMR 指令的定时时间可通过PMC 参数进行更改,指令格式和工作原理如图1-3所示。

时序逻辑电路习题解答

时序逻辑电路习题解答

5-1分析图所示时序电路的逻辑功能,写出电路的驱动方程、状态方程和输出方程, 画出电路的状态转换图和时序图。

解:从给定的电路图写出驱动方程为:D o (Q 0Q i n)e Q 2D i Q 01D 2 Q i nQ 01 1(Q 0Q n)eQ ;Q i n 1Q 0Q 21Q ;由电路图可知,输出方程为Z Q ;CLK将驱动方程代入D 触发器的特征方程Q n 1D ,得到状态方程为:5-1(a )所示,时序图如图题解Z图题5-1图根据状态方程和输出方程,画出的状态转换图如图题解题解5-1(a )状态转换图综上分析可知,该电路是一个四进制计数器。

5-2分析图所示电路的逻辑功能,写出电路的驱动方程、状态方程和输出方程,画出电路的状态转换图。

A 为输入变量。

解:首先从电路图写出驱动方程为:D o A& D i A Qg :A (Q : Q i n)将上式代入触发器的特征方程后得到状态方程Q 0 1AQ :Q :1 AQ 0Q :A (Q nQ :)电路的输出方程为:CLKQ i12345——-A1 11 t----------- 1------------ 1|| 1 » 1 1 1----------- 1 ---------- 1 --------------►CLK0 Q 2/Z 仝题解5-1(b )时序图0 Q o 胃AY图题5-2图丫AQoQ;根据状态方程和输出方程,画出的状态转换图如图题解5-2 所示综上分析可知该电路的逻辑功能为:当输入为0时,无论电路初态为何,次态均为状态" 00”,即均复位;当输入为1时,无论电路初态为何,在若干CLK 的作用下,电路最终回到状态“10”。

5-3已知同步时序电路如图(a )所示,其输入波形如图 (b )所示。

试写出电路的驱动方 程、状态方程和输出方程,画出电路的状态转换图和时序图,并说明该电路的功能。

CLK 1 2345678(b )输入波形 图题5-3图解:电路的驱动方程、状态方程和输出方程分别为:J 。

5章时序逻辑电路复习题

5章时序逻辑电路复习题

时序逻辑电路一、选择题:1、相同计数器的异步计数器和同步计数器相比,一般情况下( )A. 驱动方程简单B. 使用触发器个数少C. 工作速度快D. 以上都不对2、n级触发器构成的环形计数器,其有效循环的状态数是( )A. n个B. 2个C. 4个D. 6个3、下图所示波形是一个( C )进制加法计数器的波形图。

试问它有( A )个无效状态。

A .2; B. 4 ; C. 6; D. 12CPQ1Q2Q34、设计计数器时应选用()。

A.边沿触发器 B.基本触发器C.同步触发器 D.施密特触发器5、一块7490十进制计数器中,它含有的触发器个数是( )A. 4B. 2C. 1D. 66、n级触发器构成的扭环形计数器,其有效循环的状态数是( )A. 2n个B. n个C. 4个D. 6个7、时序逻辑电路中一定包含()A.触发器B.组合逻辑电路C.移位寄存器D.译码器8、用n个触发器构成计数器,可得到的最大计数长度为()A. 2n C.2n D.n9、有一个移位寄存器,高位在左,低位在右,欲将存放在其中的二进制数乘上(4)10,则应将该寄存器中的数()A.右移二位B.左移一位C. 右移二位D.左移一位10、某时序逻辑电路的状态转换图如下,若输入序列X=1001时,设起始状态为S1,则输出序列Z=()X/Z 0/11/0 S1 S2 0/01/1A. 0101 .1011 C11、、一位8421BCD码计数器至少需要()个触发器A. 4B. 3C.512、利用中规模集成计数器构成任意进制计数器的方法有( ABC )A.复位法 B .预置数法 C .级联复位法 13、在移位寄存器中采用并行输出比串行输出 ( )。

A.快B.慢C.一样快D.不确定14、用触发器设计一个24进制的计数器,至少需要( )个触发器。

A. 5 .4 C D. 315、在下列逻辑电路中,不是组合逻辑电路的有( )。

A. 寄存器B.编码器C.全加器D. 译码器 16、一个 4 位移位寄存器可以构成最长计数器的长度是( )。

南昌大学EDA实验报告完整版

南昌大学EDA实验报告完整版

EDA实验报告姓名:曾维鋆学号:6102213863老师:杨鼎成班级:通信工程132班目录实验一半加器及全加器的设计 (3)实验二模可变计数器的设计 (6)实验三序列信号检测器的设计 (11)实验四交通灯控制器设计 (15)实验五多功能数字钟设计 (22)实验六出租车计费器的设计 (34)实验七16*16 点阵显示实验 (40)南昌大学实验报告学生姓名:曾维鋆学号:61002213863 专业班级:通信132班实验类型:□验证□综合█设计□创新实验日期:2015.10.19 实验成绩:实验一半加器及全加器的设计(一)实验目的1、熟悉实验装置和QuartusⅡ软件的使用;2、熟悉和掌握EDA设计流程;3、学习简单组合、时序电路的EDA设计;4、熟悉例化语句的应用。

(二)实验内容设计一个一位全加器。

先设计一个半加器h_adder.v作为预存文件。

然后设计顶层文件对h_adder.v文件进行调用,实现全加器的功能。

(三)实验原理由3个逻辑模块组成,其中两个为半加器,一个是或门。

真值表(四)实验步骤1.建立工作库文件夹,输入半加器和全加器的Verilog HDL代码并分别存盘。

a.半加器module h_adder(A,B,SO,CO);input A,B;3output SO,CO;assign SO=A^B;assign CO=A&B;endmoduleb.全加器module f_adder(ain,bin,cin,cout,sum);output cout,sum;input ain,bin,cin;wire net1,net2,net3;h_adder U1(ain,bin,net1,net2);h_adder U2(.A(net1),.SO(sum),.B(cin),.CO(net3));or U3(cout,net2,net3);endmodule2.选目标器件CycloneII中的EP2C35F672C8并编译。

模可控计数器的设计

模可控计数器的设计

模可控计数器的设计-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
杭州电子科技大学
实验报告
实验课程名称EDA技术
实验序号3
实验内容模可控计数器的设计班级
姓名张学涌
学号
指导教师黄继业
二○一一年十一月十日
实验目的与要求
实验目的:进一步学习quartus的文本设计,仿真,测试,以及硬件下载测试;
实验名称:模可控计数器的设计
实验原理
可用并行预置的加法器实现;将计数进位与预置数加载输入信号端或计数复位端相接,当计数值溢出时,在下一时钟预置的值加载进计数器,然后计数器再从这个预置数重新计数,从而实现模可控的计数器;
实验内容
模可控计数器的文本编辑如图:
仿真后的波形图为:
由图可以知道,几乎没有毛刺。

这是一个8位的计数器,预置数为F1,当计数到FF的时候,出现溢出,同一时刻LD(keep属性)变成1,。

到下一时刻的时候,计数器加载预置数,即F1,同一时刻PM变成1,然后计数器再从F1 重新计数,直到FF时又重新加载;
仿真后的RTL图为:
资源利用情况:
由图可以看到资源利用得非常少;
总结与体会
通过模可控器的设计,我懂得如何设计计数器的思路和原理,收获很深刻!。

模可变计数器

模可变计数器

南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合 设计□创新实验日期:实验成绩:实验二模可变计数器的设计一、实验目的1、进一步加强经典状态机的设计2、学会设计模可变计数器二、实验要求1、设计一个模可变计数器,当M=0时实现模23计数,当M=1时实现模109计数2、计数结果用七段数码管显示3、对设计电路进行时序仿真三、设计过程1,模可变计数器原理:即在原有的模值计数器上加入模值转换功能2,计数器的数码管显示需注意十位和百位的进位即:当个位数的数值为9的下一个脉冲来时转换为,同时向十位进一,转换的算法为:9(1001)+7(0111)=0(0000),并进一位;当数值为99时,用同样的方法转换:153(1001 1001B,数码管显示99)+103(01100111B)=100(0001 0000 0000);四、实验步骤1、顶层文件的设计顶层原理图设计可以依据实验原理和需求设定,由时钟分频模块,数码管显示模块和模可变计数模块(CLKDIV,SCAN_LED,COUNTER)三部分组成。

2,各模块设计文件①CLKDIV:L IBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLKDIV ISPORT(CLK : IN STD_LOGIC;CLK_DIV : OUT STD_LOGIC);END CLKDIV;ARCHITECTURE RT1 OF CLKDIV ISSIGNAL DA TA:INTEGER RANGE 0 TO 100;SIGNAL CLK_TEMP:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF RISING_EDGE(CLK) THENIF(DA TA=100) THENDA TA<=0;CLK_TEMP<=NOT CLK_TEMP;ELSEDA TA<=DA TA+1;END IF;END IF;CLK_DIV<=CLK_TEMP;END PROCESS;END RT1②COUNTERLIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count ISPORT (CLK,RST,EN,M : IN STD_LOGIC;CQ1,CQ2,CQ3 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ;COUT : OUT STD_LOGIC ) ;END ENTITY count;ARCHITECTURE one OF count ISSIGNAL model : INTEGER;BEGINPROCESS (CLK,RST,EN,M,model)V ARIABLE CQI : STD_LOGIC_VECTOR (11 DOWNTO 0) ;BEGINIF M = '0' THEN model <= 34;ELSIF M = '1' THEN model <= 264;ELSE model <= 0;END IF;IF RST = '1' THEN CQI := (OTHERS => '0');ELSIF CLK'EVENT AND CLK = '1' THENIF EN = '1' THENIF CQI < model THENIF CQI(7 DOWNTO 0) = 153 THEN CQI := CQI + 103 ;ELSIF CQI(3 DOWNTO 0) = 9 THEN CQI := CQI + 7 ;ELSE CQI := CQI + 1 ;END IF;ELSE CQI := (OTHERS => '0') ;END IF;END IF;END IF;IF CQI = model THEN COUT <= '1';ELSE COUT <= '0';END IF;CQ1 <= CQI(3 DOWNTO 0);CQ2 <= CQI(7 DOWNTO 4);CQ3 <= CQI(11 DOWNTO 8);END PROCESS;END ARCHITECTURE one;③SCAN_LEDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan_led ISPORT(clk : IN STD_LOGIC;data1,data2,data3: IN STD_LOGIC_VECTOR(3 DOWNTO 0);scan : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);choose: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END ENTITY;ARCHITECTURE one OF scan_led ISSIGNAL cout8:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINP1:PROCESS(cout8)BEGINCASE cout8 ISWHEN "000" => choose <= "000"; A <= "0000";WHEN "001" => choose <= "001"; A <= "0000";WHEN "010" => choose <= "010"; A <= "0000";WHEN "011" => choose <= "011"; A <= "0000";WHEN "100" => choose <= "100"; A <= "0000";WHEN "101" => choose <= "101"; A <= data3;WHEN "110" => choose <= "110"; A <= data2;WHEN "111" => choose <= "111"; A <= data1;WHEN OTHERS => NULL;END CASE;END PROCESS P1;P2:PROCESS(clk)BEGINIF clk'EVENT AND clk ='1' THEN cout8 <= cout8+1;END IF;END PROCESS P2;P3:PROCESS(A)BEGINCASE A ISWHEN "0000"=> scan <="0111111"; --0WHEN "0001"=> scan <="0000110"; --1WHEN "0010"=> scan <="1011011"; --2WHEN "0011"=> scan <="1001111"; --3WHEN "0100"=> scan <="1100110"; --4WHEN "0101"=> scan <="1101101"; --5WHEN "0110"=> scan <="1111101"; --6WHEN "0111"=> scan <="0000111"; --7WHEN "1000"=> scan <="1111111"; --8WHEN "1001"=> scan <="1101111"; --9WHEN "1010"=> scan <="1110111"; --AWHEN "1011"=> scan <="1111100"; --BWHEN "1100"=> scan <="0111001"; --CWHEN "1101"=> scan <="1011110"; --DWHEN "1110"=> scan <="1111001"; --EWHEN "1111"=> scan <="1110001"; --FWHEN OTHERS=> NULL;END CASE;END PROCESS P3;END;3、编译1)输入完程序之后逐个编译2)逐个编译无错之后进行全程编译4、将以上模块生成元器件时钟分频模块模可变计数模块数码管显示模块 5,将以上各器件连接成实验原理图6、系统仿真1)建立新的波形激励文件2)在波形编辑器窗口添加节点3)通过Edit->End Time 来设定仿真结束时间4)在CLOCK窗口中设置clk的时钟周期为100s5)点击save保存6) 通过Tools下的Simulator Tools项进行仿真,然后观察输出波形。

EDA实验报告实验二:模可变计数器的实验报告

EDA实验报告实验二:模可变计数器的实验报告

Nb大学实验报告学生姓名:EDA教父学号:61xxxx099 专业班级:通信101实验类型:□验证□综合□设计□创新实验日期:2012-10-8 实验成绩:实验二模可变计数器的设计一实验要求利用控制位M来改变模长要求M=1时模为114计数,M=0时模为16计数;二实验步骤1.建立工作库文件夹,输入计数器的VHDL代码并存盘。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count ISPORT(CLK,M,EN,RST:IN STD_LOGIC;sel0,sel1,sel2:buffer STD_LOGIC;SG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);CLK1:buffer STD_LOGIC;GW,SW,BW: buffer STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC;SEL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END count;ARCHITECTURE behav OF count ISSIGNAL CNT : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL J : STD_LOGIC_VECTOR(11 DOWNTO 0);SIGNAL CNT8: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MODEL : STD_LOGIC_VECTOR(11 DOWNTO 0);BEGINP1:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THEN CNT<=CNT+1;IF CNT=130 THEN CLK1<='1';ELSE CLK1<='0';END IF;END IF;END PROCESS;P2:PROCESS(EN,RST,M,CLK1)BEGINCASE M ISWHEN '0'=>MODEL<="000000010101";WHEN '1'=>MODEL<="000100010011";END CASE;GW<=J(3 downto 0); SW<=J(7 downto 4);BW<=J(11 downto 8);IF RST='1' THEN J<=(others=>'0');ELSIF CLK1'EVENT AND CLK1='1' THENIF EN='1' THENIF J<MODEL THENIF GW=9 THENJ<=J+7;IF SW=9 THENJ<=J+103;END IF;ELSE J<=J+1;END IF;ELSE J<=(others=>'0');END IF;END IF;END IF;END PROCESS;P3:PROCESS( CLK)BEGIN IF CLK'EVENT AND CLK='1' THENIF CNT8<"010" THEN CNT8 <=CNT8+1;ELSE CNT8<=(OTHERS=>'0');END IF;END IF;SEL(0)<=sel0 ;SEL(1)<=sel1 ;SEL(2)<=sel2 ;CASE CNT8 ISWHEN "000" => sel2<='0';sel1<='1';sel0<='0';A<=GW;WHEN "001" => sel2<='0';sel1<='0';sel0<='1';A<=SW;WHEN "010" => sel2<='0';sel1<='0';sel0<='0';A<=BW;WHEN OTHERS =>NULL;END CASE;END PROCESS ;P4:PROCESS(A)BEGINCASE A ISWHEN "0000" =>SG<="00111111"; WHEN "0001" =>SG<="00000110";WHEN "0010" =>SG<="01011011"; WHEN "0011" =>SG<="01001111";WHEN "0100" =>SG<="01100110"; WHEN "0101" =>SG<="01101101";WHEN "0110" =>SG<="01111101"; WHEN "0111" =>SG<="00000111";WHEN "1000" =>SG<="01111111"; WHEN "1001" =>SG<="01101111";WHEN OTHERS=>NULL;END CASE;END PROCESS;COUT <='1' WHEN J =MODEL ELSE '0';END behav;2.选目标器件CycloneII中的EP2C35F672C8并编译。

模3计数器

模3计数器

设计一个模4计数器libraryieee;use ieee.std-logic-1164.all;useieee.std-logic-unsigned.all;entity counter4 isport(clk,reset,en:instd-logic;qa,qb:outstd-logic);end counter4;architecture behavior of counter4 is signalcount:std-logic-vector(1 downto 0); beginprocess(reset,clk)beginif reset='1'thencount(1 downto 0)<="00";elseif(clk 'event and clk='1')thenif(en='1')thenif(count="11")thencount<="00";elsecount<=count+1;end if;end if;end if;end if;end process;qa<=count(0);qb<=count(1);end behavior;任意模数的计数器与模4计数器的描述结构完全相同,所不同的仅仅是计数器的状态数。

上面的程序经编译、时序模拟后,在MAX+PLUS II可得到如图2所示的仿真波形。

4.2 完整的电路及波形仿真将COUNTER3、异或门和D触发器通过图3所示的电路逻辑连接关系,并用原理图输入方式调入图形编辑器,然后经逻辑综合即可得到如图4所示的仿真波形。

由图中outclk与inclk的波形可以看出,outclk会在inclk每隔2.5个周期处产生一个上升沿,从而实现分频系数为2.5的分频器。

设inclk为50MHz,则outclk为20MHz。

零件计数器SMD

零件计数器SMD

零件计数器SMD简介SMD(Surface Mount Device)是表面贴装技术的缩写,也叫贴片式元件,通俗来说,就是将电子元器件的焊脚嵌入有铅锡焊膏的贴片上,然后再利用高温熔接的方式,让焊脚与主板上的焊点连成整体。

SMD元件广泛应用于电子产品中,因其性能稳定、体积小、制作精确、可自动化生产等优点,逐渐取代插件系统。

而在生产过程中,零件计数器SMD也成为必不可少的工具。

零件计数器SMD的作用生产过程中,需要按照指定数量装配SMD元器件到产品中,因为人工计数容易出错,而且速度比较慢。

因此出现了零件计数器SMD,它能快速准确地完成计数任务。

同时,SMD零件较小,所以一定数量的零件放在平面上很容易混淆,而零件计数器SMD不仅可以识别每个元器件,还可以一一计数,这大大提高了工作效率。

零件计数器SMD的种类1. 光电计数器光电计数器是一种采用光电技术进行计数的器具,通过红外光线进行感应,通常包含一个发光二极管和一个光敏电阻,当有SMD元件经过时,会产生遮挡,并产生一定电位变化,进而使计数器进行计数。

该计数器可以适用于SMD贴片元件的计数,其优势是计数精确、速度快、操作方便。

2. 感应计数器感应计数器是将计数器的感应板放置在传送带或者是仓库入口等位置,当SMD 元器件经过时,通过匹配检测并完成计数。

该计数器适用于尺寸比较大的SMD元器件。

零件计数器SMD的使用方法1. 光电计数器的使用方法首先打开计数器的电源开关,然后将需要计数的元器件放在计数单元的传动带上,保持好排列整齐,不要有遮挡。

然后开启计数功能,即可开始计数。

计数器可以提示计数进度,当计数进度将要完成时,会发出警告声提醒操作员,完成计数后,袋子会下降装入计数器的集料区域。

2. 感应计数器的使用方法首先将感应计数器的感应板放置在传送带或者仓库入口,注意感应板的间距要与元器件的尺寸相匹配。

然后放置SMD元器件,当SMD元器件经过时,会触发计数器进行计数。

3个d触发器构成的模6同步扭环计数器。 -回复

3个d触发器构成的模6同步扭环计数器。 -回复

3个d触发器构成的模6同步扭环计数器。

-回复什么是3个D触发器构成的模6同步扭环计数器?计数器是电子电路中常见的一个模块,用于计数和记录特定的事件或信号。

在数字电路中,计数器的设计旨在实现特定的计数序列。

而3个D触发器构成的模6同步扭环计数器是一种常见且常用的计数器设计。

它由3个D触发器组成,可以实现模6计数序列。

在了解3个D触发器构成的模6同步扭环计数器的具体概念之前,我们首先来了解一下D触发器的工作原理及其在计数器中的作用。

D触发器是一种在触发器中常用的类型。

它具有单一的数据输入D和时钟输入CLK。

当时钟信号到达时,输入D的值被写入到触发器中。

这意味着,只有在时钟信号到达时,输入D的值才会被记录并在后续操作中使用。

现在,我们将回答以下问题:在3个D触发器构成的模6同步扭环计数器中,每个D触发器的作用是什么?在3个D触发器构成的模6同步扭环计数器中,每个D触发器具有特定的作用。

我们分别来看一下:1. 第一个D触发器:该触发器的输出(Q0)作为计数器的最低位输出。

它的时钟输入(CLK)来自外部时钟源。

这个触发器的作用是保证计数器的最低位能够按照时钟输入进行计数。

2. 第二个D触发器:该触发器的输出(Q1)作为计数器的中间位输出。

它的时钟输入(CLK)来自第一个D触发器(Q0的反馈)。

这个触发器的作用是连接起计数器的最低位和中间位,实现递增计数。

3. 第三个D触发器:该触发器的输出(Q2)作为计数器的最高位输出。

它的时钟输入(CLK)来自第二个D触发器(Q1的反馈)。

这个触发器的作用是连接起计数器的中间位和最高位,实现递增计数。

现在,我们来看一下3个D触发器构成的模6同步扭环计数器的工作原理。

这个计数器从初始状态开始,即所有D触发器的输入为0。

然后,计数器按照递增的顺序(0、1、2、3、4、5、0、1…)进行计数。

计数器的操作过程如下:1. 当时钟信号(CLK)到达时,输入D0的值被写入第一个D触发器中。

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

南昌大学实验报告
学生姓名:陈杰学号:6100208002 专业班级:电子081班
实验类型:验证□综合□设计■创新□实验日期:2010/10/26 实验成绩:
实验二模可变计数器设计(模23/模109)
一、实验目的
1.学习一般的数字电路设计;
2.学习数码管的输出方法;
3.进一步熟悉Quartes II集成开发软件的使用以及PH-1V型实验装置的使用二、实验内容与要求
1.设置一位控制位M,要求M=0:模23计数;M=1:模109计数;
2.计数结果用两位数码管显示,显示BCD码;
3.给出此项设计的仿真波形;
三、设计思路/原理图
数字电路以前学过模值计数器的设计,而这个实验只是在原类型题加了一个模值转换的设置,再加上要求用数码管显示,所以必须把计数结果转换成BCD码,所以干脆直接使用BCD码进行模值控制。

四、实验程序(程序来源:陈杰)
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cnt109 is
port(clk,rst,en,M:in std_logic;
cq,cqq,cqqq: out std_logic_vector (3 downto 0)) ;
end cnt109;
architecture behav of cnt109 is
begin
process(clk,rst,en,M)
variable cq1:std_logic_vector (11 downto 0);
variable Z:std_logic_vector (11 downto 0);
begin
case M is
when '0' => Z:="000000100010";
when '1' => Z:="000100001000";
end case;
if rst='1' then cq1:=(others=>'0');
elsif clk'event and clk='1' then
if en='1' then
if cq1<Z then
if cq1(7 downto 0) =153 then cq1:=cq1+103;
elsif cq1(3 downto 0)=9 then cq1:=cq1+7;
else cq1:=cq1+1;
end if;
else cq1 :=( others =>'0') ;
end if;
end if;
end if;
cq<=cq1( 3 downto 0);cqq<=cq1 ( 7 downto 4 ) ;cqqq<=cq1 ( 11 downto
8);
end process;
end behav;
五、实验步骤
1.设计模可变计数器逻辑描述(如实验设计),输入到软件中,全程编译并时序仿真。

时序仿真的波形图如下:
实验仿真波形分析:
AB 段:当M 从O 到1后,计数器由2模3转换到模109
CD 段:当M 为1时,计数器以模109计数
EF 段:当M 为0时,计数器以模23计数
FG 段:当rst 为1时,计数器清零
2.2.锁定引脚,CLK —58,EN —53,RST —54,M —55,cq[0]—172,cq[1]—173,cq[2]—174,cq[3]—175,cqq[0]—176,cqq[1]—177,cqq[2]—179,cqq[3]—180,cqqq[0]—186 cqqq[1]-187
Cqqq[2]-189 cqqq[3]-190
3.下载到实验箱。

4.验证结果。

5.收拾仪器。

七、硬件测试
当en 接1,M 接0时,进行模23计数。

当en 接1,M 接1时,进行模109计数。

Rst 可以清零,符合设计要求
八、实验小结
1.相比较第一个实验,这个实验感觉更简单,只要想到了程序的设计方法其他的都能解决,所以,对这次实验来说,思路想法是很重要的。

2.每次在寝室完成了一个实验后总是担心因为实验工具软件不同而在实验室出现不可预知的问题。

所以在实验前已经把引脚锁定好了,希望实验室能早点做出来。

但是由于
其他原因的影响,实验未必都能在合适的时间(老师刚好经过之前)完成,而偏偏在老师刚好到下一排去检查或是没看到举手而延迟了实验结果的检查。

4.由于之前自己电脑坏的,所以也没足够的时间去考虑任意模的问题,但是做完实验后发现,其实只要引用一个中间变量,像Z一样从00000到11111变化,这样就完成了任意模。

因而希望以后能尽可能高效的完成实验。

九、心得体会
该实验的设计还可以进一步完善,上面的设计是最简单的,但并不是最好的。

实验可以设置数码管的动态扫描输出,上面的设计是采用数码管静态输出。

在后面数字钟的实验中会采用数码管的动态扫描。

设计实验代码时最好不要用太多的IF语句,否则会导致逻辑混乱,有可能得不到正确的输出波形。

相关文档
最新文档