一:FPGA从入门倒入坟-第一个基础实例蜂鸣器
FPGA从入门倒入坟-第一个基础实例蜂鸣器
- 声明
- 代码
- 逻辑代码(.V文件)
- 端口约束文件(.UCF文件)
- 相关程序关键字解释
声明
本小白使用的是***Xilinx Spartan6***系列的开发板,教程是特权同学提供的PDF文档教程,因此会有所错误。对于软件的安装真卷,,,,表示不想进行第二次安装。
本人小白,大佬轻锤。
代码
逻辑代码(.V文件)
module BuzzerTest( //定义蜂鸣器测试模块input ext_clk_25m, //设置输入变量(系统时钟变量)input ext_rst_n, //设置复位变量(系统复位变量)output reg buzzer //设置输出变量(寄存器类型));reg [19:0] count; //设置寄存器类型变量,设置类型为20位,可以计数最大数值位2^20//创造一个系统时钟,即对25m系统时钟进行1 000 000分频,即一个计数器count对应25 000 000 / 1 000 000 = 25hz
always @ (posedge ext_clk_25m or negedge ext_rst_n) //始终等待系统时钟的上升沿或者复位时钟的下降沿if(!ext_rst_n) count <= 20'd0; //如果系统复位信号为低电平,即电路板未上电,则将20位寄存器类型的变量count置为0,即低电平else if(count < 20'd999_999) count <= count + 1'b1; //如果20位寄存器变量计数到十进制的999_999实际上是计数到1_000_000,则20位计数器以二进制的形式加一else count <= 20'd0; //否则将寄存器归零always @ (posedge ext_clk_25m or negedge ext_rst_n) //始终等待系统时钟的上升沿或者复位时钟的下降沿if(!ext_rst_n) buzzer <= 1'b0; //如果系统复位端电平位低电平,即电路板未上电,则将buzzer端电平置低,即buzzer不使能。else if(count < 20'd500_000) buzzer <= 1'b1; //如果计数器计数时间小于十进制500_000,则将buzzer使能else buzzer <= 1'b0; //否则buzzer不使能endmodule
端口约束文件(.UCF文件)
NET "ext_clk_25m" LOC = P23 | IOSTANDARD = LVCMOS33;
NET "ext_rst_n" LOC = P24 | IOSTANDARD = LVCMOS33;NET "buzzer" LOC = P27 | IOSTANDARD = LVCMOS33;
相关程序关键字解释
input:定义输入端口
output:定义输出端口
reg :寄存器类型定义,wire输入直接导致输出的变化;reg一般得有时序触发,输入端口的值不一定立刻反应到输出上,因此一般可以理解为锁存器的工作类型。wire只能被assign连续赋值,reg只能在initial和always中赋值。
reg [19:0] count;设置寄存器类型变量,设置类型为20位,可以计数最大数值位2^20,寄存器从0到19为20位寄存器。
NET “IOname” LOC = P23 | IOSTANDARD = LVCMOS33;定义变量的逻辑接口和电平标准
一:FPGA从入门倒入坟-第一个基础实例蜂鸣器相关推荐
- Python编程从入门到实践 第一部分基础知识 代码合集
第2章 变量和简单数据类型 2.1 运行hello_world.py时发生的情况 print("Hello Python world!") 2.2 变量 message=" ...
- 【FPGA学习笔记】 第一章: PLD/FPGA新手入门
第一章 PLD/FPGA新手入门 1. 可编程逻辑器件的发展历程 当今社会是数字化的社会,是数字集成电路广泛应用的社会.数字集成电路本身在不断地进行更新换代.它由早期的电 ...
- 校招总结—FPGA从入门到放弃
校招总结-FPGA从入门到放弃 感谢咸鱼FPGA的授权转发,原文地址为https://www.cnblogs.com/xianyufpga/ 其实 offer 早就定下来了,最近忙着入党考试,现在才腾 ...
- FPGA从入门到精通(8)-BRAM
所使用EDA软件:VIVADO2018.3 FPGA型号:xc7a35tcsg325-2 很久没写了,随便写一篇BRAM的吧.说到BRAM ,很多人都喜欢拿它来DRAM比较 ,两者都有啥优缺点,其实我 ...
- python编程入门第一课_python入门前的第一课 python怎样入门
人工智能时代的到来,很多文章说这么一句:"不会python,就不要说自己是程序员",这说的有点夸张了,但确实觉得目前python这个语言值得学习,而且会python是高薪程序员的必 ...
- CUDA C/C++ 从入门到入土 第一步——让你的CUDA跑起来
CUDA C/C++ 从入门到入土 第一步--让你的CUDA跑起来 目录: 一. windows10+visual studio2019配置cuda记录 二. linux配置cuda代码记录 三. T ...
- MySQL入门学习的第一节(SQL语句)
MySQL入门学习的第一节(SQL语句) SQL语句
- D3.js的v5版本入门教程(第一章)—— 如何在项目中使用D3.js
D3.js的v5版本入门教程(第一章) 1.需要的一些工具 这个其实随便!最简单的就是建一个.txt文件就可以敲起代码来!作者本人用的是myeclipse(主要需要安装tomcat),因为写的是前端, ...
- R语言学习笔记——入门篇:第一章-R语言介绍
R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...
最新文章
- linux安装python2和3版本_Windows下安装Python2和Python3双版本
- linux dup用法,Unix_Linux
- 编译bluez-5.25 通过 Linux环境下运行
- CodeForces - 1465E Poman Numbers(推公式+贪心)
- python朋友圈评论_利用Python实现朋友圈中的九宫格图片效果
- oracle查询删除时间戳,Oracle查询时间戳,建表时间,新建序列,误删数据
- php阿拉伯语字符串,按字母顺序命名阿拉伯语名称Mysql和php
- Python学习日志(二)
- gpg加密命令 linux_Ubuntu下加密命令GPG和KEY
- CPU又烧了,说起来汝可能不信
- 数域、有限域(伽罗瓦域)
- JDK1.8HashMap底层实现原理
- 使用crash工具分析高通ramdump
- AOP设计与原理(连接点,切入点与代理模式)——Spring AOP(二)
- swarm测试网如何查票?查票流程
- VMware vCenter Converter 物理机迁移
- 如何用老毛挑清除WINDOWS密码(以HP笔记本为例)
- Springboot整合Shiro之授权
- 程序员转行能做什么?
- 兽医提醒:这几种养狗方式,会让狗狗身体越来越差