跳至内容
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
icore4tfpga_14
编辑本页后请点击“保存”。请参阅
syntax
了解维基语法。只有在您能
改进
该页面的前提下才编辑它。如果您想尝试一些东西,请先到
playground
热身。
媒体文件
| **银杏科技有限公司旗下技术文档发布平台** |||| |技术支持电话|**0379-69926675-801**||| |技术支持邮件|Gingko@vip.163.com||| ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | V1.0 | 2020-03-02 | gingko | 初次建立 | ===== 实验十四:计数器实验——呼吸灯 ===== ==== 一、 实验目的与意义 ==== - 掌握计数器原理及实现方法。 - 掌握QuartusII的使用方法。 ==== 二、 实验设备及平台 ==== - iCore4T 双核心板。 - iTool A(或相同功能)仿真器。 - USB Type C 线缆。 - Keil MDK 开发平台。 - Quartus开发平台。 - 电脑一台。 ==== 三、 实验原理 ==== * 计数器是实现计数的一种最基本的加法运算。在FPGA中计数器的实质其实就是驱动参考时钟进行计数,每当触发事件到来,计数器参数实现自加,到某个状态进行清零操作。FPGA中常用计数器实现时钟分频、定时器、延时、计数、控制等功能,是FPGA实现功能中常用的一种逻辑电路。 ==== 四、 代码讲解 ==== * 本实验是通过计数器实现一个周期为1s的定时器,然后通过定时器产生的信号作为触发事件控制led电平高低切换,实现led的闪烁功能。驱动参考时钟为25MHz,也就是说时钟周期为40ns,1s的周期需要25000000个时钟周期,因此定时器的计数器需要在25000000个周期时进行清零操作。其代码如下: <code verilog> /*************************************************/ //利用计数器实现一个定时器,定时为1s reg [31:0]time_cnt; always@(posedge clk_25m or negedge rst_n) begin if(!rst_n) begin time_cnt <= 32'd0; end else begin if(time_cnt==32'd24999999) begin time_cnt <= 32'd0;///计数器清零 end else begin time_cnt <= time_cnt + 1'd1;//计数器自加1 end end end wire time_sig = (time_cnt==32'd24999999) ? 1'd1 : 1'd0;//定时器信号 </code> ==== 五、 实验步骤及实验结果 ==== {{ :icore4t:icore4t_ide_1_37.jpg?600 |图14.1}} - 将硬件正确连接,如图14.1所示。 - 将编写好的代码进行编译,并下载到开发板中; - 观察实验现象——FPGA_LED闪烁,间隔1s。 ==== 六、 拓展实验 ==== - 通过Signaltap观察定时信号与定时计数器之间的关系。
保存
预览
取消
编辑摘要
当您选择开始编辑本页,即寓示你同意将你贡献的内容按下列许可协议发布:
豫ICP备18022004号-1
icore4tfpga_14.txt
· 最后更改: 2024/04/10 11:08 由
zhaowenzhe
页面工具
显示页面
修订记录
反向链接
回到顶部