实验四_4_位计数器设计

合集下载

计数器的设计实验报告

计数器的设计实验报告

计数器的设计实验报告篇一:计数器实验报告实验4 计数器及其应用一、实验目的1、学习用集成触发器构成计数器的方法2、掌握中规模集成计数器的使用及功能测试方法二、实验原理计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。

计数器种类很多。

按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。

根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。

根据计数的增减趋势,又分为加法、减法和可逆计数器。

还有可预置数和可编程序功能计数器等等。

目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。

使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。

1、中规模十进制计数器CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。

图5-9-1 CC40192引脚排列及逻辑符号图中LD—置数端CPU—加计数端CPD —减计数端CO—非同步进位输出端BO—非同步借位输出端D0、D1、D2、D3 —计数器输入端Q0、Q1、Q2、Q3 —数据输出端CR—清除端CC40192的功能如表5-9-1,说明如下:表5-9-1当清除端CR为高电平“1”时,计数器直接清零;CR置低电平则执行其它功能。

当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3 置入计数器。

当CR为低电平,LD为高电平时,执行计数功能。

执行加计数时,减计数端CPD 接高电平,计数脉冲由CPU 输入;在计数脉冲上升沿进行8421 码十进制加法计数。

执行减计数时,加计数端CPU接高电平,计数脉冲由减计数端CPD 输入,表5-9-2为8421码十进制加、减计数器的状态转换表。

加法计数表5-9-减计数2、计数器的级联使用一个十进制计数器只能表示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级联使用。

数电实验报告:实验4-计数器及应用161

数电实验报告:实验4-计数器及应用161

广东海洋大学学生实验报告书(学生用表)实验名称课程名称 课程号 学院(系)专业 班级 学生姓名 学号 实验地点 实验日期实验4 计数器及其应用一、实验目的1、熟悉中规模集成计数器的逻辑功能及使用方法2、掌握用74LS161构成计数器的方法3、熟悉中规模集成计数器应用二、实验原理计数器是典型的时序逻辑电路,它是用来累计和记忆输入脉冲的个数.计数是数字系统中很重要的基本操作,集成计数器是最广泛应用的逻辑部件之一。

计数器种类较多,按构成计数器中的多触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器;根据计数制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;根据计数的增减趋势,又分为加法、减法和可逆计数器。

还有可预置数和可编程序功能计数器等。

本实验主要研究中规模十进制计数器74LS161的功能及应用。

1、中规模集成计数器74LS161 是四位二进制可预置同步计数器,由于它采用4 个主从JK 触发器作为记忆单元,故又称为四位二进制同步计数器,其集成芯片管脚如图1所示:管脚符号说明:电源正端Vcc ,接+5V ;异步置零(复位)端Rd ;时钟脉冲CP ;预置数控制端 A 、B 、C 、D ;数据输出端 QA 、QB 、QC 、QD ;进位输出端 RCO :使能端EP ,ET ;预置端 LD ;图1 74LS161 管脚图GDOU-B-11-112该计数器由于内部采用了快速进位电路,所以具有较高的计数速度。

各触发器翻转是靠时钟脉冲信号的正跳变上升沿来完成的。

时钟脉冲每正跳变一次,计数器内各触发器就同时翻转一次,74LS161的功能表如表1所示:表1 74LS161 逻辑功能表2、实现任意进制计数器由于74LS161的计数容量为16,即计16个脉冲,发生一次进位,所以可以用它构成16进制以内的各进制计数器,实现的方法有两种:置零法(复位法)和置数法(置位法)。

(1) 用复位法获得任意进制计数器假定已有N进制计数器,而需要得到一个M进制计数器时,只要M<N,用复位法使计数器计数到M时置“0”,即获得M进制计数器。

实验四 多位十进制计数器的设计与实现

实验四 多位十进制计数器的设计与实现

实验四多位十进制计数器的设计与实现(4 课时)实验目的1.熟练掌握设计电路下载到芯片的关键设置与基本步骤和利用实验箱上的输入信号和输出显示器件在线测试设计电路的方法。

2.学习使用VHDL 语言设计多位计数器和7 段译码电路的方法。

3.学习多位数码管的动态显示原理,掌握数码管驱动电路灵活设计方法。

实验原理1.米字形数码管(共阴)笔画接口:A1、A2、B、C、D1、D2、E、F、G、H、J、K、M、N、O、P、DP位选接口:sel0,sel1,sel2,sel3.sel0 Sel1 Sel2 Sel3 选中的数码管0 1 1 1 第4 位1 0 1 1 第3 位1 1 0 1 第2 位1 1 1 0 第1 位(右)2. 8 位7 段数码管(共阴)笔画接口:a、b、c、d、e、f、g、dp位选接口:sel0,sel1,sel2,sel3(可不用).Sel2 Sel1 Sel0 选中点亮的数码管1 1 1 第1 位(最右)1 1 0 第2 位1 0 1 第3 位1 0 0 第4 位0 1 1 第5 位0 1 0 第6 位0 0 1 第7 位0 0 0 第8 位实验内容与要求1.设计一个十进制计数器,具有显示位置随计数时钟在八个数码管中左右滚动的功能。

(6 分)2.设计一个符号显示电路,使其通过米字型数码管显示至少四页的自定义英文和数字符号。

(每页4 个字符)(3 分)3.设计一个4 位十进制计数器,具有加减计数功能和置数功能,并能通过数码管显示计数结果。

减数为零时发声报警。

(3 分)1:library IEEE;use IEEE.std_logic_1164.all;use IEEE.Std_logic_unsigned.all;entity cnt10 isport (clk : in std_logic;data_out : out std_logic_vector (7 downto 0);selout: out std_logic_vector (2 downto 0));end entity;architecture art1 of cnt10 isbeginprocess(clk)variable cnt1:integer range 0 to 9; beginif clk'event and clk='1' thencnt1:=cnt1+1;if cnt1>9 thencnt1:=0;end if;end if;case cnt1 iswhen 0 => data_out <= "11111100"; -- 0 when 1 => data_out <= "01100000"; -- 1 when 2 => data_out <= "11011010"; -- 2 when 3 => data_out <= "11110010"; -- 3 when 4 => data_out <= "01100110"; -- 4 when 5 => data_out <= "10110110"; -- 5 when 6 => data_out <= "10111110"; -- 6 when 7 => data_out <= "11100000"; -- 7 when 8 => data_out <= "11111100"; -- 8 when 9 => data_out <= "11101110"; -- 9 when others => NULL;end case;end process;process(clk)variable cntsel:integer range 0 to 13; beginif clk'event and clk='1' then cntsel:=cntsel+1;if cntsel>13 thencntsel:=0;end if;end if;case cntsel iswhen 0 => selout <= "111";when 1 => selout <= "110";when 2 => selout <= "101";when 3 => selout <= "100";when 4 => selout <= "011";when 5 => selout <= "010";when 6 => selout <= "001";when 7 => selout <= "000";when 8 => selout <= "001";when 9 => selout <= "010";when others => NULL;end case;end process;end art1;2:Library IEEE;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity miguan isport( clk : in std_logic;WX : out std_logic_vector (3 downto 0);DX : out std_logic_vector (15 downto 0)); End entity miguan;Architecture bhv of miguan isType state is(st0,st1,st2,st3);Signal current_state:state :=st0;Signal next_state:state;Signal shu1 : integer range 0 to 3;Signal shu2 : std_logic_vector(13 downto 0); Signal A,B,C,D:std_logic_vector(15 DOWNTO 0); Beginprocess (clk) isBeginIf (clk'event and clk='1') thenshu2<=shu2+"00000000000001";If shu2="11111111111111"thencurrent_state<=NEXT_STATE;elsecurrent_state<=current_state;End if;End if;End process;Process (current_state)BeginCase current_state iswhenst0=>A<="0110101000000000";--xB<="0000000011110000";--lC<="1000010000011110";--dD<="0001000110111011";--sNEXT_STATE<=ST1;whenst1=>A<="0000000011111100";--UB<="1000010000000011";--TC<="0001000111110011";--ED<="0011000111000111";--RNEXT_STATE<=ST2;whenst2=>A<="0000000011111111";--0B<="0001000111111011";--6C<="0000000000001100";--1D<="0001000111111111";--8NEXT_STATE<=st3;whenst3=>A<="0001000111111011";--6B<="1001010110000000";--4C<="0001000110111011";--5D<="0000000000001100";--1NEXT_STATE<=ST0;End case;End process;Process (clk) isBeginif rising_edge(clk) thenif shu1>3 thenshu1<=0;elseshu1<=shu1+1;end if;case shu1 isWHEN 0 =>WX<="1110";DX<=A;WHEN 1 =>WX<="1101";DX<=B;WHEN 2 =>WX<="1011";DX<=C;WHEN 3 =>WX<="0111";DX<=D;End case;End if;End process;End architecture bhv;3:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity wybcount4 isport(count_clk,saopin_clk,en,load,reset,add_sub:in std_logic;data_in3:in std_logic_vector(3 downto 0);--Left1data_in2:in std_logic_vector(3 downto 0);data_in1:in std_logic_vector(3 downto 0);data_in0:in std_logic_vector(3 downto 0);--Right1duanxuan:out std_logic_vector(7 downto 0);--duan xuansel:out std_logic_vector(1 downto 0);--wei xuanbell:out std_logic);end entity wybcount4;architecture beh of wybcount4 isconstant num0:std_logic_vector:="01111110";constant num1:std_logic_vector:="00001100";constant num2:std_logic_vector:="10110110";constant num3:std_logic_vector:="10011110";constant num4:std_logic_vector:="11001100";constant num5:std_logic_vector:="11011010";constant num6:std_logic_vector:="11111010";constant num7:std_logic_vector:="00001110";constant num8:std_logic_vector:="11111110";constant num9:std_logic_vector:="11011110";function number(x:std_logic_vector) return std_logic_vector is begincase x iswhen "0000" => return num0;when "0001" => return num1;when "0010" => return num2;when "0011" => return num3;when "0100" => return num4;when "0101" => return num5;when "0110" => return num6;when "0111" => return num7;when "1000" => return num8;when "1001" => return num9;when others =>return "00000000";end case;end number;signal Q3:std_logic_vector(3 downto 0);--zhong jian zhisignal Q2:std_logic_vector(3 downto 0);signal Q1:std_logic_vector(3 downto 0);signal Q0:std_logic_vector(3 downto 0);beginprocess(count_clk,reset,en,load,add_sub) isbegin--counter10IF reset = '0' THENQ0<=(OTHERS => '0');Q1<=(OTHERS => '0');Q2<=(OTHERS => '0');Q3<=(OTHERS => '0');ELSIF rising_edge(count_clk) THENif en='0' thenif load='0' thenQ0<=data_in0;Q1<=data_in1;Q2<=data_in2;Q3<=data_in3;elsif add_sub='0' then--addQ0<=Q0+1;if Q0>=9 thenQ0<="0000";Q1<=Q1+1;if Q1>=9 thenQ1<="0000";Q2<=Q2+1;if Q2>=9 thenQ2<="0000";Q3<=Q3+1;if Q3>=9 thenQ3<="0000";end if;end if;end if;end if;else--subQ0<=Q0-1;if Q0<=0 thenQ0<="1001";Q1<=Q1-1;if Q1<=0 thenQ1<="1001";Q2<=Q2-1;if Q2<=0 thenQ2<="1001";Q3<=Q3-1;if Q3<=0 thenQ3<="1001";end if;end if;end if;end if;end if;end if;END IF;if (Q0="0000" and Q1="0000" and Q2="0000" and Q3="0000") then bell<='1';elsebell<='0';end if;end process;process(saopin_clk) is--sao pin xian shivariable qq:std_logic_vector(0 to 1);beginif (saopin_clk'event and saopin_clk='1') thenif qq<=3 then qq:=qq+1;else qq:="00";end if;end if;case qq iswhen "00" => sel<="00";duanxuan<=number(Q0);when "01" => sel<="01";duanxuan<=number(Q1);when "10" => sel<="10";duanxuan<=number(Q2);when "11" => sel<="11";duanxuan<=number(Q3);end case;end process;end architecture beh;。

计数器eda实验报告

计数器eda实验报告

计数器eda实验报告计数器EDA实验报告引言:计数器是数字电路中常见的基本模块之一,用于计算和记录输入脉冲信号的数量。

在本次实验中,我们将使用EDA工具对计数器进行设计和分析。

通过对计数器的EDA实验,我们旨在深入了解计数器的工作原理和性能特点。

一、实验目的本次实验的目的是通过EDA工具对计数器进行设计和分析,具体包括以下几个方面:1. 了解计数器的基本原理和工作方式;2. 学习使用EDA工具进行电路设计和仿真;3. 分析计数器的性能指标,如最大计数值、计数速度等。

二、实验步骤1. 设计计数器的电路原理图;2. 使用EDA工具进行电路仿真;3. 分析仿真结果,包括计数器的计数规律、计数速度等;4. 调整计数器的参数,观察对计数结果的影响;5. 总结实验结果并提出改进意见。

三、计数器的设计原理计数器是由触发器和逻辑门组成的电路,可以实现对输入脉冲信号的计数功能。

常见的计数器包括二进制计数器、十进制计数器等。

在本次实验中,我们将设计一个4位二进制计数器。

四、EDA工具的使用我们选择使用Xilinx ISE Design Suite进行电路设计和仿真。

该工具具有强大的功能和易于使用的界面,方便我们进行计数器的设计和分析。

五、仿真结果分析通过对计数器的仿真结果进行分析,我们可以得到以下结论:1. 计数器的计数规律:根据计数器的设计原理,我们可以观察到计数器的计数规律为二进制递增。

2. 计数器的计数速度:计数器的计数速度取决于输入脉冲信号的频率和计数器的时钟频率。

通过适当调整时钟频率,我们可以实现不同速度的计数。

六、参数调整与性能改进在实验过程中,我们可以通过调整计数器的参数来改进其性能。

例如,我们可以增加计数器的位数,以提高其计数范围;或者调整计数器的时钟频率,以改变其计数速度。

通过不断优化和改进,我们可以得到更加高效和灵活的计数器设计。

七、实验总结通过本次计数器EDA实验,我们深入了解了计数器的工作原理和性能特点,并学会了使用EDA工具进行电路设计和仿真。

实验4-4.微控制器实验:程序计数器PC与地址寄存器AR实验[优质文档]

实验4-4.微控制器实验:程序计数器PC与地址寄存器AR实验[优质文档]

实验4-4. 微控制器实验:程序计数器PC与地址寄存器AR实验一、实验目的:1.掌握地址单元的工作原理;2.掌握PC的两种工作方式,加1计数和重装计数器初值的实现方法;3.掌握地址寄存器AR从程序计数器PC获得数据和从内部总线BUS获得数据的实现方法。

二、实验原理:采用总线多路开关联接方式地址单元主要由三部分组成:程序计数器PC、地址寄存器AR和多路开关BUSMUX。

程序计数器PC用以指出下一条指令在主存中的存放地址,CPU正是根据PC的内容去存取指令的。

因程序中指令是顺序执行的,所以PC有自增功能。

程序计数器提供下一条程序指令的地址,如图4-64所示,在T4时钟脉冲的作用下具有自动加1的功能;在LDPC信号的作用下可以预置计数器的初值(如子程序调用或中断相应等)。

当LDPC为高电平时,计数器装入data[ ]端输入的数据。

aclr是计数器的清0端,高电平有效(高电平清零);aclr为低电平时,允许计数器正常计数。

地址寄存器AR(DFF_8)锁存访问内存SRAM的地址。

地址寄存器AR的地址来自两个渠道,一是程序计数器PC的输出,通常是下一条指令的地址;二是来自于内部数据总线的数据,通常是被访问操作数的地址。

为了实现对两路输入数据的切换,在FPGA的内部通过总线多路开关BUSMUX进行选择。

LDAR与多路选择器的sel相连,当LDAR为低电平,选择程序计数器的输出;当LDAR为高电平时,选择内部数据总线的数据。

图4-64 程序计数器原理图三、实验任务:按照图4-64,程序计数器原理图编辑、输入电路,实验台选择0工作模式。

对输入原理图进行编译、引脚锁定、并下载到实验台。

1.首先下载pc_unit.sof,用模式键选模式“0”,再按一次右侧的复位键;键2和键1可输入8位总线数据B[7..0](此值显示于发光管D1~D8和数码管2/1);CLR(键5)按2次(0→1→0),产生一正脉冲,高电平清零;LDAR(键6)=0时,BUSMUX输出程序计数器PC的值;LDAR=1时,BUSMUX输出B[7..0]总线数据。

数字逻辑实验报告

数字逻辑实验报告

数字逻辑实验报告数字逻辑实验报告引言:数字逻辑是计算机科学中的基础知识,它研究的是数字信号的处理与传输。

在现代科技发展的背景下,数字逻辑的应用越来越广泛,涉及到计算机硬件、通信、电子设备等众多领域。

本实验旨在通过设计和实现数字逻辑电路,加深对数字逻辑的理解,并掌握数字逻辑实验的基本方法和技巧。

实验一:逻辑门电路设计与实现逻辑门是数字电路的基本组成单元,由与门、或门、非门等构成。

在本实验中,我们设计了一个4位全加器电路。

通过逻辑门的组合,实现了对两个4位二进制数的加法运算。

实验过程中,我们了解到逻辑门的工作原理,掌握了逻辑门的真值表和逻辑方程的编写方法。

实验二:多路选择器的设计与实现多路选择器是一种常用的数字逻辑电路,它可以根据控制信号的不同,从多个输入信号中选择一个输出信号。

在本实验中,我们设计了一个4位2选1多路选择器电路。

通过对多路选择器的输入信号和控制信号的设置,实现了对不同输入信号的选择。

实验过程中,我们了解到多路选择器的工作原理,学会了多路选择器的真值表和逻辑方程的编写方法。

实验三:时序逻辑电路的设计与实现时序逻辑电路是一种能够存储和处理时序信息的数字逻辑电路。

在本实验中,我们设计了一个简单的时序逻辑电路——D触发器。

通过对D触发器的输入信号和时钟信号的设置,实现了对输入信号的存储和传输。

实验过程中,我们了解到D触发器的工作原理,掌握了D触发器的真值表和逻辑方程的编写方法。

实验四:计数器电路的设计与实现计数器是一种能够实现计数功能的数字逻辑电路。

在本实验中,我们设计了一个4位二进制计数器电路。

通过对计数器的时钟信号和复位信号的设置,实现了对计数器的控制。

实验过程中,我们了解到计数器的工作原理,学会了计数器的真值表和逻辑方程的编写方法。

结论:通过本次实验,我们深入了解了数字逻辑的基本原理和应用方法。

通过设计和实现逻辑门电路、多路选择器、时序逻辑电路和计数器电路,我们掌握了数字逻辑实验的基本技巧,并加深了对数字逻辑的理解。

verilog设计一四位计数器

verilog设计一四位计数器

学院:信息技术学院班级:专业:电子信息科学与技术姓名:日期:学号:1、熟悉行为级语法;2、熟悉有限状态机设计一四位计数器,进行仿真,并检测输出结果;提示:在时钟上升沿,如果复位信号有效,则复位为0,如果复位信号无效,则计数器需要加一。

完成一个序列信号电路检测器,检测信号为10010,当检测到此序列时输出端口输出高电平,其余时间输出低电平。

提示:先画出状态转换图或写出状态转换表,根据状态表或者状态图完成代码的设计;编写测试模块对该功能模块进行仿真。

要求实验报告包括完整的状态转化图或者转化表。

序列信号电路检测器:module mian (z, x, clock, clear);output z;reg z;input clock, clear;input x;parameter s0 = 3'd0,s1 = 3'd1,s2 = 3'd2,s3 = 3'd3,s5 = 3'd5,s4 = 3'd4;reg [2:0] state;reg [2:0] next_state;always @(posedge clock) if(clear)state <= s0;elsestate <= next_state;always @(state)begincase(state)s0: show = 0;s1: show = 0;s2: show = 0;s3: show = 0;s4: show = 0;s5: show = 1; endcaseendalways @(x or state) begincase(state)s0: if(x == 0)next_state = s0;elsenext_state = s1;s1: if(x == 0)next_state = s2;elsenext_state = s1;s2: if(x == 0)next_state = s3;elsenext_state = s1;s3: if(x == 0)next_state = s0;elsenext_state = s4;s4: if(x == 0)next_state = s5;elsenext_state = s1;s5: if(x == 0)next_state = s0;elsenext_state = s1;endcaseendendmodulemodule stimulus_mv;wire z;reg x;reg clock, clear; mianMVP(z, x, clock, clear);initialbegin clock = 0;forever #5 clock = ~clock;endinitialbeginclear = 1;repeat(2)@(negedge clock);clear = 0;endinitialbegin#30 x = 1;#10 x = 0;#10 x = 0;#10 x = 1;#10 x = 0;endendmodule1.输出:四位计数器3.1功能块代码module counter(out, clock, clear);output out;input clock, clear;reg [3:0] out;always @(posedge clock or negedge clear) beginif(clear)out <= 4'd0;elseout <= out + 1;endendmodule3.2测试模块代码module counter_stimulus;reg clock, clear;wire [3:0] out;initial$monitor($time, "count = %b , clear = %b", out[3:0], clear); counter MVP(out, clock, clear);alwaysbeginclear = 1'b1;#15 clear = 1'b0;#200 clear = 1'b1;#50 clear = 1'b1;endinitialbeginclock = 1'b0;forever #5 clock = ~clock;endinitialbegin#400 $Finish;endendmodule4分析总结4.1遇到的问题及解决方法4.2实验心得及存在的问题。

课程设计计数器

课程设计计数器

课程设计计数器一、教学目标本课程的教学目标是让学生掌握计数器的基本原理和使用方法。

具体包括:1.知识目标:使学生了解计数器的历史、发展和种类,理解计数器的工作原理,掌握计数器的使用方法和操作技巧。

2.技能目标:培养学生能够熟练使用计数器进行基本的数学运算,能够运用计数器解决实际问题。

3.情感态度价值观目标:培养学生对科学的热爱和好奇心,培养学生的动手能力和创新精神,使学生认识到科技对生活的重要性。

二、教学内容本课程的教学内容主要包括:1.计数器的基本原理:使学生了解计数器的工作原理,理解计数器各个部分的功能和作用。

2.计数器的使用方法:教授学生如何使用计数器进行基本的数学运算,如何进行数据输入和输出。

3.计数器的操作技巧:通过实际操作,使学生掌握计数器的操作技巧,能够熟练使用计数器。

4.计数器在实际问题中的应用:通过实例讲解,使学生能够运用计数器解决实际问题。

三、教学方法本课程的教学方法包括:1.讲授法:通过讲解计数器的基本原理和使用方法,使学生掌握相关知识。

2.讨论法:通过分组讨论,使学生交流学习心得,提高学生的动手能力和团队协作能力。

3.实验法:通过实际操作,使学生掌握计数器的使用方法和操作技巧。

四、教学资源本课程的教学资源包括:1.教材:选用权威、实用的教材,为学生提供学习参考。

2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作精美的多媒体课件,提高学生的学习兴趣。

4.实验设备:准备充足的实验设备,保证每个学生都能动手实践。

五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与度、提问回答等情况,评估学生的学习态度和理解程度。

2.作业:布置适量的作业,评估学生的掌握情况,包括计数器的使用方法和实际问题解决能力。

3.考试:定期进行考试,全面评估学生对计数器知识的理解和运用能力。

评估方式要求客观、公正,能够全面反映学生的学习成果。

通过评估,及时发现学生的问题,进行针对性的辅导。

实验四两位十进制计数器显示实验

实验四两位十进制计数器显示实验

实验四两位十进制计数器显示实验——综合实验一、实验目的1、学生在掌握所学知识(模拟电路、数字电路、VHD语言等)的基础之上,通过进行该实验可将有关知识的连贯起来,提高自己本身的综合能力。

2、该实验的参考程序有错,学生通过该实验可以深入的了解和掌握EDA。

二、实验要求1、编写计数器程序。

2、编写扫描显示程序。

3、组成两位十进制计数器的显示功能。

三、实验设备1、计算机一台2、EDA——Ⅳ实验箱一台四、实验提示(1)该实验应该分为三部分完成:计数器模块、扫描显示模块和综合部分。

(2)输入信号:计数信号、手动清零、手动允许和手动复位信号。

(3)输出信号:七段码输出信号和位选编码信号。

(4)接口引脚的分配,参考附录三。

五、实验报告要求1、分别叙述计数器和扫描显示的工作原理和设计原理。

2、绘制它们的程序流程图并进行程序分析。

3、详细叙述和总结实验过程并进行仿真实验与硬件实验的分析。

参考1、LED显示程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tled isport(din: in std_logic_vector(7 downto 0);sn: out std_logic_vector(2 downto 0);clk: in std_logic;LED7: out std_logic_vector(6 downto 0));end tled;architecture behv of tled issignal he: std_logic_vector(3 downto 0);signal ds: std_logic_vector(2 downto 0);beginprocess (din)begin。

when "0000" => LED7 <="0111111"; --"0" / 39hwhen "0001" => LED7 <="0000110"; --"1" / 06hwhen "0010" => LED7 <="1011011"; --"2" / 5Bhwhen "0011" => LED7 <="1001111"; --"3" / 4Fhwhen "0100" => LED7 <="1100110"; --"4" / 66hwhen "0101" => LED7 <="1101101"; --"5" / 6Dhwhen "0110" => LED7 <="1111101"; --"6" / 7Dhwhen "0111" => LED7 <="0000111"; --"7" / 07hwhen "1000" => LED7 <="1111111"; --"8" / 7Fhwhen "1001" => LED7 <="1101111"; --"9" / 6Fhwhen "1010" => LED7 <="1110111"; --"A" / 77hwhen "1011" => LED7 <="1111100"; --"b" / 7Chwhen "1100" => LED7 <="0111001"; --"C" / 39hwhen "1101" => LED7 <="1011110"; --"d" / 5Ehwhen "1110" => LED7 <="1111001"; --"E" / 79hwhen "1111" => LED7 <="1110001"; --"F" / 71hwhen others => LED7 <="0000000"; --"不显示示"end case;sn <= ds; --"位选信号"end process;end behv;参考2、十进制计数器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY cntA isport(CLK,RST,EN :in std_logic;Dout : out std_logic_VECTOR ( 3 Downto 0 );Cy : out std_logic);end cntA ;architecture Cm of cntA 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 < "1010" then Cqi :=Cqi;else Cqi :=(others =>'0');end If;end If;end If;IF Cqi="1110" Then Cy <= '1' ;Dout <= "0000";else Cy <='0';Dout <= Cqi;end If;END Process;End Cm;参考3、顶层原理图。

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选一、四位比较器、加法器、计数器、巴克码发生器)

EDA实验报告(四选⼀、四位⽐较器、加法器、计数器、巴克码发⽣器)实验1 4选1数据选择器的设计⼀、实验⽬的1.学习EDA软件的基本操作。

2.学习使⽤原理图进⾏设计输⼊。

3.初步掌握器件设计输⼊、编译、仿真和编程的过程。

4.学习实验开发系统的使⽤⽅法。

⼆、实验仪器与器材1.EDA开发软件⼀套2. 微机⼀台3. 实验开发系统⼀台4. 打印机⼀台三、实验说明本实验通过使⽤基本门电路完成4选1数据选择器的设汁,初步掌握EDA设计⽅法中的设汁输⼊、编译、综合、仿真和编程的过程。

实验结果可通过实验开发系统验证,在实验开发系统上选择⾼、低电平开关作为输⼊,选择发光⼆极管显⽰输出电平值。

本实验使⽤Quartus II软件作为设计⼯具,要求熟悉Quartus II软件的使⽤环境和基本操作,如设计输⼊、编译和适配的过程等。

实验中的设计⽂件要求⽤原理图⽅法输⼊,实验时,注意原理图编辑器的使⽤⽅法。

例如,元件、连线、⽹络爼的放巻⽅法和放⼤、缩⼩、存盘、退岀等命令的使⽤。

学会管脚锁定以及编程下载的⽅法等。

四、实验要求1.完成4选1数据选择器的原理图输⼊并进⾏编译;2.对设计的电路进⾏仿真验证:3.编程下载并在实验开发系统上验证设计结果。

五、实验结果管脚分配:N;如kne DteOwn LccatMi Pwecgj G【c^p I/ODo-l 2 GC6P I ifo Xfl-c t nk A Igt PHJ V21Bl NO AS-VLUTrifd2?B Irpjt PIW.VI DJ_W ^>VLVTTl(d 3? co1r(xt P1M IPS5a^Lumid 庐Cl Irpul P1W.KC654a>vivin(d 5* C213P1KLP2S M」JO a>vLum(d 6* C3Inpjt叽⼼:■? ^3-VLVTn(d I* GK incut PJWJtfH7B7JJ1 a>VLUTn(d8o v O J U X A7B7 M J S3-VLVTn(d9<wvx4fr?实验2 四位⽐较器⼀、实验⽬的1. 设计四位⼆进制码⽐较器,并在实验开发系统上验证。

数字电路实验计数器

数字电路实验计数器

实验八计数器一、实验目的1.熟悉由集成触发器构成的计数器电路及其工作原理。

2.熟悉掌握常用中规模集成电路计数器及其应用方法。

二、实验原理和电路所谓计数,就是统计脉冲的个数,计数器就是实现“计数”操作的时序逻辑电路。

计数器的应用十分广泛,不仅用来计数,也可用作分频、定时等。

计数器种类繁多。

根据计数体制的不同,计数器可分成二进制(即2”进制)计数器和非二进制计数器两大类。

在非二进制计数器中,最常用的是十进制计数器,其它的一般称为任意进制计数器。

根据计数器的增减趋势不同,计数器可分为加法计数器—随着计数脉冲的输入而递增计数的;减法计数器—随着计数脉冲的输入而递减的;可逆计数器—既可递增,也可递减的。

根据计数脉冲引入方式不同,计数器又可分为同步计数器—计数脉冲直接加到所有触发器的时钟脉冲(CP)输入端;异步计数器—计数脉冲不是直接加到所有触发器的时钟脉冲(CP)输入端。

1.异步二进制加法计数器异步二进制加法计数器是比较简单的。

图是由4个JK(选用双JK74LS112)触发器构成的4位二进制(十六进制)异步加法计数器,图和(c)分别为其状态图和波形图。

对于所得状态图和波形图可以这样理解:触发器FF O(最低位)在每个计数沿(CP)的下降沿(1 → 0)翻转,触发器FF1的CP端接FF0的Q0端,因而当FF O(Q O)由1→ 0时,FF1翻转。

类似地,当FF1(Q1)由1→0时,FF2翻转,FF2(Q2)由1→0时,FF3翻转。

4位二进制异步加法计数器从起始态0000到1111共十六个状态,因此,它是十六进制加法计数器,也称模16加法计数器(模M=16)。

从波形图可看到,Q0 的周期是CP周期的二倍;Q1 是Q0的二倍,CP的四倍;Q2是Q1 的二倍,Q0的四倍,CP的八倍;Q3是Q2的二倍,Q1的四倍,Q0的八倍,CP的十六倍。

所以Q0 、Q1、Q2、Q3分别实现了二、四、八、十六分频,这就是计数器的分频作用。

计数器课程设计

计数器课程设计

计数器课程设计一、课程目标知识目标:1. 学生能够理解计数器的概念,掌握计数器的基本原理和功能。

2. 学生能够运用计数器进行数值的加减运算,并理解其在数学运算中的重要性。

3. 学生能够运用计数器解决简单的实际问题,如统计物品数量等。

技能目标:1. 学生能够正确操作计数器,熟练进行数值的加减运算。

2. 学生能够运用计数器进行数据的收集和整理,培养数据分析和解决问题的能力。

3. 学生能够通过小组合作,共同完成计数器相关的实践活动,提高团队协作能力。

情感态度价值观目标:1. 学生对计数器产生兴趣,培养积极主动学习数学的态度。

2. 学生在运用计数器解决问题的过程中,培养耐心、细心和自信心。

3. 学生通过计数器课程的学习,认识到数学在生活中的广泛应用,增强对数学学科的价值认同。

课程性质:本课程为数学学科的一节实践活动课,注重培养学生的动手操作能力、数据分析和解决问题的能力。

学生特点:二年级学生具有一定的数学基础,好奇心强,喜欢动手操作,但注意力集中时间较短,需要教师引导和激发兴趣。

教学要求:教师应结合学生的特点,设计生动有趣的教学活动,引导学生主动参与,注重培养学生的实际操作能力和团队合作精神。

在教学过程中,关注学生的个体差异,给予每个学生充分的关注和指导,确保课程目标的达成。

通过本课程的学习,使学生能够将计数器知识与实际生活相结合,提高数学素养。

二、教学内容本节教学内容以《数学》二年级教材中“计数器与数的认识”章节为基础,结合课程目标,组织以下内容:1. 计数器的基本结构:引导学生认识计数器的各个部分,如数位、计数珠等,理解其作用。

2. 计数器的使用方法:教授学生如何使用计数器进行数值的加减运算,掌握运算规则。

3. 数的组成与分解:通过计数器操作,帮助学生理解数的组成和分解,培养学生的数感。

4. 实际问题解决:设计实际问题,如统计物品数量,引导学生运用计数器解决问题,巩固所学知识。

5. 小组合作活动:组织小组活动,让学生共同完成计数器相关的任务,培养团队协作能力。

4位计数器课程设计

4位计数器课程设计

4位计数器课程设计一、课程目标知识目标:1. 学生能理解4位计数器的基本原理和组成结构。

2. 学生掌握4位计数器的计数规律,能够进行四位数的认识与读写。

3. 学生能够运用4位计数器进行简单的数学运算,如加法和减法。

技能目标:1. 学生通过操作4位计数器,培养动手实践能力与问题解决能力。

2. 学生能够将4位计数器的知识应用于实际情境,解决相关问题。

3. 学生通过小组合作,提高沟通协调能力,培养团队精神。

情感态度价值观目标:1. 学生对数学产生兴趣,培养积极主动学习的态度。

2. 学生在探索4位计数器的过程中,体验成功与挑战,增强自信心。

3. 学生了解数学在生活中的广泛应用,认识到学习数学的重要性。

分析课程性质、学生特点和教学要求:本课程为小学四年级数学课程,旨在让学生通过操作4位计数器,掌握四位数的基本概念,培养数学运算能力。

学生年龄在9-10岁,好奇心强,喜欢动手操作,但注意力集中时间较短。

因此,教学要求以生动有趣的方式进行,注重学生实践与参与,激发学生兴趣,提高学习效果。

课程目标分解为具体的学习成果,以便后续教学设计和评估。

二、教学内容1. 四位数的基本概念:引入四位数的读写方法,让学生通过4位计数器直观感受四位数的组成,理解千位、百位、十位和个位的概念。

2. 4位计数器的结构与原理:讲解4位计数器的工作原理,引导学生探索其内部结构,理解计数器如何实现数值的递增和递减。

3. 四位数的加减运算:结合4位计数器,教授四位数加减运算的方法,让学生通过实际操作掌握进位和退位的运算规则。

4. 实际应用:设计实际情境,让学生运用4位计数器解决生活中的数学问题,如购物找零、计时等。

教材章节关联:教学内容与课本第四章《多位数认识》相关,涉及以下内容:1. 多位数的读写方法;2. 多位数的组成和计数单位;3. 多位数加减运算;4. 解决实际问题,运用多位数运算。

教学进度安排:1. 第一课时:四位数的基本概念及读写方法;2. 第二课时:4位计数器的结构与原理;3. 第三课时:四位数的加减运算;4. 第四课时:实际应用,巩固所学知识。

数字逻辑实验报告四位左移计数器

数字逻辑实验报告四位左移计数器

实验二十三四位左移计数器
[实验要求] 设计并实现一个左移寄存器和四位二进制异步计数器[实验原理]
CLR “1”
Qi Qi-1 Qi-1 CP
说明:1、i=3、2、1、0
2、S为功能选择信号,S=0时,选左移功能,S=1时,选计数功能。

3、i=0时,CP0直接连时钟CP,左移入数Qi-1连DL。

[与LEXP的连接]
【LEXP调试】
1.置KC2于“停止”,置KC0于“序号”,选实验序号23。

2.置KC2于“运行”,置KC1于“单拍”,单拍运行四位左移计数器,
观察指示灯LS1,LS0,LR3~LR0,LE3~LE0的变化,并填入下表。

3.若某一拍时,LE3~LE0与LR3~LR0状态不同,则应停下来及时查
究试验线路。

4.单拍运行全部正确后,将KC2置于“运行”,KC1置于“连续”,
连续运行四位左移计数器,此时应自动重复显示节拍1至节拍23各派的实验现象。

5.若连续运行速度较快或较慢而不便观察,则可按需调节运行“周
期”。

4位计数器逻辑电路

4位计数器逻辑电路

4位计数器逻辑电路以下是四位计数器逻辑电路的一个常见设计:四位计数器是一个用于计数和显示0到15之间的数值的电路。

它由四个单独的计数器组成,每个计数器负责计数一个十六进制位。

设计的逻辑电路包括以下组件:1.时钟源:提供稳定的时钟信号,用于驱动计数器计数。

可以使用一个时钟发生器或外部时钟源。

2.4个D触发器:每个触发器都负责存储一个十六进制位的计数值。

D触发器接收时钟信号和使能信号,根据时钟信号的上升沿更新和存储计数值。

3.4-1多路复用器(MUX):用于选择并显示当前计数值的四个十六进制位。

多路复用器的输入连接到每个D触发器的输出,根据计数器的使能信号选择一个输出作为显示。

4.七段数码管(或其他显示设备):用于显示选中的计数值。

根据控制信号,对应的段会被点亮,显示相应的十六进制数。

工作原理如下:1.初始状态为0。

所有D触发器的输入和使能信号接收到适当的值。

2.当时钟信号的上升沿到达时,D触发器根据当前输入状态更新其输出状态。

3.计数器使能信号决定了计数器是否开始计数。

如果使能信号为高电平,则触发器开始计数;如果为低电平,则保持当前计数值不变。

4.当计数器达到15(或其他最大计数值)时,触发器的输出将被重置为0,并从头开始重新计数。

5.通过多路复用器的选择信号,将当前计数器的输出连接到对应的数码管,显示当前计数值。

这是一个简单的四位计数器的逻辑电路,可以根据特定需求进行扩展和定制。

实际设计中可能会有其他的功能和控制信号,但以上是一个基本的工作原理示例。

实验4 双向计数器设计

实验4 双向计数器设计

实验四 双向计数器设计一、实验目的学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL 设计技术; 掌握双向异步清零计数器(加/减1器)的设计方法。

二、设计描述及方法1. 设计电路的接口描述。

图5-1双向含异步清0和同步时钟使能的4位加法器管脚图如图5-1,引脚说明如下: • clk 是计数端口;• reset 是异步清零信号,高电平有效;• enable 是使能端,当它为高电平时,才能将加1器的输出值加载到锁存器的数据端 • dir 是加减操作的控制选择,高电平加1器;低电平减1器 • yout[3..0]是四位数据输出端,通过锁定数码管用以显示输出数据; •cout 是计数溢出端。

2. 真值表。

如表5-1所示:表5-1 双向含异步清0和同步时钟使能的4位加法器真值表3. 电路设计基本方法To 7-segment decoder To a LED这是一个单时钟十六进制计数器;“双向”指的是加1还是减1操作,可以用语句if dir=’1’then …else实现;“异步清零”指的是只要reset为高电平,立即清零,而不需要等待时钟脉冲(计数脉冲)到来;“同步时钟使能”是指当enable有效时还不能立即把内部输出值加载到锁存器的数据端,而是需要等到下一个时钟,在时钟信号的控制下再相应。

三、设计步骤完成计数器的VHDL描述,并对其进行波形仿真,确定结果正确。

四、硬件验证(选做)1.选择实验电路结构5对该设计进行硬件验证。

在该实验电路结构中,将键8(PIO7)对应为reset控制信号,键7(PIO6)对应为enable控制信号,键6(PIO5)对应为dir控制信号,yout是计数输出接数码1(PIO19-PIO16,低位靠右),计数溢出cout接发光管D8(PIO15);时钟clk接clock0,通过短路帽选择4Hz信号。

2.查阅系统引脚对照表,完成引脚锁定。

3.重新编译成功后,完成器件的下载配置。

数电实验四——精选推荐

数电实验四——精选推荐

实验四:时序逻辑电路(集成寄存器和计数器)一、实验目的:1.熟悉中规模集成计数器的逻辑功能和使用方法;掌握用集成计数器组成任意模数为M的计数器。

2.加深理解移位寄存器的工作原理及逻辑功能描述;熟悉中规模集成移位寄存器的逻辑功能和使用方法;掌握用移位寄存器组成环形计数器的基本原理和设计方法。

二、知识点提示和实验原理:㈠计数器:计数器的应用十分广泛,不仅可用来计数,也可用于分频、定时和数字运算。

计数器种类繁多,根据计数体制不同,计数器可分为二进制计数器和非二进制计数器两大类。

在非二进制计数器中,最常用的是十进制计数器,其他的称为任意进制计数器。

根据计数器的增减趋势的不同,计数器可分为加法计数器和减法计数器。

根据计数脉冲引入方式不同,计数又可分为同步计数器和异步计数器。

在实际工程应用中,一般很少使用小规模的触发器组成计数器,而是直接选用中规模集成计数器。

用集成计数器实现任意M进制计数器:一般情况任意M进制计数器的结构分为3类,第一种是由集成二进制计数器构成,第二种为移位寄存器构成的移位寄存型计数器,第三种为集成触发器构成的简单专用计数器。

当M较小时通过对集成计数器的改造即可以实现,当M较大时,可通过多片计数器级联实现。

实现方法:(1)当所需计数器M值小于集成计数器本身二进制计数最大值时,用置数(清零)法构成任意进制计数器;⑵当所需计数器M值大于集成计数器本身二进制计数最大值时,可采用级联法构成任意进制计数器。

常用的中规模集成器件:4位二进制计数器74HC161,十进制计数器74HC160,加减计数器74HC191、74HC193,异步计数器74LS290。

所有芯片的电路、功能表见教材。

㈡寄存器:寄存器用来寄存二进制信息,将一些待运算的数据、代码或运算的中间结果暂时寄存起来。

按功能划分,寄存器可分为数码寄存器和移位寄存器两大类。

数码寄存器用来存放数码,一般具有接收数码、保持并清除原有数码等功能,电路结构和工作原理郡比较简单。

计算机组成原理实验报告4-微程序计数器uPC实验

计算机组成原理实验报告4-微程序计数器uPC实验

千里之行,始于足下。

计算机组成原理实验报告4-微程序计数器uPC实验计算机组成原理实验报告4-微程序计数器uPC实验一、实验目的本次实验的目的是通过设计和实现微程序计数器uPC,加深对计算机组成原理中微程序控制的理解和掌握。

二、实验原理微程序控制是一种使用微操作指令来实现指令解码和控制的方法。

其基本原理是将指令的每个微操作独立编码,并存放在存储器中,再通过微程序计数器uPC逐步读取并执行这些微操作指令,从而实现对硬件的控制。

本次实验中,我们设计的微程序计数器uPC采用基于有限状态机的方式。

其工作流程如下:1. 在上升沿时,根据当前状态和输入,更新下一个状态。

2. 在状态更新完成后,判断是否需要进行微指令计数器的更新,如果需要,则计数器自增。

3. 根据计数器的值,从微指令存储器中读取相应的微指令。

4. 执行微指令。

三、实验步骤本次实验的主要步骤如下:第1页/共3页锲而不舍,金石可镂。

1. 设计微指令的编码对应的控制信号,并将其存储在微指令存储器中。

2. 设计并实现基于有限状态机的微程序计数器uPC。

3. 将uPC与微指令存储器、数据通路、输入设备等连接起来,以实现对硬件的控制。

四、实验结果在实验过程中,我们完成了微指令的编码,并将其存储在微指令存储器中,设计并实现了基于有限状态机的微程序计数器uPC,并将uPC与其他模块连接起来。

经过测试,我们发现uPC能够正确地执行微指令,并能够对硬件进行正确的控制。

五、实验总结通过本次实验,我们深入了解了微程序控制的原理和工作方式,加深了对计算机组成原理中微程序控制的理解和掌握。

在实验过程中,我们通过设计和实现微程序计数器uPC,对于掌握微程序控制有了更深入的认识,并且锻炼了自己的设计和调试能力。

虽然在实验过程中遇到了一些困难和问题,但通过思考和团队合作,我们最终成功地完成了实验并取得了满意的结果。

通过本次实验,我们不仅提高了对计算机组成原理的理论理解,也增强了自己的动手实践能力。

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

实验四4 位计数器设计1. 实验目的学习quartusii 和modelsim 的使用方法;学习原理图和veriloghdl 混合输入设计方法;掌握4位计数器设计的设计及仿真方法。

2. 实验原理设计其中的计数器模块CNT4E和数码管译码驱动模块DECL7S勺verilogHDL代码,并作出整个系统仿真。

2.1 4位计数器模块代码module CNT4B(out, CLK, RST); //output out; //in put CLK, RST; //reg [3:0] out; //always (posedge CLK or n egedge RST) //beginif(!RST) //out <= 4'dO;elseout <= out + 1; //enden dmodule低电平复位每一个clk计数效果图:定义模块名和各个端口定义输出端口定义输入时钟和复位定义四位计数器上升沿时钟和下降沿复位2.2七段数码管代码module segled(out1,a); // input [3:0]a; //output [6:0]out1; //reg [6:0]out1; //reg always(a)// begin case(a) //case4'b0000:out1<=7'b0111111;4'b0001:out1<=7'b0000110;4'b0010:out1<=7'b1011011;4'b0011:out1<=7'b1001111;4'b0100:out1<=7'b1100110;4'b0101:out1<=7'b1101101;4'b0110:out1<=7'b1111101;4'b0111:out1<=7'b0000111;4'b1000:out1<=7'b1111111;4'b1001:out1<=7'b1101111;4'b1010:out1<=7'b1110111;4'b1011:out1<=7'b1111100;4'b1100:out1<=7'b0111001;4'b1101:out1<=7'b1011110;4'b1110:out1<=7'b1111001;4'b1111:out1<=7'b1110001;endcase end en dmodule // 模块结束效果图:定义模块名和输入输出端口输入一个3位矢量输出一个6位矢量型变量用于always语句语句用于选择输出CNT4B:b2v inst敏感信号a2.3 综合模块代码// Copyright (C) 1991-2013 Altera Corporation// Your use of Altera Corporation's design tools, logic functions// and other software and tools, and its AMPP partner logic// functions, and any output files from any of the foregoing// (including device programming or simulation files), and any// associated documentation or information are expressly subject // to the terms and conditions of the Altera Program License// Subscription Agreement, Altera MegaCore Function License// Agreement, or other applicable license agreement, including,// without limitation, that your use is for the sole purpose of// programming logic devices manufactured by Altera and sold by // Altera or its authorized distributors.Please refer to the// applicable agreement for further details.// PROGRAM "Quartus II 64-Bit"// VERSION "Version 13.1.0 Build 162 10/23/2013 SJ Web Edition"// CREATED "Tue Apr 11 22:35:09 2017"module cou(CLK,RST,); in put wire CLK; in put wireRST;output wire [6:0] Q;wire [3:0] SYNTHESIZED_WIRE_0; CNT4B b2v_i nst(.CLK(CLK),.RST(RST), .out(SYNTHESIZED_WIRE_0)); segled b2v_i nst1(•a(SYNTHESIZED_WIRE_0), .out1(Q)); en dmodule效果图:v -_E3. 实验设备kx3c10F+开发板,电脑。

4. 实验步骤 4.1编译4.1.1编译结果如下图所示:一一丿 y►■审包办暫或♦ x e «(■rnjK±1tnifrtEr * 盘囂 *GmpiiKii Aiixft • curiio ■»■*-♦ ■*jv*I^TlHLrO^snr^fkl- B>111 w SUIT・ Bhla"5 FlwS^inEp Q UAW □ M -lt ■smoLN *知.•卜 2 c,叮U13弟皿・甲3 *HW|eMTN4«nlTop-rwl Erttfiiame0 FtarDS r EwmwrOdniij □MMHvanEwcii > j 出 m何“itNHTh^Hi^sHnil> 13PWreftII f UM 1 < 1.〕rifcalM< 3s*] , 』ni-B^iiMi 11 Triii "ntfiv<1『H W 1 • jCNTT4B:b2v inst segled :b2v JnstlCLK QRsrl >DUtl[6..Q]a [王®编译解释:在这个报告中,我们可以看到如下信息:Total logic elements 11/5136(<1%): 该芯片中共有5136 个LE 资源,其中的11个在这个工程的这次编译中得到了使用。

Total comb in atio nal fun ctio ns 11/5136(<1%): 该芯片的5136 个LE资源中,其中11个用于实现组合逻辑。

Dedicated logic registers 4/5136(0%): 该芯片的5136个LE资源中,其中4个用于实现寄存器,即时序逻辑。

从上述信息中,可以得到组合逻辑与时序逻辑的使用比例一一11/4= 2.75:1 。

4.1.2综合出来的电路图4仙----- fCLH 皿3 Q I <15 舶----------- 百hiM•..... ■扪us廉电路图解释:从以上电路图可以看出本电路图主要由计数器(CNT4B 和七段数码管显示程序(segled )组成。

从CNT4B 的CLK 端输入CLK 信号,RST 为低电平复位信号,本实验是四位二进制计数 器可以计数16个,每个CLK 上升沿计数一次,其中七段数码管是通过输入的四位二进制数 来选择相应的断码进行输出显示。

4.2管脚分配管脚连接:通过双击Location 选择与芯片上相应的引脚进行连接。

4.3仿真1.测试模块的代码对输入信号定义reg 型变量 输出定义为wire 型 变量初始化< >E 亠IML . Q. *Top V lewWire Bond with Exposed PadCyctone IP EP3C5E144CB□ntCMrJKK.i.Fnp■ ffiLM *2; £3VIIMI HR fS3p J ■rp ■>FM WJ IU ■ra_-*Ui Vortal *X U遊 J u ■ **_<aLi V 14/M *; 札戟3 as *ush曲AJLIvr-N^vv: 0A 3!N_W■L3 Y “&1:module test; reg CLK, RST; // wire [6:0]Q; // in itial beg in //RST = 1'b0;::日wO吟阳U M - I ; .44*^%J U IU E亠4MM :MM14 AWiuii :>'3*^1 3■: it JkiKAiat眾rLir■Efl MMICLK = 1'bO;endalways #50 CLK=~CLK; // 产生时钟信号cou U1(.CLK(CLK),.RST(RST),.Q(Q)); // endmodule2.modesim 仿真图仿真图解释:通过仿真图我们可以看到程序一开始低电平复位,然后 rst 高电平。

计数器开始计数,每过一个clk 上升沿,七段数码管相应断码加 1,与理论值相同,所以仿真验证成功,可以进行硬件仿真4.4下载验证元件例化口 *'OQ !"- »1 11 * ? t '-r•||||l5 ■昂* JU* ** * iI ** Kru| >44 wnznjti ■:豎ill ■ IIfB DmiI .•明I5. 实验体会通过本次实验我学到了计数器的工作原理,计数器虽然也曾经在数电上学过,但是用Verilog 代码编写出来感觉还是很神奇的,而且用代码写出来的计数器简单易理解。

由此认识到这门课程进行数字设计非常有效率,所以在今后的学习中一定努力学习,勤学多问。

对于这次实验,由于比较简单,所以做的挺顺利的,基本没什么问题。

相关文档
最新文档