设计方案含异步清零和同步时钟使能的加法计数器

合集下载

同步和异步十进制加法计数器的设计

同步和异步十进制加法计数器的设计

同步和异步十进制加法计数器的设计全文共四篇示例,供读者参考第一篇示例:同步和异步是计算机系统中常用的两种通信机制,它们在十进制加法计数器设计中起到了至关重要的作用。

在这篇文章中,我们将深入探讨同步和异步十进制加法计数器的设计原理及应用。

让我们来了解一下十进制加法计数器的基本概念。

十进制加法计数器是一种用于执行十进制数字相加的数字电路。

它通常包含多个十进制加法器单元,每个单元用于对应一个十进制数位的运算。

在进行加法操作时,每个数位上的数字相加后,可能会产生进位,这就需要进位传递的机制来满足计数器的正确操作。

在同步十进制加法计数器中,每个十进制加法器单元都与一个时钟信号同步,所有的操作都按照时钟信号的节拍来进行。

具体来说,当一个数位的加法计算完成后,会将结果通过进位端口传递给下一个数位的加法器单元,这样就能确保每个数位的计算都是按照特定的顺序来进行的。

同步十进制加法计数器的设计较为简单,在时序控制方面有很好的可控性,但由于需要受限于时钟信号的频率,其速度受到了一定的限制。

在实际应用中,根据不同的需求可以选择同步或异步十进制加法计数器。

如果对计数器的速度要求较高,并且能够承受一定的设计复杂度,那么可以选择异步设计。

如果对计数器的稳定性和可控性要求较高,而速度不是首要考虑因素,那么同步设计可能更为适合。

无论是同步还是异步,十进制加法计数器的设计都需要考虑诸多因素,如延迟、数据传输、进位控制等。

通过合理的设计和优化,可以实现一个高性能和稳定的十进制加法计数器,在数字电路、计算机硬件等领域中有着广泛的应用。

同步和异步十进制加法计数器的设计都有其各自的优势和劣势,需要根据具体的需求来选择合适的设计方案。

通过不断的研究和实践,我们可以进一步完善十进制加法计数器的设计,为计算机系统的性能提升和应用拓展做出贡献。

希望这篇文章能够为大家提供一些启发和帮助,让我们共同探索数字电路设计的奥秘,开拓计算机科学的新境界。

第二篇示例:同步和异步计数器都是数字电路中常见的设计,用于实现特定的计数功能。

设计含异步清零和同步时钟使能的加法计数器

设计含异步清零和同步时钟使能的加法计数器

设计含异步清零和同步时钟使能的加法计数器附表1:广州大学学生实验报告开课学院及实验室:物理与电子工程学院-电子楼317室2016年4 月21 日学院物电年级、专业、班姓名Jason.P 学号实验课程名称EDA技术实验成绩实验项目名称设计含异步清零和同步时钟使能的加法计数器指导教师一、实验目的:学习计数器的设计、仿真和硬件测试,进一步熟悉VerilogHDL设计技术。

二、实验内容:含异步清0和同步时钟使能的4位加法器(1)实验原理:上图是一含计数使能、异步复位的4位加法计数器,书中例3-15是其VerilogHDL描述。

由图2-1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3:0]是4位数据输入端。

当ENA为‘1’时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为‘0’时保持上一次的输出。

(2)实验步骤:(2)-1按照发给大家的文件“Quartus II 9.0基本设计流程-VerilogHDL.ppt”所讲述的步骤,在QuartusII上对例3-15(第四版)(第五版p124例5-15)进行编辑、编译、综合、适配、仿真。

说明例2-1各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。

(2)-2引脚锁定以及硬件下载测试:若目标器件是EP3C40Q240C8N,建议选实验电路模式5,用键8(PIO7)控制RST;用键7控制ENA;计数溢出COUT接发光管D8;OUTY是计数输出接数码1;时钟CLK接clock2,通过跳线选择4Hz信号。

引脚锁定后进行编译、下载和硬件测试实验。

将实验过程和实验结果写进实验报告。

三、实验HDL描述:module CNT10(CLK,RST,EN,LOAD,COUT,DOUT,DATA)input CLK,EN,RST,LOAD; //定义输入信号input[3:0] DATA; //定义4位的并行加载数据DATAoutput[3:0] DOUT; //定义4位的计数输出数据DOUToutput COUT; //定义进位输出信号COUTreg[3:0] Q1; //定义4位的寄存器型中间变量Q1reg COUT;assign DOUT = Q1; //将内部寄存器的计数结果输出至DOUTalways @(posedge CLK or negedge RST) //时序过程beginif(!RST) Q1 <= 0; //RST=0时,对内部寄存器单元异步清0else if(EN)begin //同步使能EN=1,则允许加载或计数if(!LOAD) Q1 <= DATA; //当LOAD=0,向内部寄存器加载数据else if(Q1<9) Q1 <=Q1+1; //当Q1小于9时,允许累加else Q1 <=4'b0000; //否则一个时钟后清零返回初值endendalways @(Q1) //组合过程if (Q1==4'h9) COUT = 1'b1;else COUT = 1'b0;endmodule四、仿真结果:七、实验心得:通过本次实验,使我进一步熟悉了QuartusII的VerilogHDL文本设计流程以及电路仿真和硬件测试。

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

实验五 含异步清零和同步使能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

实验一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、了解二进制计数器的工作原理。

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软件,新建一个工程。

一、设计含异步清零和同步加载与时钟使能的计数器

一、设计含异步清零和同步加载与时钟使能的计数器

实验1设计含异步清零和同步加载与时钟使能的计数器一实验目的1.熟悉QuartusII的VHDL文本设计流程全过程,学习计数器的设计与仿真2.掌握简单逻辑电路的设计方法与功能仿真技巧。

3.学习使用V AHDL语言进行含异步清零和同步加载与时钟使能的计数器的设计二实验仪器设备1.PC机,1台2.QuartusII系统三实验原理含计数使能、异步复位4位加法计数器,其中有锁存器、rst是异步清零信号,低电平有效;clk是锁存信号、当ena为1时使能锁存器。

四实验内容用VHDL语言设计一个含异步清零和同步加载与时钟使能的计数器,并进行编辑,编译与仿真。

要求(1)设计含有异步清零CLR和时钟使能端ENA。

(2)用D触发器设计带有上述功能的十进制的加法计数器。

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

(4)程序完善之后进行程序的仿真并进行波形的记录与分析。

五实验参考程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT (CLK,RST,EN,LOAD: IN STD_LOGIC;DA TA:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC);END CNT10;ARCHITECTURE behav OF CNT10 ISBEGINPROCESS(CLK,RST,EN,LOAD)V ARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF RST='0' THEN Q:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF (LOAD='0') THEN Q:=DATA; ELSEIF Q<9 THEN Q:=Q+1;ELSE Q:= (OTHERS=>'0');END IF;END IF;END IF;IF Q="1001" THEN COUT<='1';ELSE COUT<='0'; END IF;DOUT <=Q;END IF;END PROCESS;END behav;六. 实验仿真图形。

实验三 含异步清0和同步时钟使能的十进制

实验三 含异步清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为低电平时,对脉冲进行计数,每计满十个输出进位信号,重新计数。

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

附表1:
广州大学学生实验报告
开课学院及实验室:物理与电子工程学院-电子楼317室2016年 4 月21 日
学院物电年级、专
业、班
姓名Jason.P 学号
实验课程名称EDA技术实验成绩
实验项目名称设计含异步清零和同步时钟使能的加法计数器指导教师
一、实验目的:
学习计数器的设计、仿真和硬件测试,进一步熟悉VerilogHDL设计技术。

二、实验内容:
含异步清0和同步时钟使能的4位加法器
(1)实验原理:
上图是一含计数使能、异步复位的4位加法计数器,书中例3-15是其VerilogHDL描述。

由图2-1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3:0]是4位数据输入端。

当ENA为‘1’时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为‘0’时保持上一次的输出。

(2)实验步骤:
(2)-1按照发给大家的文件“Quartus II 9.0基本设计流程-VerilogHDL.ppt”所讲述的步骤,在QuartusII上对例3-15(第四版)(第五版p124例5-15)进行编辑、编译、综合、适配、仿真。

说明例2-1各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。

(2)-2引脚锁定以及硬件下载测试:
若目标器件是EP3C40Q240C8N,建议选实验电路模式5,用键8(PIO7)控制RST;用键7控制ENA;计数溢出COUT接发光管D8;OUTY是计数输出接数码1;时钟CLK接clock2,通过跳线选择4Hz信号。

引脚锁定后进行编译、下载和硬件测试实验。

将实验过程和实验结果写进实验报告。

三、实验HDL描述:
module CNT10(CLK,RST,EN,LOAD,COUT,DOUT,DATA)
input CLK,EN,RST,LOAD; //定义输入信号
input[3:0] DATA; //定义4位的并行加载数据DATA
output[3:0] DOUT; //定义4位的计数输出数据DOUT
output COUT; //定义进位输出信号COUT
reg[3:0] Q1; //定义4位的寄存器型中间变量Q1
reg COUT;
assign DOUT = Q1; //将内部寄存器的计数结果输出至DOUT
always @(posedge CLK or negedge RST) //时序过程
begin
if(!RST) Q1 <= 0; //RST=0时,对内部寄存器单元异步清0
else if(EN)
begin //同步使能EN=1,则允许加载或计数
if(!LOAD) Q1 <= DATA; //当LOAD=0,向内部寄存器加载数据
else if(Q1<9) Q1 <=Q1+1; //当Q1小于9时,允许累加
else Q1 <=4'b0000; //否则一个时钟后清零返回初值
end
end
always @(Q1) //组合过程
if (Q1==4'h9) COUT = 1'b1;
else COUT = 1'b0;
endmodule
四、仿真结果:
图1
图2
由图1的时序波形可见,当EN=0时,DOUT的输出数据3保持了一段时间;
当EN=1,且在时钟CLK的上升沿时间范围LOAD=0时,4位输入数据DATA=0被加载,在LOAD=1后作为计数器的计数初值(图1);
当EN=1,LOAD=1时,输入的数据不被加载;
RST在任意时刻均有效,即使CLK非上升沿时,计数也能即刻清0(图2:计数到3后清0);
当计数到9时,COUT输出进位1,如图2所示。

五、引脚锁定:
六、硬件测试结果:
程序下载
硬件测试效果(模式5)
硬件测试的结果现象为:当键1(RST)、键2(EN)、键3(LOAD)均处于高电平时,数码管1依照时钟信号的周期(CLOCK0=1Hz),从0依次变化到9,当计数到9时,LED灯(D8:COUT)亮起。

数码管1显示的过程中,按下键1(RST)时(变为低电平),数码管1即刻清零;按下键2(EN)时(变为低电平),数码管1保持显示当前的数字(如上硬件测试效果图:保持显示数字5);按下键3(LOAD)时(变为低电平),数码管1显示的数字变为由键8-键5确定的DATA 值(上图为:0011B,就是十进制数3),恢复键1-键3的高电平状态,计数功能正常运行。

七、实验心得:
通过本次实验,使我进一步熟悉了QuartusII的VerilogHDL文本设计流程以及电路仿真和硬件测试。

本次实验的重难点是引脚锁定,数码管的显示是需要先经过译码器的处理,所以我选择了模式5。

通过对照实验电路结构图以及芯片引脚的定义表,正确进行引脚锁定,否则编译会出错或者达不到预期的效果。

总的来说,本次实验还是有一定的挑战性。

八、思考题:
给出含异步清零和同步使能的16位二进制加减可控计数器的VerilogHDL描述。

module UPDOWNCNT16(Q,COUT,DATA,LOAD,EN,CLK,RST,UP_DOWN)
input[15:0] DATA;
input LOAD,EN,CLK,RST,UP_DOWN;
output[15:0] Q;
项目名称”栏以上部分统一。

相关文档
最新文档