在数字电路中,常需要对较高频率的时钟进行分频操作,得到较低频率的时钟信号。我们知道,在硬件电路设计中时钟信号时非常重要的。 下面我们介绍分频器的VHDL描述,在源代码中完成对时钟信号CLK的2分频,4分频,8分频,16分频。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clkdiv IS ARCHITECTURE rtl OF clk_div IS clk_div2 <= count(0); 对于分频倍数不是2的整数次幂的情况,我们只需要对源代码中的计数器进行一下计数控制就可以了,如下面源代码描述一个对时钟信号进行6分频的分频器。 ENTITY clkdiv IS ARCHITECTURE rtl OF clk_div IS BEGIN clk_div6 <= clk_temp; 前面两个分频器的例子描述的将时钟信号进行分频,分频后得到的时钟信号的占空比为1:1。在进行硬件设计的时候,往往要求得到一个占空比不是1:1的分频信号,这时仍采用计数器的方法来产生占空比不是1:1的分频信号。下面源代码描述的是这样一个分频器:将输入的时钟信号进行16分频,分频信号的占空比为 1:15,也就是说,其中高电位的脉冲宽度为输入时钟信号的一个周期。 ENTITY clkdiv IS ARCHITECTURE rtl OF clk_div IS PROCESS(clk) 对于上述源代码描述的这种分频器,在硬件电路设计中应用十分广泛,设计人员常采用这种分频器来产生选通信号、中断信号和数字通信中常常用到的帧头信号等 |
分频器VHDL描述
时间: 2024-12-21 21:59:56
分频器VHDL描述的相关文章
VHDL学习之TEXTIO在仿真中的应用
TEXTIO 在VHDL 仿真与磁盘文件之间架起了桥梁,使用文本文件扩展VHDL 的仿真功能.本文介绍TEXTIO 程序包,以一个加法器实例说明TEXTIO 的使用方法,最后使用ModelSim 对设计进行仿真,并分析仿真结果.在对VHDL 源程序进行仿真时, 由于有的输入输出关系仅仅靠输入波形或编写testbench 中的信号输入是难以验证结果正确性的,例如, 设计8 位加法器,如果将所有的输入都验证一遍, 是非常麻烦的,因为要全面判断输出是否正确需要一个个的验证.此外,若用VHDL 设计一个
VHDL基础1
Description Structure 一个可综合的VHDL描述中一般由3部分组成:LIBRARY declarations.ENTITY.ARCHITECTURE Library(库)用来设计重用和代码共享,使代码结构更清晰 1 LIBRARY library_name; 2 USE library_name.package_name.package_parts; 常用的三个Libray:ieee.std.work 其中std.work是默认可见的,不需声明,ieee需要明确的声明 Ent
VHDL基础
Description Structure 一个可综合的VHDL描述中一般由3部分组成:LIBRARY declarations.ENTITY.ARCHITECTURE Library(库)用来设计重用和代码共享,使代码结构更清晰 1 LIBRARY library_name; 2 USE library_name.package_name.package_parts;
VHDL设计----十进制计数器
一.异步复位加法计数器 代码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity CNT10 is port( CLK,RST,EN: in std_logic; DOUT : out std_logic_vector (3 downto 0); COUT : OUT std_logic ); end CNT10; architecture behav of CNT10 is be
iMPACT学习记录
iMPACT 概述 主要用于器件编程和文件生成,使用赛灵思通信线(MutiPRO Desktop Tool, Parallel Cable IV,或者Platform Cable USB)直接对FPGA.CPLD或PROM进行多种模式的配置:边界扫描模式可进行所有元件配置,从串和SelectMAP模式则仅可配置FPGA,在Desktop配置模式CPLD和PROM可配置,在直接SPI模式可编程select SPI serial flash(STMicro: M25P, M25PE, M45PE 或
VHDL与Verilog硬件描述语言TestBench的编写
VHDL与Verilog硬件描述语言在数字电路的设计中使用的非常普遍,无论是哪种语言,仿真都是必不可少的.而且随着设计复杂度的提高,仿真工具的重要性就越来越凸显出来.在一些小的设计中,用TestBench来进行仿真是一个很不错的选择.VHDL与Verilog语言的语法规则不同,它们的TestBench的具体写法也不同,但是应包含的基本结构大体相似,在VHDL的仿真文件中应包含以下几点:实体和结构体声明.信号声明.顶层设计实例化.提供激励:Verilog的仿真文件应包括:模块声明.信号声明.顶层设
VHDL语言实现的任意整数分频器
fpga中,一般外接的晶振是50Mhz,如果电路中一个模块需要25mhz时钟,那么进行一个2分频,这个是相当容易的,下面是一种方法,还有可以用一个二进制计数器实现.这里就不写代码了.easy.同样的原理 ,四分频也很容易. process(clk)--clk输入时钟:begin if(rst = '0') then --rst复位信号: clkout <= '0'; elsif(clk;event and clk = '1')then clkout <= not clk;
VHDL:信号、端口以及和Verilog的区别
1.信号 信号是描述硬件系统的基本数据对象,它的性质类似于连接线.信号可以作为设计实 体中并行语句模块间的信息交流通道. 信号作为一种数值容器,不但可以容纳当前值,也可以保持历史值(这决定于语句的表达方式).这一属性与触发器的记忆功能有很好的对应关系,只是不必注明信号上数据流动的方向.信号定义的语句格式与变量相似,信号定义也可以设置初始值,定义格式是: SIGNAL 信号名: 数据类型 := 初始值 : 同样,信号初始值的设置也不是必需的,而且初始值仅在 VHDL 的行为
VHDL基础2
Signals & Variables VHDL 提供了 signal 和 variable 两种对象来处理非静态数据:提供了 constant 和 generic 来处理静态数据. constant 和 signal 是全局的,可以在顺序执行的代码中,也可以在并发执行的代码中:variable 是局部的,只能值顺序代码中,并且它们的值是不能向外传递的(如果想传递出去,必须先把这个变量值传递给一个信号,再由这个信号传递出去). constant constant 可以定义在 package, e