
FPGA学习笔记
此专栏主要用于存放FPGA的学习笔记。
默默无闻小菜鸡
信息与通信工程专业在读
展开
-
【Quartus II 17.0 VWF仿真设置】
一.介绍由于Quartus II较高的版本取消了自带的仿真器(9.0版本仍可使用),所以必须要下载一个第三方仿真软件。此处我下载的是Modelsim软件。(使用较广,可自行搜索下载)因此,此处主要讲解如何通过在Quartus软件中进行相关配置操作与Modelism相联,从而实现在Quartus中直接进行VWF仿真,达到与9.0等之前版本类似的仿真效果;(当然,直接打开Modelsim进行仿真...原创 2020-04-11 14:25:55 · 14566 阅读 · 3 评论 -
【FPGA——Cyclone Ⅳ学习笔记】九.串口收发实验(EP4CE6F17C8)
一.原理图二.串口收发1.串口收发流程图串口的波特率是指每秒收/发的bit数,此代码设为115200bit/s。因此要将50MHz的系统时钟进行适当的分频。如上图,每计到CYCLE个时钟脉冲就传输一个位。因此CYCLE=50_000_000/115200。下面的代码是对黑金的代码进行了一些更改和注释。2.uart_rx.v接收数据状态图:串口接收模块module uart...原创 2020-04-05 09:50:18 · 2827 阅读 · 2 评论 -
【FPGA——Cyclone Ⅳ学习笔记】八.SPI协议和DS1302时钟芯片(EP4CE6F17C8)
一.原理图二.SPI驱动及代码解释此实验采用黑金的代码!和之前IIC介绍相同,先单独介绍SPI的底层驱动模块。具体的SPI协议此处不做详细介绍。底层的SPI驱动是以标准的四线SPI编写。1.端口定义、I/O说明和变量声明module spi_master( input sys_clk, input ...原创 2020-04-03 13:25:08 · 3549 阅读 · 3 评论 -
【FPGA——Cyclone Ⅳ学习笔记】七.IIC驱动EEPROM(EP4CE6F17C8)
一.原理图此开发板的24LC04芯片与之前所用的AT24C02芯片有所不同,此芯片的A2,A1,A0管脚为无效管脚,不能用于器件地址的选择!二.IIC驱动及代码介绍IIC的驱动程序主要是根据时序...原创 2020-03-30 09:38:28 · 3578 阅读 · 0 评论 -
【FPGA——Cyclone Ⅳ学习笔记】六.数码管动态扫描显示(下)(EP4CE6F17C8)
上篇的代码源于正点原子的的例程,但是经过对比,我还是更喜欢黑金版本的思路,因为逻辑更加清晰。实验效果:与上篇相同,计时显示。个位为ms,十位为s…顶层结构图:1.seg_decoder.v此模块是数码管位的解码模块,将数据转换为数码管的段选码输出给后续的扫描模块。对应是顶层结构图中右侧的六个,因为有六个位,所以每个位都对应一个此模块。module seg_decoder( inpu...原创 2020-03-26 09:36:25 · 2937 阅读 · 2 评论 -
【FPGA——Cyclone Ⅳ学习笔记】六.数码管动态扫描显示(上)(EP4CE6F17C8)
一.原理图原理图与前面静态显示相同。不过在动态显示时尤其需要注意,位选的低位控制左边,高位控制右边。二.代码和注释此代码通过数码管的动态扫描方式显示计数时间。顶层结构图:1.time_count.v定时器模块,用于产生0.1s的时钟信号,使数码管的显示每0.1s加1。module time_count( input sys_clk, input ...原创 2020-03-24 08:04:10 · 2361 阅读 · 0 评论 -
【FPGA——Cyclone Ⅳ学习笔记】五.数码管静态显示(EP4CE6F17C8)
一.原理图通过第一张数码管的原理图可知,6根位选的信号线与PNP三极管相连然后再控制数码管的位选。当位选的I/O口为低电平时,三极管导通,数码管对应的位被点亮。如果了解数码管的结构原理便可通过位选的电路结构知道,此数码管为共阳极,因此段选的I/O口为低电平时,数码管对应的段会被点亮。二.代码和注释此代码用于实现数码管的静态显示,即六个位显示的数字相同。每经过0.5s数码管显示加1(0~...原创 2020-03-21 14:29:42 · 6145 阅读 · 1 评论 -
【FPGA——Cyclone Ⅳ学习笔记】四.按键控制PWM蜂鸣器(EP4CE6F17C8)
一.原理图由蜂鸣器的原理图可看出,当I/O口(C11)输出低电平时蜂鸣器响!二.代码和注释1.key_debounce.v按键消抖代码,前面介绍过了,此处不再说明。module key_debounce( input sys_clk, //外部50M时钟 input sys_rst_n, //外部...原创 2020-03-20 16:12:21 · 2992 阅读 · 3 评论 -
【FPGA——Cyclone Ⅳ学习笔记】三.按键消抖(EP4CE6F17C8)
一.需要按键消抖原因由于按键的弹性作用,在按下按键或释放按键时,按键会有抖动(在高低电平之间任意变化),而不是立刻稳定。这样就有可能读取到多次低电平,导致输出的信号不稳定。因此需要对按键进行消抖。举个例子:`timescale 1ns / 1psmodule key_test( input clk, input [3:0] ...原创 2020-03-19 20:56:07 · 1111 阅读 · 0 评论 -
【FPGA——Cyclone Ⅳ学习笔记】二.按键控制LED灯(EP4CE6F17C8)
一.原理图当按键按下时,对应I/O口从高电平变为低电平。二.Verilog HDL代码及讲解此代码的效果时四个按键分别对应四个LED,按下按键后,对应LED亮,松开LED灭。`timescale 1ns / 1psmodule key_test( input clk, //有复位低电平信号时,计数器清零 input [3:0] ...原创 2020-03-19 10:51:43 · 2286 阅读 · 0 评论 -
【FPGA——Cyclone Ⅳ学习笔记】一.LED流水灯(EP4CE6F17C8)
一.原理图二.Verilog HDL代码及讲解以黑金开发板提供的代码为例`timescale 1ns / 1psmodule led_test( input clk, // system clock 50Mhz on board input rst_n, // reset ,low active out...原创 2020-03-18 09:01:06 · 4667 阅读 · 0 评论