3.同步置数异步清零D触发器

3.同步置数异步清零D触发器
3.同步置数异步清零D触发器

可编程逻辑器件设计实验报告

实验名称: 同步置数异步清零D 触发器 实验目的: 使用Quartus II 编写VerilogHDL 代码实现同步置数异步清零D 触发器,并

仿真结果 实验时间: 年 月 日 地点: 实验室 学生姓名: 学号: 实验名称: 同步置数D 触发器

1、 实验步骤

1. 创建工程文件,将顶层实体命名为DFF_clear 。

2. 新建一个verilog HDL File ,并保存。

3. 在verilog HDL File 中输入代码,并编译。 2、 VerilogHDL 代码

module DFF_clear(clk,D,Q,clr_n,ld_n);

input clk,D,clr_n,ld_n;

output Q;

reg Q;

always@(posedge clk,negedge clr_n)

if(clr_n==0)

Q<=0;

else if(ld_n==0)

Q<=1; else

Q<=D;

endmodule

3、 RTL 视图

订 线

4、仿真结果

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

广州大学学生实验报告 实验室:电子信息楼 317EDA 2017 年 9月 18 日 学院机电学院年级、专 业、班 电信 151 姓名苏伟强学号 1507400051 实验课 程名称 可编程逻辑器件及硬件描述语言成绩 实验项 目名称 实验2 含异步清零的同步时钟使能控制的加法计数器指导老师秦剑 一实验目的 a)学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术; 二实验原理 图是一含计数使能、异步复位的4位加法计数器,例2-1是其 VHDL描述。图中间是4位锁存器;rst是异 步清信号,高电平有效;clk是锁存信号;D[3:0]是4位数据输入端。当ENA为‘1’时,多路选择器将 加1器的输出值加载于锁存器的数据端;当ENA为‘0’时保持上一次的输出。 三实验设备 a)FPGA实验箱,Cyclone III EP3C40Q24C08 四实验内容和结果 a)编程 根据实验原理编程VHDL,rst是异步清信号,高电平有效;clk是锁存信号;CQ[3:0]是计数输出端,COUT 是进位输出。上升沿计数,在计数到1111的时候进位(这里判断CQI的所有位为1时进位,表示计数到top 值),清零,继续计数,将进位数据锁存在COUT端,不断更新。可以看到在进程中,首先判断rst信号是 否为1,为1的话进行置位,优先级最高而且不受时钟信号控制(放在以时钟边沿测试表述clock’event and clock=’1’为条件语句的if语句以外),是异步置位。 b)波形仿真 新建波形仿真文件,文件名和实体名称保持一致,可以看到,使能信号为1,在时钟信号的上升沿计数加 一,如果有置位信号,则产生异步置位(置位最优先),计数到1111top值,进位并且自动清零,符合设计。

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

附表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 四、仿真结果:

异步清零和同步时钟使能的4位加法计数器 实验报告

异步清零和同步时钟使能的4位加法计数器 一、实验目的: 学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 二、实验原理 本试验中所要设计的计数器,由4位带异步清零的加法计数器和一个4位锁存器组成。其中,rst是异步清零信号,高电平有效;clk是计数时钟,同时也是锁存信号;ENA为计数器输出使能控制。当ENA为‘1’时,加法计数器的输出值加载于锁存器的数据端,;当ENA为‘0’时锁存器输出为高阻态。当计数器输出“1111”时,进位信号COUT为“1”。 三、实验内容 1)画出该计数器的实体框图0 2)用VHDL语言完成上述计数器的行为级设计。 ------------------------------------------------------------------------------------------------------- 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT4 IS PORT (RST,CLK,ENA:IN STD_LOGIC;

COUT: OUT STD_LOGIC; OUTY :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CNT4; ARCHITECTURE behv OF CNT4 IS BEGIN PROCESS (RST,ENA,CLK) VARIABLE CQI :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='1' THEN CQI :=(OTHERS =>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF ENA ='1' THEN IF CQI < 15 THEN CQI:=CQI+1; ELSE CQI :=(OTHERS =>'0'); END IF; END IF; END IF; IF CQI =15 THEN COUT<='1'; ELSE COUT <='0'; END IF; OUTY <=CQI; END PROCESS; END behv; 3)用QuartusII对上述设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。 --------------------------------------------------------------------------------------------------

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

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; 仿 真 波 形 图 实 验 结 果

实验二含异步清零和同步使能的加法计数器

实验二含异步清零和同步使能的加法计数器 一、实验目的 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 数字时钟信号模块电路原理 信号名称对应FPGA管脚名说明 DIGITAL-CLK A14数字时钟信号送至FPGA的A14 表3-1 数字时钟输出与FPGA的管脚连接表 按键开关模块的电路原理如图3-3所示,表3-2是按键开关的输出与FPGA的管脚连接表。 图3-3 按键开关模块电路原理 信号名称FPGA I/O名称核心板接口管脚号功能说明S[0]PIN_AF5JP1_91‘S1’ Switch S[1]PIN_AH6JP1_93‘S2’ Switch S[2]PIN_AH7JP1_95‘S3’ Switch S[3]PIN_AH8JP1_97‘S4’ Switch S[4]PIN_AG10JP1_99‘S5’ Switch S[5]PIN_AG11JP1_101‘S6’ Switch S[6]PIN_AH14JP1_90‘S7’ Switch S[7]PIN_AG7JP1_92‘S8’ Switch

含异步清零和同步加载的十进制加法计数器的设计

实验二设计含异步清零和同步使能的加法计数器 1.实验目的 学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 2.实验内容或原理 在Quartus II 上对源程序进行编辑、编译、综合、适配、仿真。说明源程序各语句的作用,详细描述其功能特点,给出其所有信号的时序仿真波形。RST为异步清零信号,高电平有效;CLK是锁存信号;EN为计数使能信号,LOAD为加载控制信号,DATA为预置数。当时钟信号CLK、加载控制信号LOAD、复位信号RST或时钟使能信号EN中任一信号发生变化,都将启动进程语句PROCESS。此时如果RST为‘0’,将对计数器清零,即复位,这项操作是独立于CLK的,因而称异步。 3.实验仪器 (1)GW48系列SOPC/EDA实验开发系统 (2)配套计算机及Quartus II 软件 4.实验步骤 (1)完成含异步清零和同步使能的加法计数器的VHDL描述,并对其进行波形仿真,确定结果正确。 (2)建议选择实验电路模式5对该设计进行硬件验证。 5. VHDL仿真实验 (1)为此工程新建一个文件夹。启动QuartusII软件工作平台,新建工程设计文件名为。在新建的VHDL模型窗口下编写源程序代码如下: LIBRARY IEEE; USE CNT10 IS PORT (CLK,EN,RST,LOAD: IN STD_LOGIC; DATA: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT: OUT STD_LOGIC ); END; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK,RST,EN,LOAD) VARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='0' THEN Q:=(OTHERS=>'0');

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

Error (10482): VHDL error at CNT4.vhd(18): object "COUNT" is used but not declared异步清零和同步时钟使能的4位加法计数器 一、实验目的: 学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 二、实验原理 本试验中所要设计的计数器,由4位带异步清零的加法计数器和一个4位锁存器组成。其中,rst是异步清零信号,高电平有效;clk是计数时钟,同时也是锁存信号;ENA为计数器输出使能控制。当ENA为‘1’时,加法计数器的输出值加载于锁存器的数据端,;当ENA为‘0’时锁存器输出为高阻态。当计数器输出“1111”时,进位信号COUT为“1”。 三、实验内容 1)画出该计数器的实体框图0 2)用VHDL语言完成上述计数器的行为级设计。 ------------------------------------------------------------------------------------------------------- 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT4 IS

PORT (RST,CLK,ENA:IN STD_LOGIC; COUT: OUT STD_LOGIC; OUTY :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CNT4; ARCHITECTURE behv OF CNT4 IS BEGIN PROCESS (RST,ENA,CLK) VARIABLE CQI :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='1' THEN CQI :=(OTHERS =>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF ENA ='1' THEN IF CQI < 15 THEN CQI:=CQI+1; ELSE CQI :=(OTHERS =>'0'); END IF; END IF; END IF; IF CQI =15 THEN COUT<='1'; ELSE COUT <='0'; END IF; OUTY <=CQI; END PROCESS; END behv; 3)用QuartusII对上述设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。 --------------------------------------------------------------------------------------------------

实验二 异步清零和同步使能的4位计数器

西南科技大学 实验报告FPGA现代数字系统设计 实验题目:含异步清零和同步使能的4位加法计数器专业班级: 学生姓名: 学生学号: 实验时间: 指导教师:

实验二含异步清0和同步使能的4位加法计数器 一、实验目的: 学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL技术。 二、原理说明: 图2.1是一含计数使能、异步复位和计数值并行预置功能4位加法计数器,例2.1是其VHDL描述。由图2-1所示, 4位锁存器; rst是异步清0信号,高电平有效; clk是锁存信号; D[3..0]是4位数据输入端。 ENA是使能信号,当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将"0000"加载于锁存器。 图2-1含计数使能、异步复位和计数值并行预置功能4位加法计数器 三、实验内容: 1、在QuartusII上对例2-1进行编辑、编译、综合、适配、仿真。说明例中各语句 的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。 【例2-1】 module CNT4B(CLK,RST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT);//端口声明 input CLK,RST,ENA; output CLK_1,RST_1,ENA_1; output[3:0] OUTY; output COUT; reg[3:0] OUTY; reg COUT;//寄存器变量OUTY,位宽为1 wire CLK_1; wire RST_1;

wire ENA_1; assign CLK_1 = CLK; assign RST_1 = RST; assign ENA_1 = ENA; always@(posedge CLK or negedge RST) /*当CLK上升沿或者RST上升沿时,触发always模块执行*/ begin if(!RST) begin OUTY<=4'b0000; COUT<=1'b0;/*当复位信号等于0时,计数OUTY、COUT置0*/ end else if(ENA) /*当使能信号为1时,计数器计数工作*/ begin OUTY<=OUTY+1; COUT<=OUTY[0] & OUTY[1] & OUTY[2] & OUTY[3]; /*计数显示*/ end end endmodule 2保存计数器程序为CNT4B.vhd,进行功能仿真、全编译、时序仿真,如出现错误请按照错误提示进行修改,保证设计的正确性。 3锁定引脚 pin location DE2上的名称 ENA PIN_N25SW[0] CLK PIN_G26KEY0 RST PIN_N23KEY1 OUTY[0]PIN_AC21LEDR[7] OUTY[1]PIN_AA14LEDR[8] OUTY[2]PIN_Y13LEDR[9] OUTY[3]PIN_AA13LEDR[10] COUT PIN_Y12LEDG[8] CLK_1PIN_AE22LEDG[0] RST_1PIN_AF22LEDG[1] ENA_1PIN_AE23LEDR[0]

含异步清零和同步使能的加法计数器设计与仿真

实验二含异步清零和同步使能的加法计数器 并用数码管显示 一、实验目的 1、了解二进制计数器的工作原理。 2、进一步熟悉QUARTUSII 软件的使用方法和VHDL 输入。 3、时钟在编程过程中的作用。 二、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完 成加法计数器的计数。实验中时钟信号使用数字时钟源模块的1HZ 信号,用一位en表示使能端信号,用复位开关rest 表示复位信号,用LED 模块的LED1~LED7 来表示计数的二进制结果。实验LED亮表示对应的位为‘1’LED 灭表示对应的位为‘0’。通过输入不同的值模拟计数器的工作时序,观察计数的结果。实验箱中的拨动开关、与FPGA 的接口电路,LED 灯与FPGA 的接口电路以及拨动开关、LED 与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。 三实验步骤 1、打开QUARTUSII 软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。 3、在VHDL 编辑窗口编写VHDL 程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity exp4 is port( clk ,clr,en : in std_logic; co:out std_logic; key : in std_logic_vector(3 downto 0); ledag : out std_logic_vector(6 downto 0); del : out std_logic_vector(3 downto 0) ); end exp4; architecture whbkrc of exp4 is signal dount : std_logic_vector(3 downto 0); begin process(clk) begin if clk'event and clk='1' then

设异步清零和同步加载的24位计数器

实验二:设异步清零和同步加载的24位计数器 一:实验目的 熟习QuartusII的VHDL文本设计流程全过程,学习计数器的设计,仿真和硬件测试。掌握原理图与文本混合设计方法。 实验内容:说明例中各语句的作用。给出其所有信号的时序仿真波形,根据波形详细描述此设计的功能特点,包括RST,EN,LOAD,DA TA,CLK等信号的异步和同步特性。查阅编译后的计数器的时序特点,从时序仿真图和编译报告中了解技术时钟输入至计数数据输出的延时情况,包括设定不同优化约束后的改善情况,以及当选择不同FPGA目标器件后的延时差距及毛刺情况,给出分析报告。 二:设计程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_unsigned.ALL; ENTITY hour IS PORT(CLK,RESET,EN:IN STD_LOGIC; DAOUT: BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0)); END hour; ARCHITECTURE behav OF hour IS SIGNAL c:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN PROCESS(CLK,RESET) BEGIN IF RESET='1' THEN c<="0000000"; ELSIF CLK'EVENT and CLK='1'THEN IF EN='1'THEN IF c=16#24# THEN IF c="0100011"THEN c<="0000000"; ELSE c<=c+1; IF c(3 DOWNTO 0)="1001"THEN c<=c+7; END IF; END IF; END IF; END IF; END IF ; IF c(3 DOWNTO 0)="1001"THEN c<=c+7; END IF;

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

同步清零与异步清零

资料 【题目1】:如何理解数码寄存器和锁存器在时序电路中的作用? 【相关知识】:数码寄存器结构,时序电路信号分类,集成电路输出方式等。 【解题方法】:数码是最简单的时序电路,其主要作用是并行寄存数据。掌握寄存器的输入控制方式,了解寄存器的输出方式是应用数字寄存器的关键。 【解答过程】:图1是74LS451中规模集成并行数码寄存器。数码寄存器的输入信号可分成三种: (1)锁存使能控制端,如图1中的LE。只有当锁存使能信号有效(图1是上升沿)时,寄存器才能锁存输入数据(d3d2d1d0),寄存器状态得到更新。时钟信号经常作为锁存使能端的输入,以便协调时序电路的工作。 (2)控制输入端,它的作用可同时影响寄存器的多个输出,如图1中的CR。有些控制输入端需要与锁存使能输入端配合才能生效,称这种控制为同步控制。例1的清零属于异步控制。 (3)数据输入端,如图1的。 在微控制器单元(MCU)中,寄存器是十分重要的资源。寄存器的主要作用是快速寄存算术逻辑运算单元(ALU)运算过程中的数据。熟悉和了解MCU的寄存器是掌握MCU应用的关键。MCU内部寄存器的位数通常与MCU的总线宽度相同,如普通51系列单片机的寄存器宽度是8位,嵌入式控制器和DSP处理器的寄存器宽度通常是32位或48位。 当寄存器应用在MCU单元的外部时,由独立的一片中规模集成电路组成,通常称之为锁存器。常用的8位锁存器有74LS373,74LS374,74LS377,74LS573等。 应用锁存器时了解锁存器的锁存使能输入端的有效方式,控制输入端的控制方式和输出端的输出形式十分重要。 锁存使能输入控制方式有:低电平有效,高电平有效,时钟上升沿有效,时钟下降沿有效。 控制输入端有:异步清零,异步置数,同步清零,同步置数。 输出形式:普通TTL输出,OC输出,三态输出。 例1,74LS373的结构如图2所示,试分析其输入控制方式和输出方式。 观察74LS373逻辑电路图,配合74LS373提供的数据手册可知74LS373是高电平触发、低电平输出全能控制、输出具有三态功能的8位锁存器。

异步清零同步使能加法计数器

实验一 学院:电子信息学院班级: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 IS PORT(CLK,RST,EN:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC); END CNT10B; ARCHITECTURE BEHAV OF CNT10B IS BEGIN PROCESS(CLK,RST,EN) VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST ='1' THEN CQI := (OTHERS => '0');

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

EDA实验一设计含异步清零和同步加载与时钟使能的计数器一、实验目的 熟悉QuartusII的VHDL文本设计流程全过程,学习计数器的设计、仿真和硬件测试。掌握原理图与文本混合设计方法。 二、实验原理 实验程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT(CLK,RST,EN,LOAD :IN STD_LOGIC; DATA:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --4位预置数 DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --计数值输出 COUT:OUT STD_LOGIC); --计数进位输出END CNT10; ARCHITECTURE BEHAV OF CNT10 IS BEGIN PROCESS(CLK,RST,EN,LOAD) VARIABLE Q :STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='0' then q:=(OTHERS=>'0'); --复位低电平时,计数寄存器清0 ELSIF CLK'EVENT AND CLK='1' THEN --测试时钟上升沿 IF EN='1' THEN --计数使能高电平,允许计数 IF(LOAD='0') THEN Q:=DATA;ELSE --预制控制低电平,允许加载 IF Q<9 THEN Q:=Q+1; --计数小于9,继续累加 ELSE Q:=(OTHERS=>'0'); --否则计数清0

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

实验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 IS PORT (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 IS BEGIN PROCESS(CLK,RST,EN,LOAD) V ARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='0' THEN Q:=(OTHERS=>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF EN='1' THEN IF (LOAD='0') THEN Q:=DATA; ELSE IF 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; 六. 实验仿真图形

含异步清零和同步加载的十 进制加法计数器的设计

实验一 设计含异步复位和同步加载功能的加法 计数器 一、实验目的 学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 二、实验原理 在Quartus II 上对源程序进行编辑、编译、综合、适配、仿真。说明源程序各语句的作用,详细描述其功能特点,给出其所有信号的时序仿真波形。RST为异步清零信号,高电平有效;CLK是锁存信号;EN为计数使能信号,LOAD为加载控制信号,DATA为预置数。当时钟信号CLK、加载控制信号LOAD、复位信号RST或时钟使能信号EN中任一信号发生变化,都将启动进程语句PROCESS。此时如果RST为‘0’,将对计数器清零,即复位,这项操作是独立于CLK的,因而称异步。 三、实验仪器 (1)配套计算机及Quartus II 软件 四、实验步骤 (1)完成含异步清零和同步使能的加法计数器的VHDL描述,并对其进行波形仿真,确定结果正确。 五、 VHDL仿真实验 (1)建立文件夹E:\alteral\edashiyan\che3-20,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。

图1 利用New Project Wizard创建工程CNT10 (2) 打开文本编辑。NEW→VHDL File→相应的输入源程序代码→存盘为CNT10.vhd.。 图2 选择编辑文件类型 源程序代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,EN,RST,LOAD: IN STD_LOGIC; DATA: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT: OUT STD_LOGIC ); END;

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

含异步清零和同步时钟使能的加法计数器设计 (1)实验目的: 学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 (2)实验原理: 实验程序为例4-22;实验原理参考4.4节(计数器设计),设计流程参考第5章。【例4-22】设计一个带有异步复位和同步时钟使能的十进制加法计数器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT(CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : 0UT STD_LOGIC); END ENTITY CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS (CLK,RST,EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST=‘1’ THEN CQI:=(OTHERS =>‘0’);--计数器异步复位 ELSIF C LK’E VENT AND CLK=‘1’ THEN --检测时钟上升沿 IF EN=‘1’ THEN --检测是否允许计数(同步他能) IF CQI<9 THEN CQI:=CQI+1; --允许计数,检测是否小于9 ELSE CQI := (OTHERS => ‘0’); --大于9,计数值清零 END IF; END IF; END IF; IF CQI=9 THEN COUT<=‘1’; --计数大于9,输出进位信号 ELSE COUT<=‘0’; END IF; CQ<=CQI; --将计数值向端口输出 END PROCESS; END ARCHITECTURE behav;

设计含异步清零同步使能的38进制加法计数器

一、实验题目:设计一个含异步清零同步使能38进制加法 计数器。 二、实验目的:通过实践学习计数器的设计、仿真和硬件 调试,进一步熟悉VHDL设计技术。 三、实验要求及设计思路:能熟练利用软件来设计计数器并 通过实验来掌握计数器的工作原理。本实验 首先利用QuartusⅡ完成38进制计数器的文 本编辑输入和仿真测试等步骤并给出仿真波 形,最后在实验系统上验证此设计的功能。 四、实验程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT38 IS PORT (CLK,RST,EN:IN STD_LOGIC; CQ:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); COUT:OUT STD_LOGIC); END CNT38; ARCHITECTURE behav OF CNT38 IS BEGIN PROCESS (CLK,RST,EN) VARIABLE CQI:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN IF RST='1' THEN CQI:= (OTHERS=>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF EN='1' THEN IF CQI<37 THEN CQI:=CQI+1; ELSE CQI:=(OTHERS=>'0'); END IF; END IF; END IF; IF CQI=37 THEN COUT<='1'; ELSE COUT<='0'; END IF;

实验2 设计含异步清零和同步时钟使能的加法计数器(5-3)

实验2 含异步清零和同步时钟使能的加法计数器设计(5-3) (1)实验目的: 学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 (2)实验原理: 实验程序为例4-22;实验原理参考4.4节(计数器设计),设计流程参考第5章。 【例4-22】设计一个带有异步复位和同步时钟使能的十进制加法计数器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT(CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : 0UT STD_LOGIC); END ENTITY CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS (CLK,RST,EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST=‘1’ THEN CQI:=(OTHERS =>‘0’);--计数器异步复位 ELSIF C LK’E VENT AND CLK=‘1’ THEN --检测时钟上升沿 IF EN=‘1’ THEN --检测是否允许计数(同步他能) IF CQI<9 THEN CQI:=CQI+1; --允许计数,检测是否小于9 ELSE CQI := (OTHERS => ‘0’); --大于9,计数值清零 END IF; END IF; END IF; IF CQI=9 THEN COUT<=‘1’; --计数大于9,输出进位信号 ELSE COUT<=‘0’; END IF; CQ<=CQI; --将计数值向端口输出 END PROCESS; END ARCHITECTURE behav;

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

含异步清零和同步使能的加法计数器 一、实验目的 1、了解数码管的工作原理。 2、了解二进制计数器的工作原理学习。 3、七段数码管显示译码器的设计 4、学习VHDL 的CASE 语句及多层次设计方法。 二、实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-1 所示。 图4-1 静态七段数码管 由于七段数码管公共端连接到GND ,当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp 都连在了一起,8 个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 三、实验内容

本实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。实验中时钟信号使用数字时钟源模块的 1HZ 信号,用一位en表示使能端信号,用复位开关 rest 表示复位信号,用 LED 模块的LED1~LED7 来表示计数的二进制结果。实验 LED亮表示对应的位为‘1’ LED 灭表示对应的位为‘0’。通过输入不同的值模拟计数器的工作时序,观察计数的结果。实验箱中的拨动开关、与 FPGA 的接口电路,LED 灯与 FPGA 的接口电路以及拨动开关、 LED 与FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。 四实验步骤 1、打开 QUARTUSII 软件,新建一个工程。 2、建完工程之后,再新建一个 VHDL File,打开 VHDL 编辑器对话框。 3、在 VHDL 编辑窗口编写 VHDL 程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity jishuqi is port( clk ,clr,en : in std_logic; co:out std_logic; key : in std_logic_vector(3 downto 0); ledag : out std_logic_vector(6 downto 0); del : out std_logic_vector(3 downto 0) ); end jishuqi; architecture whbkrc of jishuqi is signal dount : std_logic_vector(3 downto 0); begin process(clk)

相关文档
最新文档