• 上一讲我们看了偶数分频 vivado和modelsim联合仿真实现偶分频,只需要在clk计数到一半时进行翻转即可,这是占空比为50%的情况,如果占空比任意数值就需要重新设计

  • 16需要从0计数到15=4’b1111刚好再进一位为10000,后4位依然为0,所以不需要计数到15时进行清零操作,我修改了一下课件上的代码添加清零操作让它更符合常理

module div1_15(input clk,input rst,output reg clk16);reg [3:0] cnt;always @(posedge clk or posedge rst) beginif(rst == 1'b1)cnt <= 4'd0;else if(cnt == 4'd15)cnt <= 4'd0;elsecnt <= cnt + 1;endalways @(posedge clk or posedge rst) beginif(rst == 1'b1)clk16 <= 1'b0;else if(cnt == 4'd15)clk16 <= 1'b1;elseclk16 <= 1'b0;end
endmodule
  • testbench文件如下所示
module testbench();reg clk;reg rst;always #10 clk = ~ clk; initial beginclk = 1'b0; rst = 1'b1;#20rst = 1'b0;enddiv1_15 inst(.clk (clk),.rst (rst),.clk16(clk16));
endmodule
  • 仿真波形如下,可以看到与PPT描述里还是有出入的,PPT里讲得是在cnt=15是输出一个高脉冲,但是波形在cnt=0时输出。

  • 计数器模块是没有问题的,只可能在判断那出问题。应该是当cnt=14时应该数了15下,然后cnt=15时输出一个高脉冲,修改后仿真结果正确

  • 考虑当占空比为2:14的情况,就需要保持计数器在14和15两个时刻,因为计数器只能取一个值,故条件为或

  • 直接在div1_15.v代码里修改

module div1_15(input clk,input rst,output reg clk16);reg [3:0] cnt;always @(posedge clk or posedge rst) beginif(rst == 1'b1)cnt <= 4'd0;else if(cnt == 4'd15)cnt <= 4'd0;elsecnt <= cnt + 1;endalways @(posedge clk or posedge rst) beginif(rst == 1'b1)clk16 <= 1'b0;else if((cnt == 4'd13) || (cnt == 4'd14))clk16 <= 1'b1;elseclk16 <= 1'b0;end
endmodule
  • 仿真波形正确

vivado和modelsim联合仿真实现占空比1:15的分频相关推荐

  1. FPGA学习之路—Vivado与Modelsim联合仿真

    Vivado与Modelsim联合仿真 笔者在学习FPGA过程中遇到了如何使用Vivado和Modelsim进行联合仿真的问题,特此记录. 首先确定版本 笔者Vivado用的是2018.3版本,先是随 ...

  2. vivado和modelsim联合仿真实现偶分频

    首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件div6.v,代码来源于以下视频,稍作修改. 在复位时给输出信号clk6赋值为0,不然输出不确定 判断条件cnt为1 ...

  3. 关于Vivado和Modelsim联合仿真的爱恨情仇

    关于Vivado和Modelsim联合仿真的爱恨情仇 心路历程 版本对应 仿真设置 错误解决 关于使用modelsim查看状态转移图 心路历程 vivado自带仿真工具虽然可以使用,但是每一次修改代码 ...

  4. 【FPGA】vivado和modelsim联合仿真

    文章目录 二.遇到的问题 三. 参考资料: 二.遇到的问题 1. 错误一: # ** Fatal: (vsim-3693) The minimum time resolution limit (10f ...

  5. Vivado和Modelsim联合仿真问题记录

    目录 写在前面 Modelsim安装 1.以管理员身份运行安装程序 2.去掉mgls.dll和mgl64s.dll文件"只读"属性,直接双击运行patch64_dll.bat 编译 ...

  6. Vivado与modelsim联合仿真(2018.3---10.6c)

    Vivado不同于Quartus自带仿真,但是个人觉得跑一些简单工程的仿真还是可以的,不过跑一些复杂工程的的仿真简直就是毫无体验感,建议使用第三方仿真软件进行联合仿真,这边主要推荐的Modelsim, ...

  7. Vivado与Modelsim联合仿真配置【图文并茂】

    文章目录 前言 一.编译仿真库 1.编译仿真库 2.仿真库设置 二.Vivado设置 1.在Vivado中单击Tools-Settings 2.将lib导入Modelsim 3.打开Modelsim, ...

  8. vivado 和 modelsim联合仿真

    1)随便打开一个vivado工程, 2)配置3rd party, 设置install path, D:\modeltech64_10.6e\win64, 设置default compiled libr ...

  9. vivado和modelsim联合仿真实现分频器——2的n次方分频

    首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件,代码来源于以下视频 FPGA分频器的设计 module fenpin_2_pow_n(input clk,inpu ...

最新文章

  1. Worktile完成新一轮融资,将发力研发管理赛道
  2. python编程if语法-二、python 语法之变量赋值与if(if else)
  3. 关于java集合框架(三):Map概述与TreeMap
  4. linux下文本模式不能登录,图形可以登录
  5. mysql面试100题及答案_PHP面试100题汇总
  6. git 合并多次commit
  7. Convolutional Neurons Network 训练参数与连接数计算过程
  8. 西南民族大学计算机考试试题,西南民族大学预科教育学院 2007级《计算机》模拟试题(含答案)...
  9. 使用recyclerView实现无限循环banner效果
  10. eNSP模拟器RIP2动态路由,DHCP服务,ACL流控,组合使用的拓扑网络
  11. And Design:拓荒笔记——Form表单
  12. Python Tkinter 音乐播放器 Demo
  13. 将哔哩哔哩手机端缓存视频导出为正常mp4视频.
  14. windows 域认证 Kerberos详解
  15. linux 队列缓冲,linux驱动的等待队列(阻塞操作)和轮询(poll),缓冲区笔记
  16. 小白白红队初成长(7)win权限提升
  17. 7人制足球技战术要点
  18. 【C++】关于char * tempbuffer = new char[100];
  19. RecyclerView 嵌套RecyclerView 或者 ScrollView当中嵌套RecyclerView ,子View会自动滚动到顶部
  20. 二十九、​Fluent瞬态时间步长与迭代步数的讨论

热门文章

  1. input和output哪个是充电_html中input和output的区别?糊涂了搞不清了。哪位给解说下...
  2. LeetCode 求解电话号码组合(分治法求解)
  3. python小程序_小会计的实用Python小程序(三):人民币大写金额转换器
  4. 利用计算机解决的生活问题,利用计算机解决经典动力学问题
  5. 中文验证码识别 java_opencv Tesseract 验证码识别 文字识别
  6. android mk subst功能,Android.mk(零)
  7. httplistener java_Java监听器listener的介绍
  8. Tomcat打开远程调试和jmx远程监控
  9. exchange for linux,相当于InterlockedExchangeAdd for Linux使用Delphi 10.2)
  10. python怎么连接excel_python怎么连接excel