变模计数器

变模计数器
变模计数器

数字电路课程设计报告

——变模计数器

课程设计任务书

一﹑题目:16进制计数器, 计数器的计数模值可变,计数模M从2~16变化,用多路开关控制M的选择。

原始条件:该系统由计数模值设置开关电路、变模控制模块、16进制计数器、显示驱动电路构成。

二、要求完成设计的主要任务如下:(变模计数器输出状态表如表2-1所示。

电路设计框图如图2-1所示。)

图2-1变模计数器设计框图

一、实验目的

1、设计变模计数器,掌握变模计数器的设计方法,实现二~十六进

制之间的转换。

2、掌握中规模集成计数器74LS85的逻辑功能和使用方法

3、计数器的计数模M值可变,多路开关控制M的选择

二、设计理念

变模开关控制电路:

设置三个开关来控制切换A、B、C三个输入端,就可以实现001到111的进制实现功能。

变模控制电路:

计数器四位输出送4-16译码器,译码器输出接16选1数据选择器,数

据选择器控制端接模设置开关电路(拨码开关)。

显示驱动电路:

计数器输出送显示译码器,再送4段LED显示器。

三、实验原理

通过161计数器计数输出送给4-16译码器,再送给选择器,最后显示驱动。通过计数器的计数模值可变,计数模M从2~16变化,用多路控

制M的选择。

根据变模计数器的引脚图,电路图(如下图所示)。进行变模计数器的设计。

四、实验设备

74LS85 一个

74LS161 一个

74LS00 一个

导线若干

面包板一个

电路板一个

电源线一个

五、实验内容

(1)电路图:

手绘电路图(2)各芯片的引脚图

74LS00引脚图

74LS85引脚图

74LS161引脚图(3)仿真电路图

六、实验心得

本次课程设计是一次典型的逻辑电路设计实验,在实验过程中主要利用到逻辑电路设计的思想按照步骤按部就班的进行实验。本次的实验创新之处在于通过芯片上的

输出,来实现变模计数器的功能。因为本次设计为计数器,故在设计的过程中先画出基本电路图,再根据基本电路图在画出仿真的电路图看是否实现所要求的任务。

本次实验的精髓部分在于变模过程,实验中经过反复的研究发现,如果实验完全依

赖于或门、非门,这样使电路异常的繁琐,所以,在设计的过程中,我们引入或门电路,控制电路输出,用非门控制高位输出还是低位输出。

经过一周的电子技术基础课程设计,有很多的心得体会,有关于电子技术学习方面的,也有关于做事的方法,学习的方法的。

通过这次设计课,加强了我动手,思考和解决问题的能力。我觉得做课程设计的同时

也是对课本知识的巩固和加强,由于课本知识太多,平时的课件学习不能很好地理解

和运用各个元器件的功能,而且考试的内容有限,所以在这次课程设计中,我了解了

很多元器件的功能,并对其在电路中的应用有个更多地了解。通过这次课程设计我也

懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理

论知识和实践相结合起来,从理论中得出结论,才能真正的为社会服务,从而提高自

己的动手能力和独立思考能力。

在设计中遇到的问题,可以说是困难重重,这毕竟是我第一次做电子课程设计,难

免会遇到很多的问题,同时在设计过程中发现了自己很多的的不足之处,对以前学的

知识理解的更加深刻。此次课程设计,学到了很多课内学不到的东西,比如独立思考

解决问题,出现差错的随机应变,不同的差错有不同的解决方法,要灵活运用,和与

人合作的共同提高,团队合作是成功的必要条件,在完成项目的过程中,彼此除了要

认真完成自己的那部分以外,还要团结一致构造整个项目,这样才会使项目实现的更

快更理想。很多方面都让我都受益匪浅,围巾后的学习也打下了良好的基础,自己也

能扛得起并高质量的完成项目。同时在此感谢老师的细心指导和同学的无私帮助。

七、参考文献

[1]臧春华.电子线路设计与应用[M].北京:高等教育出版社,2005.

[2]邱关源罗先觉.电路(第五版)[M].北京:高等教育出版社,2006.

[3]阎石.《数字电子技术基础(第五版[M])》。北京:清华大学出版社,2006.5

计数进制可变的计数器设计

数字电子技术基础自主实验 班级:1201106 学号:1120110618 姓名: 陈振鑫

姓名班级学号 实验日期节次教师签字成绩 实验名称:计数进制可变的计数器设计 一、实验目的 利用74LS138(3线-8线译码器),74LS253(4选1数据选择器),74LS161(同步十进制加法计数器)三个芯片组合,利用清零法组成模数可以改变的加法计数器。 二、实验设备名称,型号 1.实验电路箱 2.直流稳压电源 3.74LS138、74LS253 、74LS161等芯片 4.导线若干 5.数字万用表 74ls138 74ls161

74ls253 三、实验电路图 四、设计思路及方案 设计思路:将计数器的输出作为译码器的输入端,译码数通过数据选择器,输出低点平,利用同步十进制加法计数器74LS161的清零端将计数器清零。 设计方案:电路图如图上图所示,74LS161计数器输出端QdQcQbQa分别与74LS138的输入端B0B1B2和输入使能端E2(高电平有效)相连,译码器的输出端Y0Y1Y6Y7与四选一数据

选择器输入端相连,输出端与计数器清零端相连。当E3=1,B2B1B0从000到111变化时Y1~Y7分别被选中,当MN分别取00~11时,便可实现改变计数器当进制。 五、实验步骤 1.检查导线通断后按电路图连好电路,QdQcQbQa端接数码显示管,CP端接手动计数脉冲,MN端设为00,检查无误后接通电源; 2.接通电源连续发动计数脉冲至CP端,观察数码显示,使计数器进入主计数循环; 3.按表测量并记录数据; 4.分别设MN=01,10,11,重复上述步骤; 5.分析实验结果。 六、仿真结果

模可变计数器设计(Verilog语言)概览

模可变计数器设计 (一)实验目的 1、进一步熟悉实验装置和QuartusⅡ软件的使用; 2、进一步熟悉和掌握EDA设计流程; 3、学习简单组合、时序电路的EDA设计; 4、学习计数器中二进制码到BCD码的转换技巧; 5、学习实验装置上数码管的输出方法。 (二)设计要求 完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下: 1、设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的 数,没按下时模为100-199之间(具体数值自行确定)的数; 2、计数结果用三位数码管十进制显示。 (三)主要仪器设备 3、微机1台 4、QuartusII集成开发软件1套 5、EDA实验装置1套 (四)实验步骤 主要有三个模块 1:一个模20和模119的计数器 2:数码管的显示 3:BCD的调整 源程序: module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output [7:0] SG; output [2:0] sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire [3:0] gw,sw,bw; /*(* synthesis, keep *) */reg [3:0]a; reg [11:0] q; reg [11:0] model;

reg [7:0] cnt,SG; reg [2:0] sel; reg [0:0]d; output [0:0]d; always @(posedge clk) begin cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; //200分频,CLK为数码管扫描频率,CLK1为计数频率 if (sel<2) sel=sel+1; else sel=0; end //sel为数码管选择 always @(sel) begin case (sel) 0: a=bw; //0数码管为百位 1: a=sw; //1数码管为十位 2: a=gw; //2数码管为个位 default: a=0; endcase case (a) 0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; //8段译码值 default: SG=8'b11111111; endcase end always @(m) if (m) model=12'b000000100000; //模值20 else model=12'b000100011001; //模值119 assign gw=q[3:0]; assign sw=q[7:4]; assign bw=q[11:8]; always @(posedge clk1,negedge rst) begin if (!rst) q=0; else if (en) begin if (q

实验二 模可变计数器(DOC)

南昌大学实验报告 学生姓名:学号:专业班级:中兴101班 实验类型:□验证□综合■设计□创新实验日期:2012、10、18成绩: 实验二模可变计数器的设计 一、实验目的 1.学习计数器的VHDL设计、波形仿真和硬件测试; 2.学会自己设计程序; 3.学会设计模可变计数器; 4.学习多层次设计方法。 二、实验内容与要求 1.计设置一位控制模的位M,要求M=0:模23计数;当M=1:模109计数。 2.计数结果用静态数码管显示,一个四位二进制表示0~9中的一个数; 3.给出此项设计的仿真波形; 4.应用实验装置验证此计数器的功能。 三、实验思路 1.按照实验要求,本实验可分为四个模块进程: 分频、模23与109计数转换、数码管控制、七段译码。 2.模可变计数器原理: 即在原有的模值计数器上加入模值转换功能 3.计数器的数码管显示 需注意十位和百位的进位即:当个位数的数值为9的下一个脉冲来时转换为,同时向十位进一,转换的算法为: 9(1001)+7(0111)=0(0000),并进一位; 当数值为99时,用同样的方法转换: 153(1001 1001B,数码管显示99)+103(01100111B)=100(0001 0000 0000); 4.要求分别实现模23和模109的计数,因此我分别用buffer变量GW、SW 、 BW 代表个位、十位、百位。还有一个控制模的位M,当M为0时实现模23计数,只用到GW和SW分别为个位和十位计数;当M为1时实现模109计数,用GW 、SW、 BW 分别为个位十位和百位计数。由于端口不能参与运算,因些在结构体中定义了se10、 sel1、 sel2三个buffer变量,分别用来对应SEL(0)、 SEL(1)、SEL(2);在程序的最后用端口接收信号。 5.进程敏感信号为RST EN M 三个,当RST为低电平,EN为高电平时则计数,否则不计数。 6.位选信号的设置: 用整形变量CNT8分别使不同的位选信号对应不同的输入,而得到不同输出。 对应关系: 表一位选信号

模可变计数器设计Verilog语言

模可变计数器设计 V e r i l o g语言 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

模可变计数器设计 (一)实验目的 1、进一步熟悉实验装置和QuartusⅡ软件的使用; 2、进一步熟悉和掌握EDA设计流程; 3、学习简单组合、时序电路的EDA设计; 4、学习计数器中二进制码到BCD码的转换技巧; 5、学习实验装置上数码管的输出方法。 (二)设计要求 完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下: 1、设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定) 的数,没按下时模为100-199之间(具体数值自行确定)的数; 2、计数结果用三位数码管十进制显示。 (三)主要仪器设备 3、微机1台 4、QuartusII集成开发软件 1套 5、EDA实验装置1套 (四)实验步骤 主要有三个模块 1:一个模20和模119的计数器

2:数码管的显示 3:BCD的调整 源程序: module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output [7:0] SG; output [2:0] sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire [3:0] gw,sw,bw; /*(* synthesis, keep *) */reg [3:0]a; reg [11:0] q; reg [11:0] model; reg [7:0] cnt,SG; reg [2:0] sel; reg [0:0]d; output [0:0]d; always @(posedge clk) begin cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; //200分频,CLK为数码管扫描频率,CLK1为计数频率 if (sel<2) sel=sel+1; else sel=0; end //sel为数码管选择 always @(sel) begin case (sel) 0: a=bw; //0数码管为百位 1: a=sw; //1数码管为十位 2: a=gw; //2数码管为个位 default: a=0; endcase case (a) 0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; //8段译码值 endcase end always @(m) if (m) model=12'b000000100000; //模值20 assign gw=q[3:0]; assign sw=q[7:4]; assign bw=q[11:8];

频率可变的任意波形发生器

深圳大学实验报告 课程名称:V erilog使用及其应用 实验名称:频率可变的任意波形发生器 学院:电子科学与技术学院 一、前言 波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常,在实验与工程中都具有重要的作用。随着电子技术的发展与成熟,电子工程领域对波形发生器的要求越来越高,不仅要求波形发生器具有连续的相位变换,频率稳定等特点,还要求波形发生器可以模拟各种复杂信号,并能做到幅度、频率,相位,波形动态可调。V erilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 本实验正是基于V erilog HDL语言对波形发生器的功能进行描述,并进行仿真,从而了解与掌握波形发生器的内部工作原理,并进一步熟悉与掌握V erilog HDL语言,将课堂所学知识进行实践。

二、实验原理 总体设计方案及其原理说明: DDS是一种把数字信号通过数/模转换器转换成模拟信号的合成技术。它由相位累加器、相幅转换函数表、D/A转换器以及内部时序控制产生器等电路组成。 参考频率f_clk为整个合成器的工作频率,输入的频率字保存在频率寄存器中,经N位相位累加器,累加一次,相位步进增加,经过内部ROM波形表得到相应的幅度值,经过D/A转换和低通滤波器得到合成的波形。△P为频率字,即相位增量;参考频率为f_clk;相位累加 器的长度为N位,输出频率f_out为: F_out——输出信号的频率;

N进制计数器——可变分频器

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT_N IS PORT ( CLK,RST,EN : IN STD_LOGIC; N : IN STD_LOGIC_VECTOR(11 DOWNTO 0); CNT : OUT STD_LOGIC_VECTOR(11 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT_N; ARCHITECTURE behav OF CNT_N IS BEGIN PROCESS(CLK, RST, EN) V ARIABLE CNTI : STD_LOGIC_VECTOR(11 DOWNTO 0); BEGIN IF RST = '1' THEN CNTI := (OTHERS =>'0') ; --计数器异步复位 ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿 IF EN = '1' THEN --检测是否允许计数(同步使能) IF CNTI < N-1 THEN CNTI := CNTI + 1; --小于N/2,允许加1计数 ELSE CNTI := (OTHERS =>'0'); --大于等于N/2,计数值清零 END IF; END IF; END IF; IF CNTI < CONV_INTEGER(N)/2 THEN COUT <= ‘0'; ELSE COUT <= ‘1'; END IF; CNT <= CNTI; COUT <= COUTI; --将计数值向端口输出 END PROCESS; END behav;

实验九_步长可变的加减计数器

实验九步长可变的加减计数器 一、实验目的 1.掌握加减法计数器以及特殊功能计数器的的设计原理。 2用VHDL语言设计多功能计数器。 二、实验原理 计数分同步计数器和异步计数器,如果按工作原理和使用情况来分那就更多了。 1.加减工作原理 加减计数也称为可逆计数,就是根据计数控制信号的不同,在时钟脉冲的作用下,计数器可以进行加1计数操作或者减1计数操作。 2.变步长工作原理 如步长为3的加法计数器,计数状态变化为0、3、6、9、12……,步长值由输入端控制。在加法计数时,当计数值达到或超过99时,在计数器下一个时钟脉冲过后,计数器清零;在减法计数时,当计数值达到或小于0时,在计数器下一个时钟脉冲过后,计数器也清零。 三、实验内容 1 设计的计数步长可在0~79之间变化 2 通过仿真或观察波形图验证设计的正确性。 3 编译下载验证结果。 四、设计提示 1.注意IF语句的嵌套。 2.注意加减计数状态的变化,计数值由9变0(加法)及由0变9(减法)各位的变化。 由于计数器为十进制计数器,还应考虑进位或借位后进行加6及减6校正。 五、实验报告要求

1.写出多模加减计数器的VHDL源程序。 2.叙述多模加减计数器的工作原理。 SF = ‘1’加标志,SF=’0’减标志 3.画出计数器工作波形图. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CHANGABLE IS PORT(CLK,RESET,SF:IN STD_LOGIC; SIZE:IN STD_LOGIC_VECTOR(6 DOWNTO 0); DO:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END ENTITY CHANGABLE; ARCHITECTURE C_SIZE OF CHANGABLE IS SIGNAL C_COUNT: STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN PROCESS(CLK,RESET,SF,SIZE) V ARIABLE TP:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN IF(RESET = '1')THEN C_COUNT<=(OTHERS=>'0'); ELSIF(CLK'EVENT AND CLK = '1')THEN IF(SF='1')THEN TP:=C_COUNT+SIZE; IF(TP>79)THEN C_COUNT<=(OTHERS=>'0'); ELSE C_COUNT<=C_COUNT+SIZE; END IF; ELSE IF(TP < SIZE)THEN C_COUNT<=(OTHERS=>'0'); ELSE C_COUNT<=C_COUNT-SIZE; END IF; END IF; END IF; DO<=C_COUNT; END PROCESS; END ARCHITECTURE C_SIZE;

变模计数器

数字电路课程设计报告 ——变模计数器 课程设计任务书 一﹑题目:16进制计数器, 计数器的计数模值可变,计数模M从2~16变化,用多路开关控制M的选择。 原始条件:该系统由计数模值设置开关电路、变模控制模块、16进制计数器、显示驱动电路构成。 二、要求完成设计的主要任务如下:(变模计数器输出状态表如表2-1所示。 电路设计框图如图2-1所示。)

图2-1变模计数器设计框图 一、实验目的 1、设计变模计数器,掌握变模计数器的设计方法,实现二~十六进 制之间的转换。 2、掌握中规模集成计数器74LS85的逻辑功能和使用方法 3、计数器的计数模M值可变,多路开关控制M的选择

二、设计理念 变模开关控制电路: 设置三个开关来控制切换A、B、C三个输入端,就可以实现001到111的进制实现功能。 变模控制电路: 计数器四位输出送4-16译码器,译码器输出接16选1数据选择器,数 据选择器控制端接模设置开关电路(拨码开关)。 显示驱动电路: 计数器输出送显示译码器,再送4段LED显示器。 三、实验原理 通过161计数器计数输出送给4-16译码器,再送给选择器,最后显示驱动。通过计数器的计数模值可变,计数模M从2~16变化,用多路控 制M的选择。 根据变模计数器的引脚图,电路图(如下图所示)。进行变模计数器的设计。 四、实验设备 74LS85 一个 74LS161 一个 74LS00 一个 导线若干 面包板一个

电路板一个 电源线一个 五、实验内容 (1)电路图: 手绘电路图(2)各芯片的引脚图

74LS00引脚图 74LS85引脚图

采用VHDL语言实现多功能可变模计数器设计并进行仿真验证

采用VHDL语言实现多功能可变模计数器设计并进行仿真验证引言 随着电子技术、计算机技术和EDA技术的不断发展,利用FPGA/CPLD进行数字系统的开发已被广泛应用于通信、航天、医疗电子、工业控制等领域。与传统电路设计方法相比,FPGA/CPLD具有功能强大,开发周期短,投资少,便于追踪市场变化及时修改产品设计,以及开发工具智能化等特点。近年来,FPGA/CPLD发展迅速,随着集成电路制造工艺的不断进步,高性价比的FPGA/CPLD器件推陈出新,使FPGA/CPLD成为当今硬件设计的重要途径。在FPGA/CPLD的应用设计开发中,VHDL语言作为一种主流的硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,并在语言易读性和层次化、结构化设计方面。表现出了强大的生命力和应用潜力。 QuartusⅡ是Altera公司在21世纪初推出的FPGA/CPLD集成开发环境,是Altera公司前一代FPGA/CPLD集成开发环境Max+PlusⅡ的更新换代产品,其界面友好,使用便捷,功能强大,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。 计数器是数字系统中使用最多的时序电路之一,不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。可变模计数器由于计数容量可以根据需要进行变化,为其广泛使用创造了便利。这里在QuartusⅡ开发环境下,用VHDL 语言设计了一种具有清零、置数、使能控制、可逆计数和可变模功能的计数器。 1 基本可变模计数器设计 可变模计数器是指计数/模值可根据需要进行变化的计数器。电路符号图1所示,clk为时钟脉冲输入端,clr为清零端,m为模值输入端,q为计数输出端。 基本可变模计数器的VHDL代码如下所示:

实验六verilog设计分频器计数器电路答案

实验六 Verilog设计分频器/计数器电路 一、实验目的 1、进一步掌握最基本时序电路的实现方法; 2、学习分频器/计数器时序电路程序的编写方法; 3、进一步学习同步和异步时序电路程序的编写方法。 二、实验内容 1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset (低电平复位),输出clockout为4个clock周期的低电平,4个clock周期的高电平),文件命名为。 2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK(上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为。 3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为。 4、用VERILOG设计一可变模数计数器,设计要求:令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk上升沿有效,文件命名为。 5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR是复位输入端,高电平有效,异步清零;Q[3..0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端。 三、实验步骤 实验一:分频器 1、建立工程

步长可变的加减计数器

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity buchang is generic(N: integer:=4); port( clk,f1,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16:in std_logic; --k :std_logic; --cq :out std_logic_vector(7 downto 0); q :out std_logic_vector(7 downto 0); ledag,ledag1 :out std_logic_vector(6 downto 0) ); end buchang; Architecture a of buchang is signal cnt: integer range 0 to n-1; signal k: integer range 0 to 15; signal clkout: std_logic; signal cq: std_logic_vector(7 downto 0); --q1<=q(3 downto 0); --q2<=q(7 downto 4); signal q1,q2: std_logic_vector(3 downto 0); Begin process(clk) begin if(clk'event and clk='1') then if(cnt

模可变计数器设计(Verilog语言)解答

模可变计数器设计 (一)实验目的 1、进一步熟悉实验装置和Quartus n软件的使用; 2、进一步熟悉和掌握EDA 设计流程; 3 、学习简单组合、时序电路的EDA 设计; 4、学习计数器中二进制码到BCD 码的转换技巧; 5、学习实验装置上数码管的输出方法。 (二)设计要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA 实验装置上实现模可变计数器功能,具体要求如下: 1 、设置一个按键控制改变模值,按键按下时模为10-99 之间(具体数值自行确定)的 数,没按下时模为100-199 之间(具体数值自行确定)的数; 2、计数结果用三位数码管十进制显示。 (三) 主要仪器设备 3、微机 1 台 4、QuartusII 集成开发软件 1 套 5、EDA 实验装置 1 套 (四) 实验步骤 主要有三个模块 1:一个模20 和模119 的计数器 2:数码管的显示 3:BCD 的调整 源程序: module count (clk,m,en,rst,a,sel,SG,d); input clk,m,en,rst; output [7:0] SG; output [2:0] sel; output a; (* synthesis, keep *) reg clk1; (* synthesis, keep *) wire [3:0] gw,sw,bw; /*(* synthesis, keep *) */reg [3:0]a; reg [11:0] q; reg [11:0] model; reg [7:0] cnt,SG; reg [2:0] sel;

reg [0:0]d; output [0:0]d; always @(posedge clk) begin cnt=cnt+1; if (cnt==200) begin clk1=1'b1; cnt=0; end else clk1=1'b0; //200 分频,CLK 为数码管扫描频率,CLK1 为计数频率 if (sel<2) sel=sel+1; else sel=0; end //sel 为数码管选择 always @(sel) begin case (sel) 0: a=bw; //0 数码管为百位 1: a=sw; //1 数码管为十位 2: a=gw; //2 数码管为个位 default: a=0; endcase case (a) 0:SG<=8'b00111111; 1:SG<=8'b00000110; 2:SG<=8'b01011011; 3:SG<=8'b01001111; 4:SG<=8'b01100110; 5:SG<=8'b01101101; 6:SG<=8'b01111101; 7:SG<=8'b00000111; 8:SG<=8'b01111111; 9:SG<=8'b01101111; //8 段译码值default: SG=8'b11111111; endcase end always @(m) if (m) model=12'b000000100000; // 模值20 else model=12'b000100011001; // 模值119 assign gw=q[3:0]; assign sw=q[7:4]; assign bw=q[11:8]; always @(posedge clk1,negedge rst) begin if (!rst) q=0; else if (en) begin if (q

模可变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)

模100BCD码计数器设计

附录一:基于原理图的模100BCD码计数器的设计 1目的:1)练习用原理图输入设计;2)如何用数码管和二极管显示设计;3)如何仿真;4)如何绑定管脚。 2过程 2.1新建原理图文件。点击file->new->block diagram file->OK,如图2-1,图2-2,出现图2-3。 图2-1 新建文件。点击file->new。 图2-2 新建原理图文件。点击block diagram file->OK。

图2-3. 原理图设计输入区域。双击工作区域。 图2-4 宏单元输入界面。点击Library下的+。

图2-5 选用宏单元。键入74160。 2.2 输入设计。双击图2-3的工作区,出现图2-4。在+megafunctions,+others,+primitives中寻找需要的宏单元。也可在Name下输入知道名字的宏单元,如“74160”,“GND”,“VCC”等,如图2-5。 输入设计,如图2-6。存盘为m100_jishuqi,如图2-7。 图2-6 模100BCD码计数器。

图2-7 保存文件。 2.2为本设计建立工程,并放在文件夹..\m100_jishuqi\中。在图2-7中点击是(或点击file->newproject) 出现图2-8;点击next,出现图2-9;输入工程名字和顶层设计名字;点击next,出现图2-10,加入设计文件;点击next,出现图2-11,选择器件(cycloneII系列EP2C70F896C6);点击 next->next->finish。 图2-8 新建工程。点击Next。

图2-9 输入工程名字和顶层设计名字:mo100_jishuqi。 图2-10 把设计文件加入工程。

模可变计数器

南昌大学实验报告 学生姓名:郑西冰学号:6100209045专业班级:电子091班 实验类型:□验证□综合□设计□创新实验日期:实验成绩: 实验二:模可变计数器 一、实验目的 1.学习一般的数字电路设计; 2.学习数码管的输出方法; 3.进一步熟悉Quartes II集成开发软件的使用以及PH-1V型实验装置的使用 二、实验要求 学习多层次设计法,设置一位控制位M,要求M=0:模24计数;M=1:模100计数;计数结果用静态数码管显示。 三、实验步骤: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY FENP IS PORT(CLK:IN BIT; CLK1:BUFFER BIT); END ENTITY; ARCHITECTURE OO OF FENP IS BEGIN PROCESS(CLK) V ARIABLE TEMP1: NA TURAL; BEGIN IF CLK'EVENT AND CLK='1' THEN TEMP1:=TEMP1+1; IF TEMP1=400 THEN TEMP1:=0; CLK1<=NOT CLK1; END IF; END IF; END PROCESS; END; 将其转换成可调用元件:

libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; entity cnt109 is port(clk,rst,en,M:instd_logic; cq,cqq,cqqq: out std_logic_vector (3 downto 0)) ; end cnt109; architecturebehav 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:="000000100100"; when '1' => Z:="000100000000"; end case; ifrst='1' then cq1:=(others=>'0'); elsifclk'event and clk='1' then if en='1' then if cq1'0') ; end if; end if; end if; cq<=cq1( 3 downto 0);cqq<=cq1 ( 7 downto 4 ) ;cqqq<=cq1 ( 11 downto 8); end process; endbehav; 将其转换成可调用元件:

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

基于Verilog的任意模长可加减计数器设计 一、设计要求 计数器是一种在时钟的触发下,完成计数功能的时序逻辑电路,输出结果由输入时钟和计数器上一状态的计数共同决定。本设计要求实现的计数器,具有以下功能: (1)要求实现计数器工作状态的控制; (2)要求实现计数器的异步清零功能; (3)要求实现计数器递增和递减的功能; (4)要求实现计数器的计数范围(模长)任意改变; 二、设计思路 计数器工作状态的控制,可以设计一个使能端,在外部时钟的触发下,只有当使能端信号有效(高电平),才启动计数器的计数功能(递增或递减),否则计数器输出结果不变。 计数器的异步清零功能,可以设计一个外部输入的清零端,在外部输入信号有效(低电平)的情况下,直接清零计数器,不用等待下一个外部时钟的触发,即计数器的清零是异步的。 计数器计数方向的控制,设计一个加减可控的信号端口,在时钟的触发、异步清零无效以及计数器使能端有效的情况下,该输入端为高电平则计数器完成递增功能,低电平则完成递减功能。 实现计数器的任意模长,即进入下一个计数周期,其计数的最大值可以发生变化。设计一个4位(最大模长为16)的输入端口,可以在当前计数周期结束,即计数器产生一个溢出信号的同时,判断该端口输入的信号是否发生变化,通过相邻两个计数周期的端口数据作异或运算,结果为高电平则代表模长发生变化,即进入的下一个计数周期,其计数最大值要发生变化。 三、程序设计 本次设计使用的是Quartus 11.0开发环境,该软件没有自带仿真功能(9.0版本以后都没自带),需要使用第三方的Modelsim 软件,故本设计的程序包括计数器的Verilog设计以及仿真测试需要的testbench激励文件两部分。 计数器的Verilog设计:

用JKFF设计模为8的加法计数器

用JKFF 设计模为8的加法计数器 步骤1: 分析题意 根据题目所给的条件,待设计的计数器默认为模为8的加法器,不需要求加载初值。电路只需要故电路只需时钟输入端clk ,clk 作为电路的同步时钟,不必当做输入变量对待;输出一个8进制数要3个输出端,记为Q 0Q 1Q 2。要有输出信号Y ,故共需要3个输出端。因输出量Q 0Q 1Q 2就是计数值,故采用Moore 型电路较为合适。 步骤2:建立原始状态图 模8加法器要求逢8加1,。有此状态图做出如图所示。需要8个状态故不需要化简。 步骤3:状态分配。 由于最大模的值为8,因此必须取代码位数n=3。假设S0=000,S1=001,S2=010,S3=011,S4=100,S5=101,S6=110,S7=111.则可以做出状态转移表如图。 步骤4:选触发器,求时钟、输出、状态、驱动方程。 因需要3位二进制代码,选用三个CP 下降沿出发的J-K 触发器,分别用FF0,FF1,FF2表示。 输入 现态 次态 输 出 CP Q2 Q1 Q0 12+n Q 1 1+n Q 10+n Q Y 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 2 0 1 0 0 1 1 0 3 0 1 1 1 0 0 0 4 1 0 0 1 0 1 0 5 1 0 1 1 1 0 0 6 1 1 0 1 1 1 0 7 1 1 1 1

有状态列表可作出次态卡诺图及输出函数的卡诺图,如下图所示。 与J-K 触发器的特性方程n n n Q K Q J Q +=+1比较得到驱动方程 n n n n n n n n Q Q Q Q Q Q Q Q 122012012++=+ n n n Q Q Q Y 210= n n Q Q K J 1022== 步骤五 画出逻辑电路图 n Q 0 n n Q Q 12 00 01 11 10 0 1 1 1 1 1 n Q 0 n n Q Q 12 00 01 11 10 0 0 1 1 0 1 1 n Q 0 n n Q Q 12 00 01 11 10 0 0 0 1 1 1 1 1 n Q 0 n n Q Q 12 00 01 11 10 0 0 0 0 0 1 1

模可变计数器设计

实验二模可变计数器设计 一、实验目的 (1) 掌握关于简单数字电路的设计和静态数码管的设计。 (2)熟悉VHDL中进程语句的使用。 (3)掌握数码管的显示。 二、实验内容与要求 (1)设计设置一位控制位M,要求M=0:模23计数;M=1:模109计数。 (2)计数结果用静态数码管显示,显示BCD码。 (3)给出此项设计的仿真波形。 三、设计原理 (1)计数器能够计数的前提就是在使能端有效时,因此设计了en作为输入信号。 (2)计数器应该还要有异步清零端,因此设计了rst作为一个输入信号。另外因为这是模可变的计数器,因此还需要m作为一个输入信号控制计数的模(3)计数器的基本工作原理是在CP:时钟脉冲输入端,每个上升沿到来时,计一个数,即自身加一,因此设计了计数的变量mmm (4)若是X模,则应该在小于X时计数,一旦记到X时,应该输出一个进位,因此需要设计一个变量limit作为参量,只有在小于limit时才可以计数,否则就应该清零。又由于在模切换时,要求只要小于22或108就可以计数,因此limit要赋予不同的值(由m控制),且在是否执行加一前进行判断。 (5)因为一个静态数码管需要四位输出,最大计数是108,要用三个静态数码管,因此mmm要设计成一个std_logic_vector(11 downto 0)共12位,来对应三个数码管的输出。 (6)因为std_logic_vector(11 downto 0)这是二进制的加法,因此不能直接显示,否则就出现错误了,因此涉及到了二进制转换为十进制。当低八位为10011010,前四位与后四位分别加6,即01100110;若低四位出现1010,要加6,即0110,进行调整。 (7)计数器的加一和调整是逻辑上是不同条件的相与,因此用到if语句。 四、实验器材 PC机,试验箱,quartus软件 五、实验程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count is port(clk,rst,en,m:in std_logic;

基于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 I 1.设计任务 (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)

相关文档
最新文档