分频器的设计有两种思路,一种只适用于偶数次,另外一个是通用。
1.首先,需要知道分频的次数。
通过晶振算出时钟周期,然后你需要定时多少时间,用这个时间除周期,就可以得到计数次数。如:500ms的led翻转,50mhz的晶振,由50Mhz晶振得到20ns的时钟周期,用500ms/20ns=25000000次,这就是计数的次数。
2.通用方法:
主要思路,计数待分频的整个周期,也就是说,如:想要得到clkout,已知clkin,且10次clkin周期是一个clkout周期,那么我只要计10次clkin的周期,输出一个cnt,然后对cnt做二进制变化,取其最高位。因为它的最高位只是变化了1次 从0到1。
这是由48mhz时钟得到10hz时钟,那么10hz的周期是0.1s,48mhz的周期是1/48m。那么0.1s*48m得4800000次,其中2400000高电平,2400000是低电平。
代码:

process
begin
if clkin'event and clkin='1' thenif cnt=10 then cnt<=1;else cnt<=cnt+1;end if;
end if;
end process;
cnt_vec<=conv_std_logic(cnt,4);
clkout<=cnt_vec(3);

3.偶次分频
代码:

process(clk48mhz)
beginif clk48mhz'event and clk48mhz='1' thenif cnt=2400000 thencnt<=1;clk_temp<=not clk_temp;--这就构成一个负脉冲或者正脉冲,一半周期就形成,elsecnt<=cnt+1;--构成连续的周期end if;end if;
end process;

4.用分频器做流水灯
移位寄存器的思路,低位向前进,最高位移到最低位。
代码:

process(clk_10hz)
beginif rising_edge(clk_10hz) thendata(8 downto 2)<=data(7 downto 1);--把原来的低7位给现在的高7位data(1)<=data(8);--把原先的最高位给现在的最低位。end if;
end process;

5.综合实现:
代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity fenpinqi isPort ( clkin : in  STD_LOGIC;led : out  STD_LOGIC_VECTOR (8 downto 1));
end fenpinqi;
architecture Behavioral of fenpinqi is
signal cnt:integer range 1 to 2400000 :=1;
signal clkout:std_logic:='0';
signal data:std_logic_vector(8 downto 1):="11111110";
beginp1:process(clkin)--第一个进程做分频器,产生10hz时钟beginif clkin'event and clkin='1' thenif cnt=2400000 then cnt<=1;clkout<= not clkout;else cnt<=cnt+1;end if;end if;end process p1;    p2:process(clkout)--第二个进程,在10hz时钟得上升沿移位。beginif rising_edge(clkout) thendata(8 downto 2)<=data(7 downto 1);--把原来的低7位给现在的高7位data(1)<=data(8);--把原先的最高位给现在的最低位。end if;end process p2;led<=data;
end Behavioral;

直接仿真:


可以清晰得看到,每个clkout时,led状态变化一次。
6.小结
1)process忘记加begin了
2)定义了两个信号,可以全局使用,如果是进程中得变量的话就不能全局调用。
3)如果是00001111这种一定是双引号。
4)用ise直接定义端口的话可以不写实体。

vhdl入门6分频器相关推荐

  1. verilog复习与vhdl入门

    verilog复习与vhdl入门 1.Verilog回顾 基本结构 verilog以module为单位,module的基本结构: (1)模块声明(内含端口定义),如: ​ module ( ​ inp ...

  2. (一)vhdl如何转换转换verilog?(人肉翻译—保姆教学版)

    1.前言 其实在此之前我是学习verilog语言的,本以为以后工作都只会遇到或者用到verilog,但怎么也没有想到会遇到vhdl这个硬茬子,而且还是整个工程. 刚拿到工程,本以为只是单纯verilo ...

  3. 8位数控分频器的设计_数控分频器的设计

    数控分频器的设计 摘要: 此设计以 quartusII 为开发平台 , 用 VHDL 语言设计了数控分频器,并生成原理图 , 完成了分频的功能 , 并在 quartusII 上仿真 , 验证通过. 关 ...

  4. 亦师亦友——忆我在北邮四年中的几位老师(全)

    发一篇本科毕业时候回忆本科阶段的一些老师的文字. --------------------------------------------------------------------------- ...

  5. vhdl语言入门_从当初汇编、C语言入手,到如今FPGA开发已然十年,总结出“三多”!...

    从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表.抢答器.密码锁等实验时那个兴奋劲.当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus ...

  6. (05)VHDL实现分频器

    (05)VHDL实现分频器 1.1 目录 1)目录 2)FPGA简介 3)VHDL简介 4)VHDL实现分频器 5)结语 1.2 FPGA简介 FPGA(Field Programmable Gate ...

  7. vhdl语言入门_初学Chisel语言,看这篇就够了:最方便简洁的入门资料整理

    声明:本文是我一个很优秀的学生总结的,放出来供广大chisel语言爱好者参考. Chisel(Constructing Hardware In a Scala Embedded Language)是U ...

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

    EDA 电子设计自动化VHDL系列课程7 – 分频器和计数器 本EDA系列介绍的系统环境是: 软件: VHDL编程语言 : 工具: Quartus13.0 FPGA 芯片是: Cyclone III ...

  9. 小数分频器vhdl实现_基于FPGA的小数分频器的设计与实现.doc

    基于FPGA的小数分频器的设计与实现.doc 基于FPGA的小数分频器的设计与实现 [摘要]本文首先分析了现有小数分频器的优缺点,在此基础上提出了一种改进型小数分频器的设计方法.同时结合VHDL文本输 ...

  10. ❀工信工实验参考——《VHDL实验2——数码管及分频器》

    一般来说,我贴上来的代码都是能直接跑的,如果不行可以邮箱交流1902946954@qq.com 仅供参考,微机的老师讲的很好,所以请还是要先自己完成咯. 免责声明,本人菜只因一只,内容仅供参考,错了不 ...

最新文章

  1. 【云栖大会】阿里云生态 开启智能“大航海时代”
  2. SPOJ Pattern Find(Rabin Karp)
  3. 网关是个啥?为什么电脑不设置网关就没法上网?笔记本为啥不用设置网关?
  4. Unity重置Animator到初始状态和重复播放同一个Animation
  5. linux只读挂载,读写挂载
  6. springboot + mybatis + gradle项目构建过程
  7. SPOJ 1676 矩阵乘法+DP
  8. 对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断
  9. 声纹识别PLDA模型的理解
  10. vue template 复用_vue-组件基础
  11. jQuery attributes(上)
  12. C++_类和对象_对象特性_友元_友元类_在一个类中声明另一类作为自己的友元类_可以访问自己类中的private变量---C++语言工作笔记053
  13. 这两天在学习微信小程序,不可避免的又要用到一些图标,通过问朋友解决了这个事情 想分享给你们一下 希望对你们有用...
  14. leetcode经典题 刷题题解 python版
  15. uni-app(vue小程序)学习笔记
  16. 他称向导师下跪,仍被强制退学,5年博士白读,双方各执一词,同门师兄也有回应!...
  17. Python爬虫进阶--js逆向 | 某某云加速参数加密分析
  18. SALT安装--CentOS7
  19. 【Zotero】使用坚果云同步PC端和IOS端
  20. vue base64导出(pdfexcel ) 打印(pdf)

热门文章

  1. 微信小程序人脸识别之人脸属性检测
  2. CMDN创新应用推荐:搜狗号码通
  3. 最小可分辨温差四杆靶空间频率选择
  4. 与骗子约会:浅谈欺诈性约会APP的生态
  5. 开源.net 混淆器ConfuserEx
  6. RTL8761ATV-CG蓝牙芯片4.0模块Realtek蓝牙驱动
  7. ArcGIS 地统计的几种空间插值的应用范围和区别
  8. 海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
  9. windows2003视频教程
  10. 微带滤波器摘要_微带线带通滤波器设计