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从入门倒入坟-第一个基础实例蜂鸣器相关推荐

  1. Python编程从入门到实践 第一部分基础知识 代码合集

    第2章 变量和简单数据类型 2.1 运行hello_world.py时发生的情况 print("Hello Python world!") 2.2 变量 message=" ...

  2. 【FPGA学习笔记】 第一章: PLD/FPGA新手入门

    第一章          PLD/FPGA新手入门 1.       可编程逻辑器件的发展历程 当今社会是数字化的社会,是数字集成电路广泛应用的社会.数字集成电路本身在不断地进行更新换代.它由早期的电 ...

  3. 校招总结—FPGA从入门到放弃

    校招总结-FPGA从入门到放弃 感谢咸鱼FPGA的授权转发,原文地址为https://www.cnblogs.com/xianyufpga/ 其实 offer 早就定下来了,最近忙着入党考试,现在才腾 ...

  4. FPGA从入门到精通(8)-BRAM

    所使用EDA软件:VIVADO2018.3 FPGA型号:xc7a35tcsg325-2 很久没写了,随便写一篇BRAM的吧.说到BRAM ,很多人都喜欢拿它来DRAM比较 ,两者都有啥优缺点,其实我 ...

  5. python编程入门第一课_python入门前的第一课 python怎样入门

    人工智能时代的到来,很多文章说这么一句:"不会python,就不要说自己是程序员",这说的有点夸张了,但确实觉得目前python这个语言值得学习,而且会python是高薪程序员的必 ...

  6. CUDA C/C++ 从入门到入土 第一步——让你的CUDA跑起来

    CUDA C/C++ 从入门到入土 第一步--让你的CUDA跑起来 目录: 一. windows10+visual studio2019配置cuda记录 二. linux配置cuda代码记录 三. T ...

  7. MySQL入门学习的第一节(SQL语句)

    MySQL入门学习的第一节(SQL语句) SQL语句

  8. D3.js的v5版本入门教程(第一章)—— 如何在项目中使用D3.js

    D3.js的v5版本入门教程(第一章) 1.需要的一些工具 这个其实随便!最简单的就是建一个.txt文件就可以敲起代码来!作者本人用的是myeclipse(主要需要安装tomcat),因为写的是前端, ...

  9. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

最新文章

  1. linux安装python2和3版本_Windows下安装Python2和Python3双版本
  2. linux dup用法,Unix_Linux
  3. 编译bluez-5.25 通过 Linux环境下运行
  4. CodeForces - 1465E Poman Numbers(推公式+贪心)
  5. python朋友圈评论_利用Python实现朋友圈中的九宫格图片效果
  6. oracle查询删除时间戳,Oracle查询时间戳,建表时间,新建序列,误删数据
  7. php阿拉伯语字符串,按字母顺序命名阿拉伯语名称Mysql和php
  8. Python学习日志(二)
  9. gpg加密命令 linux_Ubuntu下加密命令GPG和KEY
  10. CPU又烧了,说起来汝可能不信
  11. 数域、有限域(伽罗瓦域)
  12. JDK1.8HashMap底层实现原理
  13. 使用crash工具分析高通ramdump
  14. AOP设计与原理(连接点,切入点与代理模式)——Spring AOP(二)
  15. swarm测试网如何查票?查票流程
  16. VMware vCenter Converter 物理机迁移
  17. 如何用老毛挑清除WINDOWS密码(以HP笔记本为例)
  18. Springboot整合Shiro之授权
  19. 程序员转行能做什么?
  20. 兽医提醒:这几种养狗方式,会让狗狗身体越来越差

热门文章

  1. HBase+Spark技术双周刊第一期
  2. 服务器系统用热备盘嘛,服务器设置热备盘
  3. L1-044 稳赢 (15 分)
  4. SuperEmper技术支持
  5. Guava-RateLimiter秒杀限流技术详解
  6. 实现AI角色的自主移动——操控行为
  7. 基于金融大数据的特征提取与趋势预测系统(一)2021-06-30
  8. 芝加哥大学计算机语言学,2020年芝加哥大学CS排名,真得认真的去考查
  9. [日推荐]『腾讯动漫』你的漫画,触手可及!
  10. 新手8周跑步训练计划