vivado和modelsim联合仿真实现占空比1:15的分频
上一讲我们看了偶数分频 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的分频相关推荐
- FPGA学习之路—Vivado与Modelsim联合仿真
Vivado与Modelsim联合仿真 笔者在学习FPGA过程中遇到了如何使用Vivado和Modelsim进行联合仿真的问题,特此记录. 首先确定版本 笔者Vivado用的是2018.3版本,先是随 ...
- vivado和modelsim联合仿真实现偶分频
首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件div6.v,代码来源于以下视频,稍作修改. 在复位时给输出信号clk6赋值为0,不然输出不确定 判断条件cnt为1 ...
- 关于Vivado和Modelsim联合仿真的爱恨情仇
关于Vivado和Modelsim联合仿真的爱恨情仇 心路历程 版本对应 仿真设置 错误解决 关于使用modelsim查看状态转移图 心路历程 vivado自带仿真工具虽然可以使用,但是每一次修改代码 ...
- 【FPGA】vivado和modelsim联合仿真
文章目录 二.遇到的问题 三. 参考资料: 二.遇到的问题 1. 错误一: # ** Fatal: (vsim-3693) The minimum time resolution limit (10f ...
- Vivado和Modelsim联合仿真问题记录
目录 写在前面 Modelsim安装 1.以管理员身份运行安装程序 2.去掉mgls.dll和mgl64s.dll文件"只读"属性,直接双击运行patch64_dll.bat 编译 ...
- Vivado与modelsim联合仿真(2018.3---10.6c)
Vivado不同于Quartus自带仿真,但是个人觉得跑一些简单工程的仿真还是可以的,不过跑一些复杂工程的的仿真简直就是毫无体验感,建议使用第三方仿真软件进行联合仿真,这边主要推荐的Modelsim, ...
- Vivado与Modelsim联合仿真配置【图文并茂】
文章目录 前言 一.编译仿真库 1.编译仿真库 2.仿真库设置 二.Vivado设置 1.在Vivado中单击Tools-Settings 2.将lib导入Modelsim 3.打开Modelsim, ...
- vivado 和 modelsim联合仿真
1)随便打开一个vivado工程, 2)配置3rd party, 设置install path, D:\modeltech64_10.6e\win64, 设置default compiled libr ...
- vivado和modelsim联合仿真实现分频器——2的n次方分频
首先创建一个工程,因为不在硬件上实现所以芯片型号随便选一个就行 创建design文件,代码来源于以下视频 FPGA分频器的设计 module fenpin_2_pow_n(input clk,inpu ...
最新文章
- Worktile完成新一轮融资,将发力研发管理赛道
- python编程if语法-二、python 语法之变量赋值与if(if else)
- 关于java集合框架(三):Map概述与TreeMap
- linux下文本模式不能登录,图形可以登录
- mysql面试100题及答案_PHP面试100题汇总
- git 合并多次commit
- Convolutional Neurons Network 训练参数与连接数计算过程
- 西南民族大学计算机考试试题,西南民族大学预科教育学院 2007级《计算机》模拟试题(含答案)...
- 使用recyclerView实现无限循环banner效果
- eNSP模拟器RIP2动态路由,DHCP服务,ACL流控,组合使用的拓扑网络
- And Design:拓荒笔记——Form表单
- Python Tkinter 音乐播放器 Demo
- 将哔哩哔哩手机端缓存视频导出为正常mp4视频.
- windows 域认证 Kerberos详解
- linux 队列缓冲,linux驱动的等待队列(阻塞操作)和轮询(poll),缓冲区笔记
- 小白白红队初成长(7)win权限提升
- 7人制足球技战术要点
- 【C++】关于char * tempbuffer = new char[100];
- RecyclerView 嵌套RecyclerView 或者 ScrollView当中嵌套RecyclerView ,子View会自动滚动到顶部
- 二十九、​Fluent瞬态时间步长与迭代步数的讨论
热门文章
- input和output哪个是充电_html中input和output的区别?糊涂了搞不清了。哪位给解说下...
- LeetCode 求解电话号码组合(分治法求解)
- python小程序_小会计的实用Python小程序(三):人民币大写金额转换器
- 利用计算机解决的生活问题,利用计算机解决经典动力学问题
- 中文验证码识别 java_opencv Tesseract 验证码识别 文字识别
- android mk subst功能,Android.mk(零)
- httplistener java_Java监听器listener的介绍
- Tomcat打开远程调试和jmx远程监控
- exchange for linux,相当于InterlockedExchangeAdd for Linux使用Delphi 10.2)
- python怎么连接excel_python怎么连接excel