含异步清零和同步时钟使能的加法计数器设计
实验五 含异步清零和同步使能4位加法计数器的VHDL设计

实验五含异步清零和同步使能4位加法计数器的VHDL设计一、实验目的1掌握计数器的VHDL设计方法;2掌握异步复位和同步复位和使能的概念;3掌握寄存器性能的分析方法(即分析芯片所能达到的最高时钟频率)。
二、实验内容1异步复位4位加法计数器的设计;2同步复位4位加法计数器的设计。
3异步清0和同步时钟使能的4位加法计数器三、实验原理复位:给计数器一个初值叫复位,如果所给初值为0,则称复位为清零。
异步复位:复位跟时钟无关,只要复位信号的复位电平出现,计数器立即复位,如图5-1所示;同步复位:复位跟时钟有关,当复位信号的复位电平出现时,计数器并不立即复位,而是要等到时钟沿到来时才复位,如图5-2所示。
异步复位4位加法计数器的VHDL设计代码见教材P122-P123,仿真波形如图5-3所示。
同步复位4位加法计数器的VHDL部分代码如下,仿真波形如图5-4所示。
.图5-1异步复位图5-2同步复位图5-3异步复位计数器仿真波形图5-4同步复位计数器仿真波形四、实验步骤(一)异步复位4位加法计数器的设计1建立一个设计工程,工程名为CNT4B;2打开文本编辑器,建立一个VHDL设计文件,其VHDL代码见教材P164中的例6-20,文件名存为CNT4B.VHD。
注意文件的扩展名要选为.vhd,而且要求工程名、文件名和设计实体名必须相同。
3选器件:ACEX1K,EP1K30TC144-3(旧)或Cyclone,EP3C40Q240C8目标芯片。
4编译;5建立波形文件,然后保存,其文件名必须与工程名一致;【波形设置:①设置仿真时间为10us:②设置输入信号的波形:时钟周期设置为200ns,其他输入信号的波形设置参看图6-3。
】6仿真,观察输出波形是否正确;7时序分析:分析芯片所能达到的最高时钟频率。
【打开时序分析器,然后执行菜单命令:analysis/register performance/start,可以看到最高时钟频率为100.00MHZ】(二)同步复位4位加法计数器的设计8建立一个设计工程,工程名为CNT4B_SYS;9打开文本编辑器,建立一个VHDL设计文件,其VHDL代码参看异步计数器代码和实验原理中的参考代码,文件名存为CNT4B_SYS.VHD。
实验一2 含异步清0

1)根据DE2_pin_assignments文件内容、格式 已制作本设计引脚对应文件的引脚锁定文 件:CNT4B.csv 2) 由Assignments->Import Assignment,打开 对话框,调入引脚对应文件即可。
• 进行编译、下载,通过实验,检查引脚锁定是 否正确。
• 将波形文件存盘为CNT4B.vwf
• 设定CNT4B.v是目前的顶层文件
• 由Processing->start->start annlysis & elaboration对程序进行初步的分析
• 由view->utility window->node finder,得到 如下对话框,
Filter中选择Pins: all 然后按List得到输 入输出端口列表, 用鼠标将它们拖到 波形编辑窗口
• 将instance框中的名字改为CNT4B(选中右击选择Rename Instance)
• 为看清楚,按
,将窗口浮动
• 在CNT4B框双击(Double-click to add node), 弹出节点(noder)对话框,Filter项选择all, 然后点击List
选中要观察的端口COUT、OUTY然后单击>加 入,点OK。
功能仿真
• 由Processing->generate functional simulation netlist,提取功能仿真的网表 • 由assigments->settings,对仿真工具设定为 功能仿真,并将激gt; start simulation 进行功能仿 真,并对结果进行分析。
• 锁好引脚,进行全编译(compile),重新布 局布线,时序仿真 引脚锁定,仿真结果核对无误后,准备下载
同步和异步十进制加法计数器的设计

同步和异步十进制加法计数器的设计1. 引言1.1 引言在计算机科学领域,同步和异步十进制加法计数器是常见的设计。
它们可用于对数字进行加法运算,是数字逻辑电路中的重要组成部分。
同步计数器和异步计数器的设计原理和工作方式有所不同,各有优劣势。
同步十进制加法计数器是一种通过时钟信号同步运行的计数器,采用同步电路设计。
它的设计目的是确保每一位数字在同一时刻进行加法运算,以保证正确性和稳定性。
同步计数器具有较高的精确度和可靠性,但需要更多的电路元件和较复杂的控制逻辑。
与之相反,异步十进制加法计数器采用异步电路设计,每一位数字都根据前一位数字的状态自主运行。
这种设计方式减少了电路复杂度和功耗,但可能会造成计算不稳定或出错的情况。
在选择计数器设计时需要根据实际需求和应用场景进行权衡。
通过对同步和异步十进制加法计数器的设计进行比较分析,可以更好地理解它们的优劣势和适用范围。
结合实际的应用案例,可以更好地理解它们在数字逻辑电路中的作用和价值。
2. 正文2.1 设计目的在设计同步和异步十进制加法计数器时,我们的主要目的是实现一个能够对十进制数字进行加法运算的电路。
具体来说,我们希望设计一个可以接受两个十进制数字作为输入,并输出它们的和的计数器。
设计的目的是为了实现数字的加法计算,并且保证计数器的正确性、稳定性和效率。
在设计过程中,我们需要考虑到各种可能的输入情况,例如进位、溢出等,并确保计数器能够正确处理这些情况。
我们也希望设计出一个简洁、高效的电路,以确保在实际应用中能够满足性能要求。
我们也需要考虑到电路的功耗和面积,以确保设计的成本和资源利用是否合理。
设计同步和异步十进制加法计数器的目的是为了实现对十进制数字的加法运算,保证计数器的正确性和性能,并在满足需求的前提下尽可能地降低成本和资源消耗。
2.2 同步十进制加法计数器的设计同步十进制加法计数器是一种利用时钟脉冲同步输入和输出的数字电路,用于实现十进制加法运算。
含异步清规和同步使能的加法计数器

实验三含异步清零和同步使能的加法计数器一、实验目的1、了解二进制计数器的工作原理。
2、进一步熟悉QUARTUSII软件的使用方法和VHDL输入。
3、时钟在编程过程中的作用。
二、实验原理二进制计数器中应用最多、功能最全的计数器之一,含异步清零和同步使能的加法计数器的具体工作过程如下:在时钟上升沿的情况下,检测使能端是否允许计数,如果允许计数(定义使能端高电平有效)则开始计数,否则一直检测使能端信号。
在计数过程中再检测复位信号是否有效(低电平有效),当复位信号起作用时,使计数值清零,继续进行检测和计数。
其工作时序如图3-1所示:图3-1 计数器的工作时序三、实验内容本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。
实验中时钟信号使用数字时钟源模块的1HZ信号,用一位拨动开关K1表示使能端信号,用复位开关S1表示复位信号,用LED模块的LED1~LED11来表示计数的二进制结果。
实验LED亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。
通过输入不同的值模拟计数器的工作时序,观察计数的结果。
实验箱中的拨动开关、与FPGA的接口电路,LED灯与FPGA的接口电路以及拨动开关、LED与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。
数字时钟信号模块的电路原理如图3-2所示,表3-1是其时钟输出与FPGA的管脚连接表。
图3-2 数字时钟信号模块电路原理表3-1 数字时钟输出与FPGA的管脚连接表按键开关模块的电路原理如图3-3所示,表3-2是按键开关的输出与FPGA的管脚连接表。
图3-3 按键开关模块电路原理信号名称FPGA I/O名称核心板接口管脚号功能说明S[0] Pin_AF5 JP1_91 ‘S1’SwitchS[1]Pin_AH6 JP1_93 ‘S2’SwitchS[2]Pin_AH7 JP1_95 ‘S3’SwitchS[3]Pin_AH8 JP1_97 ‘S4’SwitchS[4]Pin_AG10 JP1_99 ‘S5’SwitchS[5]Pin_AG11 JP1_101 ‘S6’SwitchS[6]Pin_AH14 JP1_90 ‘S7’SwitchS[7] Pin_AG7 JP1_92 ‘S8’SwitchS[8]Pin_AG8 JP1_94 ‘S9’SwitchS[9]Pin_AF9 JP1_96 ‘S10’SwitchS[10]Pin_AH10 JP1_98 ‘S11’SwitchS[11] Pin_AH11 JP1_100 ‘S12’Switch表3-2 按键开关与FPGA的管脚连接表四、实验步骤1、打开QUARTUSII软件,新建一个工程。
实验三 含异步清0和同步时钟使能的十进制

EDA技术基础实验报告实验名称:含异步清0和同步时钟使能的十进制加法法计数器姓名:李江虹学号:068专业及班级:通信工程(3)班指导老师:刘文进实验三含异步清0和同步时钟使能的十进制加法法计数器一、实验目的:学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。
二、实验原理实验图1是一含计数使能、异步复位十进制加法计数器,例1是其VHDL描述。
由实验图1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3..0]是4位数据输入端。
当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将"0000"加载于锁存器。
图1 含计数使能、异步复位十进制加法计数器三、实验内容在MAX+plusII上参照例1(4位二进制计数器)进行设计、编辑、编译、综合、适配、仿真。
说明例中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。
【例1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B ISPORT (CLK : IN STD_LOGIC;RST : IN STD_LOGIC;LOAD : IN STD_LOGIC;DATA :IN STD_LOGIC_VECTOR(3 DOWNTO 0);OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT4B;ARCHITECTURE behav OF CNT4B ISSIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINP_REG: PROCESS(CLK, RST,LOAD)BEGINIF RST = '1' THEN CQI <="0000"; ELSIF CLK'EVENT AND CLK = '1' THEN IF LOAD = '1' THEN CQI <= DATA; ELSIF CQI>="1001"THENCQI<="0000";COUT <='1';ELSECQI<=CQI+1;COUT <='0';END IF;END IF;OUTY <= CQI ;END PROCESS P_REG ;END behav;四、引脚锁定以及硬件下载测试。
异步清零同步使能加法计数器

实验一学院:电子信息学院班级:xxxxx姓名:xxx 学号:xxxxxxxxxx一、实验名称含异步清零和同步时钟使能的加法计数器二、实验设备(1)EDA实验箱(型号GW48系列)(2)计算机(3)EDA软件(QuartusII)三、实验目的学习计数器的设计、仿真和硬件测试,进一步熟悉VerilogHDL设计技术。
四、实验内容(1)在QuartusII6.0上对例4-22进行编辑、编译、综合、适配、仿真。
说明例4-22各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。
(2)引脚锁定以及硬件下载测试。
引脚锁定后进行编译、下载和硬件测试实验。
将实验过程和实验结果写进实验报告。
(3)使用SignalTap II 对此计数器进行实时测试。
(4)从设计中去除SignalTap II ,要求全程编译后将生成的SOF文件转变成用于配置器件EPCS1的压缩的间接配置文件.jic ,并使用USB-Blaster对实验板上的EPCS1进行编程,最后进行验证。
(5)为此项设计加入一个可用于SignalTap II 采样的独立时钟输入端,并进行实时测试。
五、实验原理实验程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10B ISPORT(CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT10B;ARCHITECTURE BEHAV OF CNT10B ISBEGINPROCESS(CLK,RST,EN)VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST ='1' THEN CQI := (OTHERS => '0');ELSIF CLK'EVENT AND CLK='1' THENIF EN ='1' THENIF CQI < 9 THEN CQI := CQI + 1;ELSE CQI := (OTHERS => '0');END IF;END IF;END IF;IF CQI = 9 THEN COUT <='1';ELSE COUT <= '0';END IF;CQ <= CQI;END PROCESS;END BEHAV;六、仿真分析当使能端EN为高电平复位端RST为低电平时,对脉冲进行计数,每计满十个输出进位信号,重新计数。
EDA实验二 含异步清零和同步使能的十进制加减法计数器

EDA实验二 含异步清零和同步使能的十进制加减法计数器一、实验目的1.了解加减计数器的工作原理。
2.进一步熟悉QUARTUSII 软件的使用方法和VHDL 输入。
3.熟悉仿真时序设定。
二、实验设备1.PC机 一台;四、实验内容完成一个0~99计数器,有四个输入信号:复位reset、使能enable、时钟clk和加减选择sel,三路输出信号:计数值、进位和借位信号。
要求每来一个时钟信号,加或减1(sel=‘0’时执行加,sel=‘1’时执行减);计数值为99时再加1,输出进位信号,并且计数值归零;计数值为0时再减1,输出借位信号,并且计数值变成99(即0~99循环计数);复位信号reset有效时(低电平有效)计数值清0,使能信号enable有效时(高电平有效)计数器才进行工作,否则不进行累加或累减。
五、实验步骤1.打开QUARTUSII 软件,新建一个VHDL文件。
2.输入程序代码,点击保存时,系统会提示建立一个新的工程(Project),按照QUARTUSII的提示建立好工程;3.按照实验原理和自己的想法,在VHDL 编辑窗口调整完成VHDL 程序;4.对自己编写的VHDL 程序进行编译,对程序的错误进行修改;5.进行仿真,附录:电路实体定义可参照如下:ENTITY counter ISPORT( clk, reset, enable ,sel : IN STD_LOGIC; --定义时钟、异步复位、同步使能、选择信号cq : OUT STD_LOGIC_VECTOR(6 downto 0); --计数值c1out : OUT STD_LOGIC; --进位信号c2out : OUT STD_LOGIC --借位信号);END counter;VHDL程序代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISPORT( clk, reset, enable ,sel : IN STD_LOGIC; --定义时钟、异步复位、同步使能、选择信号cq : OUT STD_LOGIC_VECTOR(6 downto 0); --计数值c1out : OUT STD_LOGIC; --进位信号c2out : OUT STD_LOGIC --借位信号);END counter;ARCHITECTURE counter99 OF counter ISBEGINPROCESS(clk, reset, enable ,sel)VARIABLE cot :STD_LOGIC_VECTOR(6 downto 0);BEGINIF reset='0' THEN cot:=(OTHERS=>'0');ELSIF clk'EVENT AND clk ='1' THENIF enable='1' THENIF sel='0' THEN c2out<='0';IF cot<99 THEN cot:=cot+1;c1out<='0';ELSE cot:=(OTHERS=>'0');c1out<='1';END IF;ELSIF sel='1' THEN c1out<='0';IF cot>0 THEN cot:=cot-1;c2out<='0';ELSE cot:="1100011";c2out<='1';END IF;END IF;END IF;END IF;cq<=cot;END PROCESS; END counter99;仿真结果如下:。
含异步清0和同步时钟使能的4位加法计数器 EDA技术与Verilog HDL实验报告

含异步清0和同步时钟使能的4位加法计数器一.实验目的熟悉在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器。
二.实验内容在QuartusII下设计含异步清0和同步时钟使能的4位加法计数器,并编译、仿真验证其功能。
三.程序清单计数器顶层文件设计:10进制计数器文本输入:module CNT10(clk,rst,en,load,cout,dout,data);input clk,en,rst,load;input [3:0] data;output[3:0] dout;output cout;reg [3:0] q1;reg cout;assign dout = q1;always @(posedge clk or negedge rst)beginif (!rst) q1<=0;else if(en)beginif (!load) q1<=data;else if(q1<9) q1<=q1+1;else q1<=4'b0000;endendalways @(q1)if (q1==4'h9) cout= 1'b1;else cout= 1'b0;endmodule60位计数器文本输入:module CNT60(CLK,EN,RST,LOAD,COUT1,COUT2,DOUT1,DOUT2,DATA);input CLK,EN,RST,LOAD;input [3:0] DATA;output[3:0] DOUT1;output[2:0] DOUT2;output COUT1;output COUT2;reg [3:0] Q1;reg [2:0] Q2;reg COUT1;reg COUT2;assign DOUT1 = Q1;assign DOUT2 = Q2;always @(negedge CLK or negedge RST) beginif(!RST) Q1<=0;else if (EN) beginif (!LOAD) Q1<=DATA;else if (Q1<9) Q1<=Q1+1;else Q1<=4'b0000;endendalways @(Q1)if (Q1==4'h9) COUT1=1'b1;elseCOUT1=1'b0;always @(negedge COUT1 or negedge RST)beginif(!RST) Q2<=0;else if (EN) beginif (!LOAD) Q2<=DATA;else if (Q2<5) Q2<=Q2+1;else Q2<=4'b0000;endendalways @(Q2)if ((Q1==4'h9)&&(Q2==3'h5)) COUT2=1'b1;elseCOUT2=1'b0;endmodule60位计数器图形输入:四.实验步骤1、新建一个名称为CNT10的工程,并在该文件夹中新建一个CNT10.v的文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA实验报告书
姓名学号实验时间
课
题
名
称
含异步清零和同步时钟使能的加法计数器设计
实验目的1.学习计数器的设计、仿真和硬件测试方法;
2.进一步熟悉VHDL设计技术;
设计要求设计一个24进制含异步清零和同步时钟使能的加法计数器,具体要求如下:
1.清零端高电平时,信号输出为0;使能端高电平时可以计数;
2.本计数器为上升沿触发;
3.计数器的输出为两路信号,分别代表计数值的个位和十位;两路信号以BCD码输出。
设计思路
根据十进制使能端加法计数器设计24进制计数器,设计异步清零;清零端高电平时,信号输出为0;使能端高电平时可以计数。
现根据书上设计出24进制计数器,再通过改进,变为两路输出BCD码。
设计原理图及源程序LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY nb IS
PORT(CLK,RD,EN:IN STD_LOGIC;
CQ,CP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT:OUT STD_LOGIC);
END nb;
ARCHITECTURE BBQ OF nb IS
SIGNAL CG: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CS: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK,RD,EN)
BEGIN
IF RD='1' THEN CG<="0000";
CS<="0000";
ELSIF CLK'EVENT AND CLK='1' THEN
IF EN='1' THEN
IF (CS="0010" AND CG="0011") THEN
CG<="0000";
CS<="0000";
ELSIF CG="1001" THEN CG<="0000";
CS<=CS+1;
ELSE CG<=CG+1;
END IF;
END IF;
END IF;
IF (CS="0010" AND CG="0011") THEN COUT<='1';
ELSE
COUT<='0';
END IF;
CQ<=CG;
CP<=CS;
END PROCESS;
END BBQ;
仿
真
波
形
图
实
验
结
果
问题讨论设计一个60进制的加法计数器,具体要求与本实验中的24进制计数器相同LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY JINZHI60 IS
PORT(CLK,RD,EN:IN STD_LOGIC;
CQ,CP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT:OUT STD_LOGIC);
END JINZHI60 ;
ARCHITECTURE BBQ OF JINZHI60 IS
SIGNAL CS,CG: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK,RD,EN)
BEGIN
IF RD='1' THEN CG<="0000";
CS<="0000";
ELSIF CLK'EVENT AND CLK='1' THEN
IF EN='1' THEN
IF (CS="0101" AND CG="1001") THEN
CG<="0000";
CS<="0000";
ELSIF CG="1001" THEN CG<="0000";
IF CS="0101" THEN CS<="0000";
ELSE CS<=CS+1;
END IF;
ELSE CG<=CG+1;
END IF;
END IF;
END IF;
CQ<=CG;
CP<=CS;
IF (CS="0101" AND CG="1001") THEN COUT<='1';
ELSE
COUT<='0';
END IF;
END PROCESS;
END BBQ;
教师
评分
教师签名
日期操作成绩报告成绩。