精华内容
下载资源
问答
  • verilog实现计数器和分频器,是初学者可以参考的。 计数器是分方向控制的,分频可以实现偶数分频奇数分频
  • 36个Verilog设计基础代码移位寄存器编码器加法减法器分频器计数器逻辑源码Quartus工程文件合集, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。 38decoder 4位串入串出...
  • 2018级北京邮电大学电子院大二下数电实验第三题。里面包含了全部文件包括分析。这个其实不难。学弟学妹们可以下载下来学习。想直接交作业之前看看老师的要求有没有变。
  • 数字时钟课程设计,用到振荡器;分频器计数器;译码器;显示管等仪器,要的来下。
  • 分频器\计数器\led显示实验平台实现功能代码 实验平台 硬件:使用Xilinx Artix-7 FPGA芯片,具体型号为XC7A75TFGG484-1。 软件:Vivado 2018.1 实现功能 1)时钟分频器产生1Hz时钟,设计一个10进制计数器。以递减...

    分频器\计数器\led显示

    实验平台

    硬件:使用Xilinx Artix-7 FPGA芯片,具体型号为XC7A75TFGG484-1。
    软件:Vivado 2018.1

    实现功能

    1)时钟分频器产生1Hz时钟,设计一个10进制计数器。以递减方式工作。
    2)除了计数器的功能外,通过板上拨动开关,增加右移和循环右移运行模式,移动速度同计数器的计数频率。
    3)通过板上拨动开关,选择计数器可以以递增或递减模式工作,可以实现计数器计数频率的变化

    代码

    top.v

    `timescale 1ns / 1ps
    
    module top( 
    	input rst, 
    	input clk,//100MHz
    	input flag,//counter
    	input flag1,//Hz
    	input flag2,  //display
    	output [7:0] led
    );   
    wire divclk;  
         divclk U1(.rst1(rst),.flag1(flag1),.clk1(clk),.divclk1(divclk));   
         led U2(.rst2(rst),.divclk2(divclk),.flag(flag),.flag2(flag2),.led8(led)); 
    endmodule 
    
    

    divclk.v

    `timescale 1ns / 1ps
    //
    // Company: 
    // Engineer: 
    // 
    // Create Date: 2019/12/07 21:12:09
    // Design Name: 
    // Module Name: divclk
    // Project Name: 
    // Target Devices: 
    // Tool Versions: 
    // Description: 
    // 
    // Dependencies: 
    // 
    // Revision:
    // Revision 0.01 - File Created
    // Additional Comments:
    // 
    //
    
    module divclk(
    	input clk1,//100MHz
    	input rst1,//
    	input flag1,//
    	output reg divclk1//
    );
    reg[31:0] counter1; 
    always @(posedge clk1 or posedge rst1)
    begin
    if(rst1) 
    begin         
      counter1<=0;  
     divclk1<=0;    
     end    
    else   
    if(flag1==0)
    begin
      if(counter1==32'h02faf07f) //1Hz
          begin  
          counter1<=0;
          divclk1<=~divclk1; 
          end    
      else    
          counter1<=counter1+1;   
    end
    
    else if(flag1==1)
    begin
      if(counter1==32'h04c4b3f) //10Hz
          begin  
          counter1<=0;
          divclk1<=~divclk1; 
          end    
      else    
          counter1<=counter1+1;   
    end
    end   
    endmodule 
    

    led.v

    `timescale 1ns / 1ps 
    
    module led( 
    	input divclk2, 
    	input rst2,
    	input flag,//counter
    	input flag2, //display
    	output reg [7:0] led8    
    ); 
    
    reg[3:0] counter2;
    always@( posedge divclk2 or posedge rst2 )
    begin
        if(flag==0)
            begin
            if(rst2)
            counter2<=9;
            else 
                begin
                if(counter2==0)
                counter2<=9; 
                else      
                counter2<=counter2-1;
                end   
            end
        else if(flag==1)
            begin
            if(rst2)
                counter2<=0;
            else 
                begin
                if(counter2==9)
                counter2<=0; 
                else      
                counter2<=counter2+1;
                end
            end   
    end
    
    //display
    always @*   
      begin
      if(flag2==0)
      begin    
      case(counter2)   
         4'b0000:  led8=8'b00000001;   
         4'b0001:  led8=8'b00000010;    
         4'b0010:  led8=8'b00000100;
         4'b0011:  led8=8'b00001000; 
         4'b0100:  led8=8'b00010000;    
         4'b0101:  led8=8'b00100000;   
         4'b0110:  led8=8'b01000000;   
         4'b0111:  led8=8'b10000000;     
         default:  led8=8'b00000000;         
      endcase
      end
      else if(flag2==1)
      begin
        case(counter2)   
         4'b0000:  led8=8'b00000000;    
         4'b0001:  led8=8'b00000001;    
         4'b0010:  led8=8'b00000010;
         4'b0011:  led8=8'b00000011; 
         4'b0100:  led8=8'b00000100;    
         4'b0101:  led8=8'b00000101;   
         4'b0110:  led8=8'b00000110;   
         4'b0111:  led8=8'b00000111;   
         4'b1000:  led8=8'b00001000;   
         4'b1001:  led8=8'b00001001;         
         default:  led8=8'b11111111;     
      endcase
      end 
      end
    endmodule 
    
    展开全文
  • div_last.v 脉冲吞咽计数器的可编程分频器
  • Proteus 仿真要求:利用定时/计数器 T1 在 P1.5 引脚得到输入脉冲信号的 4 电路图 代码: //利用定时/计数器 T1 在 P1.5 引脚得到输入脉冲信号的 4 分频 #include<reg51.h> sbit led5=P1^5; void t_1...

    Proteus 仿真要求:利用定时/计数器 T1 在 P1.5 引脚得到输入脉冲信号的 4 分

    电路图
    在这里插入图片描述
    代码:

    //利用定时/计数器 T1 在 P1.5 引脚得到输入脉冲信号的 4 分频
    #include<reg51.h>
    
    sbit led5=P1^5;
    void t_1() interrupt 3		  
    {
     TH1=0xfe;			//重装初值
     TL1=0xfe;
     led5=~led5;
    }
    
    void main()
    {
     TMOD=0x60;				//定时器0计数,采用方式2
     TH1=0xfe;			   //设置初值
     TL1=0xfe;
     EA=1;ET1=1;			//开启总中断和T0中断
     TR1=1;					//允许中断
     while(1) ;
    }
    

    这里注意是定时器T1还是T0,如果定时器采用T0,输入信号的IO口为P3.4;如果定时器采用T1,输入信号的IO口为P3.5。另外还有修改相应寄存器值。

    展开全文
  • EDA 电子设计自动化VHDL系列课程7 – 分频器和计数器 本EDA系列介绍的系统环境是: 软件: VHDL编程语言 ; 工具: Quartus13.0 FPGA 芯片是: Cyclone III : EP3C10E144C8 电路板细节在: ...

    EDA 电子设计自动化VHDL系列课程7 – 分频器和计数器

    本EDA系列介绍的系统环境是:

    软件: VHDL编程语言 ;
    工具: Quartus13.0
    FPGA 芯片是: Cyclone III : EP3C10E144C8
    电路板细节在: https://blog.csdn.net/weixin_40935675/article/details/103316855

    分频器和计数器 的VHDL 示例

    对 频率较高的 时钟信号clk 分频,产生 低频 clock 信号,然后用q对其计数。在用mq 对信号q技术。因此 mq 的周期是 q 的 16倍。
    其中有个状态信号 cout 表示分频成功与否,链接LED灯,可以看到变化的输出。

    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    
    ENTITY fenpinqi IS
        PORT( clk: IN STD_LOGIC;  cout: OUT STD_LOGIC;  
    			q: BUFFER INTEGER RANGE 0 TO 15;   
    			mq: BUFFER INTEGER RANGE 0 TO 15	);
    END fenpinqi;
    
    ARCHITECTURE one OF fenpinqi IS
    CONSTANT FP: INTEGER:= 39999999;
    SIGNAL qb: INTEGER RANGE 0 TO FP; 
    SIGNAL clock, mclock: STD_LOGIC;
    
    BEGIN
        PROCESS(clk)
        BEGIN 
            IF clk'EVENT AND clk = '1' THEN
                    qb <= qb + 1;
                    IF qb = FP THEN 
                    	cout <= clock;  clock <= NOT clock;  qb <= 0; 
                    END IF;
            END IF;
       END PROCESS;
    	
    	PROCESS(clock)
    	BEGIN
    	     IF clock'EVENT AND clock = '1' THEN  
    		       q <= q + 1;
    				 IF q = 15 THEN mclock <= mclock;   q <= 0;  END IF;
    		  END IF;
    	END PROCESS;
    	
    	PROCESS(mclock)
    	BEGIN
    	     IF mclock'EVENT AND mclock = '1' THEN  mq <= mq + 1;  END IF;
    	END PROCESS;
    
    END one;
    
    展开全文
  • 北邮数电实验报告三 分频器 计数器 VHDL
  • 分频器的作用: 在一个扬声器系统里,人们把箱体、分频电路、扬声器单元称为扬声器系统的三大件,而分频电路对扬声器系统能否高质量地还原电声信号起着极其重要的作用。尤其在中、高频部分,分频电路所起到的作用就...
  • 硬件设计的电路,是用集成计数器74LS161构成可编程分频器
  • FPGA的VHDL实现 利用d 触发器和计数器的时钟频率分频器,并用Modelsim仿真
  • --27MHZ分频成1hz: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FENPIN IS PORT(CLK_IN:IN STD_LOGIC; CLK_OUT:OUT STD_LOGIC); END ENTITY FENPIN;...
  • 分频器+计数器+数码管显示VHDL

    千次阅读 2020-03-24 20:29:13
    天马星空,纯理论写代码,未实操 1.方案一 波形(RTL)原理图+代码设计 代码 1 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;...-- 任意Hz分频器 entity divide is gen...

    天马星空,纯理论写代码,未实操

    1.方案一

    • 波形(RTL)原理图+代码设计
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 代码
      • 1
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_arith.all;
    -- 50Mhz
    -- 任意Hz分频器
    entity divide is
    generic
    (
    	n:integer:=10;				--n分频
    	m:integer:=3				--高电平
    );
    port
    (
    	clkin:in std_logic; 		--时钟输入		
    	clkout: out std_logic	--时钟输出
    );
    end divide;
    -- *************************************************************
    architecture fenpin of divide is
    signal count:integer range 0 to n-1;		-- 计数值
    begin 
    	process(clkin)
    	begin 
    		if(clkin' event and clkin= '1')then
    			if(count<n-1) then
    				count<=count+1;
    			else
    				count<=0;
    			end if;
    		end if;
    	end process;
    	clkout<='1' when count<m else
    		'0';
    end fenpin;
    		
    
    
    
    
    • 2
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_arith.all;
    
    entity cnt is
    port
    (
    	clk,clr :in std_logic;
    	Q:out integer range 0 to 15
    );
    end cnt;
    
    architecture counter of cnt is
    signal temp: integer range 0 to 15;
    begin 
    	process(clk,clr)
    	begin 
    		if(clr='0') then
    				temp<=0;
    		elsif(clk'event and clk= '1')then
    			if temp=9 then 
    				temp<=0;
    			else 
    				temp<=temp+1;
    			end if;
    		end if;
    		Q<=temp;
    	end process;
    end counter;
    		
    
    
    
    • 3
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_arith.all;
    
    entity code47 is
    port
    (
    	in47:in integer range 0 to 15;
    	seq:out std_logic_vector(6 downto 0);
    	s:out std_logic_vector(3 downto 0)
    );
    end code47;
    -- 共阳管
    architecture yima of code47 is
    
    begin
    	process(in47)
    	begin
    		s<="1000";
    		case in47 is
    			when 0 => seq<="1000000";
    			when 1 => seq<="1111001";
    			when 2 => seq<="0100100";
    			when 3 => seq<="0110000";
    			when 4 => seq<="0011001";
    			when 5 => seq<="0010010";
    			when 6 => seq<="0000010";
    			when 7 => seq<="1111000";
    			when 8 => seq<="0000000";
    			when 9 => seq<="0010000";
    			when others => seq<="1111111";
    		end case;
    			
    	end process;
    end yima;
    				
    		
    
    
    • 4
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_arith.all;
    
    entity chengxu is
    port
    (
    	clk: in std_logic;
    	clr: in std_logic;
    	seq:out std_logic_vector(6 downto 0);
    	s:out std_logic_vector(3 downto 0)
    );
    end chengxu;
    
    architecture Dec of chengxu is
    component divide 
    generic
    (
    	n:integer;   --n分频
    	m:integer	  --高电平
    );
    port
    (
    	clkin:in std_logic;
    	clkout: out std_logic
    );
    end component;
    
    component cnt 
    port
    (
    	clk,clr :in std_logic;
    	Q:out integer range 0 to 15
    );
    end component;
    component code47 
    port
    (
    	in47:in integer range 0 to 15;
    	seq:out std_logic_vector(6 downto 0);
    	s:out std_logic_vector(3 downto 0)
    );
    end component;
    
    
    signal clkout:std_logic;
    signal Qtemp:integer  range 0 to  15;
    
    begin
    	U1: divide generic map(10,3)
    	port map(clk,clkout);
    	U2: cnt port map(clkout,clr,Qtemp);
    	U3: code47 port map(Qtemp,seq,s);
    end Dec;
    
    1. 方案二
    • 波形(RTL)原理图+代码设计
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 代码
    • 1
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_arith.all;
    -- 50Mhz
    -- 任意Hz分频器
    entity divide is
    generic
    (
    	n:integer:=4;   			--n分频
    	m:integer:=2	  			--高电平
    );
    port
    (
    	clkin:in std_logic;		--时钟输入
    	clkout: out std_logic	--时钟输出
    );
    end divide;
    -- ****************************************************
    architecture fenpin of divide is
    signal count:integer range 0 to n-1;    --计数值
    begin 
    	process(clkin)
    	begin 
    		if(clkin' event and clkin= '1')then
    			if(count<n-1) then
    				count<=count+1;
    			else
    				count<=0;
    			end if;
    		end if;
    	end process;
    	clkout<='1' when count<m else
    		'0';
    end fenpin;
    		
    
    
    
    
    • 2
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_arith.all;
    -- ****************************************************
    -- 任意进制计数器 0-9999
    entity cntx is
    generic
    (	
    	num :integer range 0 to 9999:=100	--计数上限
    );
    port
    (
    	clk,clr :in std_logic;					--时钟输入,清零
    	Q:out integer range 0 to num-1		--计数输出
    );
    end cntx;
    -- ****************************************************
    architecture counter of cntx is
    signal temp: integer range 0 to num-1;
    begin 
    	process(clk,clr)
    	begin 
    		if(clr='0') then
    				temp<=0;
    		elsif(clk'event and clk= '1')then
    			if temp=num-1 then 
    				temp<=0;
    			else 
    				temp<=temp+1;
    			end if;
    		end if;
    		Q<=temp;
    	end process;
    end counter;
    		
    
    
    
    • 3
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_arith.all;
    -- ****************************************************
    -- 四位共阳数码管数值显示
    entity codexx is
    generic
    (
    	NumMax:integer range 0 to 9999:=100  --选择计数上限
    );
    port
    (
    	incode:in integer range 0 to NumMax-1;  	--数值输入
    	clk: in std_logic;							--时钟控制
    	seq:out std_logic_vector(6 downto 0);	--段码
    	s:out std_logic_vector(3 downto 0)		--位码
    );
    end codexx;
    -- ****************************************************
    architecture yima of codexx is
    
    type TT is array(3 downto 0) of integer range 0 to 9;  --自定义数组
    signal temp:TT;
    signal stemp:std_logic_vector(3 downto 0);
    signal biao:integer range 0 to 3:=0;						
    begin
    	
    	temp(0)<=incode rem 10;
    	temp(1)<=(incode/10)  rem 10;
    	temp(2)<=(incode/100)  rem 10;
    	temp(3)<=(incode/1000);
    	A:process(clk)				--进程A 检测上升沿,控制显示位
    	begin 
    		if clk'event and clk='1' then
    			if(biao=3) then
    				biao<=0;
    			else
    				biao<=biao+1;
    			end if;
    		end if;
    	end process A;	
    	B:process(biao)			--进程B 数值显示
    	begin
    		stemp <= "0000";
    		stemp(biao)<='1';
    		case temp(biao) is
    			when 0 => seq<="1000000";
    			when 1 => seq<="1111001";
    			when 2 => seq<="0100100";
    			when 3 => seq<="0110000";
    			when 4 => seq<="0011001";
    			when 5 => seq<="0010010";
    			when 6 => seq<="0000010";
    			when 7 => seq<="1111000";
    			when 8 => seq<="0000000";
    			when 9 => seq<="0010000";
    			when others => seq<="1111111";
    		end case;
    		s<=stemp;
    	end process B;
    	
    end yima;
    				
    		
    
    
    • 4
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    use ieee.std_logic_arith.all;
    -- ****************************************************
    entity chengxu is
    port
    (
    	clk: in std_logic;					--时钟输入
    	clr: in std_logic;					--清零
    	seq:out std_logic_vector(6 downto 0);		--段码
    	s:out std_logic_vector(3 downto 0)			--位码
    );
    end chengxu;
    -- ****************************************************
    architecture Dec of chengxu is
    component divide 
    generic
    (
    	n:integer;   --n分频
    	m:integer	  --高电平
    );
    port
    (
    	clkin:in std_logic;
    	clkout: out std_logic
    );
    end component;
    -- ****************************************************
    component cntx 
    generic
    (	
    	num :integer 								--计数上限
    );
    port
    (
    	clk,clr :in std_logic;					--时钟输入,清零
    	Q:out integer range 0 to num-1		--计数输出
    );
    end component;
    -- ****************************************************
    component codexx 
    generic
    (
    	NumMax:integer 								--选择计数上限
    );
    port
    (
    	incode:in integer range 0 to NumMax-1;  	--数值输入
    	clk: in std_logic;							--时钟控制
    	seq:out std_logic_vector(6 downto 0);	--段码
    	s:out std_logic_vector(3 downto 0)		--位码
    );
    end component;
    -- ****************************************************
    signal clkout:std_logic;
    signal Qtemp:integer ;
    begin
    	U1: divide generic map(10,3)
    	port map(clk,clkout);
    	U2: cntx generic map(10)
    	port map(clkout,clr,Qtemp);
    	U3: codexx generic map(10)
    	port map(Qtemp,clk,seq,s);
    end Dec;
    
    展开全文
  • 集成电路作业,Verilog设计3-8译码器、8位全加器、四分之一分频器(时钟周期clk=50ns),内含相对应的测试代码。
  • 多模分频器——递减计数器设计1.递减计数器原理图 1.递减计数器原理图 导师的项目是低功耗,尽量减少功耗。
  • 三、分频电路 (1)简单的计数器 计数器实质是对输入的驱动时钟进行计数,所以计数器在某种意义上讲,等同于对时钟进行分频。例如一个最大计数长度为N=2^n(从0计数到N-1)的计数器,...
  • 远程FPGA虚拟实验平台用SystemVerilog HDL实现计数器和分频器原理计数器分频器源代码分频器VirtalBoard模块ClockDivider模块测试/保存/提交 原理 计数器 本实验中,材料给出的计数器是二进制来分频的,就搞得还挺...
  • 实验目的与要求实验名称:数控分频器设计实验目的:将4位计数器改成8位计数器形式,完成全部仿真测试硬件测试内容实验原理给定计数模N,当计数到N时,对计数器发出一个清零信号,使其从头开始计数,以此循环往复如果控制...
  • 偶数分频器比较简单,完全可以使用计数器完成分频。如,10Mhz位偶数分频器,占空比位50%,要求分后为1hz,分频倍数N=10M。当计数器从0计到10M/2-1时,计数器反转。 二、具体实现方法 代码如下: module ClockDivider...
  • 实验六Verilog设计分频器计数器电路答案解析.doc
  • 该程序设计分为三部分,分别是:顶层元件调用程序、通用偶数分频器、加法计数器。1)通用偶数分频器--通用偶数分频器 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_...
  • FPGA之计数器分频器

    千次阅读 2018-10-21 11:28:19
    (用到2路选择。复位不复位) 其次,怎样实现,一个时钟过来,记一次数就是加一次,保存(用到D触发器),满之后为0; 最后,按照以上分析,进行编写程序。 module cunt3(clk,rst,count); input clk,rst;...
  • Logisim分频器

    2020-11-28 16:30:23
    数字逻辑课程实验,logisim支持的circ文件,包含模6至模41分频器(用于秒表制作),将logisim软件产生的频率划分为合适的大小,以保证计数器做的秒表能按照精确的时间计时。
  • 分频器计数器、信号边沿检查

    千次阅读 2018-12-02 11:46:37
    分频器: 以系统时钟为标准,通过分频来得到所需要的时钟。 偶数分频:使用一个计算器,以系统时钟为标准,在时钟上升沿(下降沿)进行加“1”操作,计数器最大值为该偶数值的一半减一。输出的分频...
  • 51单片机源程序,注释特齐全
  • 第二部分 分频器以及实现 计数器的功能就是对脉冲CP进行计数 常用在分频,定时,产生节拍脉冲脉冲序列,进行数字运算等 计数器其实在设计中经常遇到的 计数的场合有很多  比如流水线产品数量统计 定时固定长...
  • 摘 要:介绍了一种基于FPGA的双模前置...整数分频器的实现比较简单,可采用标准的计数器或可编程逻辑器件设计实现。但在某些场合下,时钟源与所需的频率不成整数倍关系,此时可采用小数分频器进行分频。本文利用Verilo
  • 数字分频器原理及设计13/12/31 数字分频器原理及设计_数字电路_-Dz3w.Com电子技术专利全集>> 智能照明解决方案返回首页 电子问答 通信设备 工具仪器 在线计算 EDA技术 电路图库 嵌入式 经验心得 电子基础 电子...
  • Verilog 分频器设计

    万次阅读 多人点赞 2019-11-19 20:40:59
    在数字电路中,使用 Verilog 生成不同频率的时钟占空比是较为常见的一种设计,主要分为偶数分频,奇数分频,也可以任意进行分频占空比的配置; 1、偶分频 偶分频电路指的是分频系数为 2、4、6、8 ... 等偶数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,147
精华内容 2,858
关键字:

分频器和计数器的区别