- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 SD-HOST Controller design-----SD CLK 设计
该模块最终输出两个时钟:一个为fifo_sd_clk,另一个为out_sd_clk_dft。当分频时候,div_counter开始计数,记到相应分频的时候,将hclk进行翻转,得到分频的时候给到fifo_sd_clk;当sd clk使能为低或者停时钟信号为高的时候,fifo_sd_clk为0。第二个为out_sd_clk_dft。当sd clk使能为低或者停时钟信号为高的时候,fifo_sd_clk为0。当不进入testmode时,分频系数为0 的时候为hclk,分频系数不为0的时候,则接分频后的时钟。
2025-05-13 13:40:03
315
原创 SD-HOST Controller design-----FIFO 设计
数据流主要分为两个方向:1.总线上需要写入SD card的数据通过DMA搬移到FIFO,再通过数据控制模块的控制将FIFO中的数据写入SD card。异步FIFO是指一种FIFO设计,其中将数据从一个时钟域写入FIFO缓冲区,并从另一个时钟域的同一个FIFO缓冲区中读取数据,这两个时钟域彼此异步。主要包含以下几个部分:1.用于地址指针的跨时钟域同步的打两拍模块 2.AHB相关的写满和读空模块 3.SD相关的写满和读空模块 4.包含真正储存体SRAM的FIFO_mem模块。3.异步FIFO设计实现。
2025-05-08 15:10:26
292
原创 FPGA的学习
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《FPGA学习步骤(打算以后也转FPGA了,毕竟工资比硬件工程师高)》, 一起来围观吧 https://blog.csdn.net/naruto_dong/article/details/92800644?utm_source=app&app_version=4.8.0&code=app_1562916241&uLinkId=usr1mkqgl919blen...
2021-06-14 21:55:59
185
原创 FPGA的学习
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《如何学习FPGA》, 一起来围观吧 https://blog.csdn.net/k331922164/article/details/44626989?utm_source=app&app_version=4.8.0&code=app_1562916241&uLinkId=usr1mkqgl919blen...
2021-06-13 23:16:22
140
原创 FPGA的学习:基于ROM的VGA图像显示
以十色等宽彩条做背景,将存储于 ROM 中的图片显示在 VGA 显示器的中心位置。图片分辨率为 100*100,VGA 显示模式为 640x480@60。效果类似于下图:首先需要将图片用Matlab转换为mif文件。mif文件生成代码如下:WIDTH=16;DEPTH=10000;ADDRESS_RADIX=UNS;DATA_RADIX=HEX;CONTENT BEGIN 0 :0 ; 1 :0 ; 2 :0 ; 3 :0 ; 4 :0 ; 5 :0 ;
2021-06-11 11:06:53
6600
1
原创 FPGA的学习:DHT11数字温湿度传感器
实验目标:控制 DHT11,读出湿度温度数据显示在数码管中,通过按键使湿度和温度在数码管中切换显示。系统的整体框图和工程模块如下。编写代码:`timescale 1ns/1nsmodule dht11_ctrl( input wire sys_clk , //系统时钟,频率50MHz input wire sys_rst_n , //复位信号,低电平有效 input wire
2021-06-10 16:04:07
1873
1
原创 FPGA的学习:DS18B20数字温度传感器
控制 DS18B20 实现对实时温度的转换并读出来显示在数码管上。`timescale 1ns/1nsmodule ds18b20_ctrl( input wire sys_clk , //系统时钟,频率50MHz input wire sys_rst_n , //复位信号,低电平有效 inout wire dq , //数据总线 output wir
2021-06-09 12:17:20
1533
1
原创 FPGA的学习:红外遥控
使用 FPGA 开发板配套的红外遥控器发送红外信号, FPGA 开发板上的一体化接收头接收到红外信号后传入 FPGA 芯片内, FPGA 芯片接收到信号后进行解码,将解码后的按键码显示在数码管上。若检测到发送了重复码,则让 led 闪烁显示,一个重复码闪烁一次。来看红外接收模块:`timescale 1ns/1nsmodule infrared_rcv( input wire sys_clk , //系统时钟,频率50MHz in
2021-06-09 12:10:06
2610
3
原创 FPGA的学习:简易电压表的设计与验证
外部挂载的高速 AD/DA 板卡的 A/D 部分将输入其中的模拟信号转换为数字量,将数字量传入 FPGA, FPGA 将传入的数字量通过计数转化为电压数值,通过数码管显示转化后的电压值,实现模拟信号的电压测量。整体框图如图所示。其中adc模块。`timescale 1ns/1nsmodule adc( input wire sys_clk , //时钟 input wire sys_rst_n
2021-06-08 19:42:15
1138
原创 FPGA的学习:简易频率计的设计与验证
设计一个基于等精度测量原理的简易频率计,对输入的未知时钟信号做频率测量,并将测量结果在数码管上显示。设计各个模块。画出时序图。用代码来实现。`timescale 1ns/1nsmodule freq_meter_calc( input wire sys_clk , //系统时钟,频率50MHz input wire sys_rst_n , //复位信号,低电平有效 input wire
2021-06-08 19:41:21
1243
原创 FPGA的学习:PLL-IP核的调用
锁相环是最常用的IP核之一,其性能强大,可以对输入到FPGA的时钟信号进行任意分频、倍频、相位调整、占空比调整,从而输出一个期望时钟。其基本原理如下:
2021-06-08 19:31:00
534
原创 FPGA的学习:数码管动态显示的实现(四)
最后进行仿真。`timescale 1ns/1nsmodule tb_top_seg_595();//wire definewire stcp ; //输出数据存储寄时钟wire shcp ; //移位寄存器的时钟输入 wire ds ; //串行数据输入wire oe ; //输出使能信号//reg definereg sys_clk ;reg sys_rst_n ;/
2021-06-08 19:29:26
427
1
转载 FPGA的学习:数码管动态显示的实现(三)
然后根据时序图就能进行程序的编写。首先是data_gen模块的编写。`timescale 1ns/1nsmodule data_gen#( parameter CNT_MAX = 23'd4999_999, //100ms计数值 parameter DATA_MAX= 20'd999_999 //显示的最大值)( input wire sys_clk , //系统时钟,频率50MHz input wire
2021-06-08 19:29:07
1055
原创 FPGA的学习:数码管动态显示的实现(二)
接着画出各部分的时序图。首先是数据生成的时序图。然后是二进制码转BCD码的波形图。最后是数码管动态显示波形图。
2021-06-08 19:28:49
403
2
原创 FPGA的学习:数码管动态显示的实现(一)
用数码管动态实现0~999999的现象。每隔一定的时间间隔进行自加。先画出系统框图。首先是顶层模块的系统框图。其中最后实现一个这样的总体功能。
2021-06-08 19:28:19
857
原创 FPGA的学习:数码管静态显示的实现(三)
实现代码之后,进行仿真。`timescale 1ns/1nsmodule tb_seg_595_static();//wire definewire stcp ; //输出数据存储寄时钟wire shcp ; //移位寄存器的时钟输入 wire ds ; //串行数据输入wire oe ; //输出使能信号//reg definereg sys_clk ;reg sys_rst
2021-06-08 11:54:57
443
4
原创 FPGA的学习:数码管静态显示的实现(二)
接着将控制模块的时序图画出来。按照时序图编写代码。`timescale 1ns/1nsmodule hc595_ctrl( input wire sys_clk , //系统时钟,频率50MHz input wire sys_rst_n , //复位信号,低有效 input wire [5:0] sel , //数码管位选信号 input wire
2021-06-08 11:54:02
664
5
原创 FPGA的学习:触摸按键控制led灯的实现
首先来看时序图。接着按照时序图来编写:`timescale 1ns/1nsmodule touch_ctrl_led( input wire sys_clk , //系统时钟,频率50MHz input wire sys_rst_n , //复位信号,低电平有效 input wire touch_key , //触摸按键信号 output reg led //l...
2021-06-06 16:29:17
437
原创 FPGA的学习:无源蜂鸣器的实现(二)
然后编写程序:`timescale 1ns/1nsmodule beep#( parameter TIME_500MS = 25'd24999999, //0.5s计数值 parameter DO = 18'd190839 , //"哆"音调分频计数值(频率262) parameter RE = 18'd170067 , //"来"音调分频计数值(频率294) parameter MI = 18'd151514 ,
2021-06-06 10:31:04
1401
1
原创 FPGA的学习:状态机的实现(五)
用代码来实现时序图。`timescale 1ns/1nsmodule complex_fsm( input wire sys_clk , //系统时钟50MHz input wire sys_rst_n , //全局复位 input wire pi_money_one , //投币1元 input wire pi_money_half , //投币0.5元
2021-06-04 16:06:29
332
1
原创 FPGA的学习:状态机的实现(四)
刚刚实现了一个简单的可乐机,但是现实生活中还有可能出现0.5元,以及可乐有可能2.5元,然后送入三元还要找零0.5元。首先根据原理,画出系统框图。输入:0.5、1输出:不出可乐/不找零,出可乐/不找零,出可乐/找零状态:0、0.5、1、1.5、1.5、2、2.5、3进行编码输入:00、01、10输出:00、10、11然后描述状态图。然后画出时序图。...
2021-06-04 09:22:58
245
原创 FPGA的学习:状态机的实现(三)
用代码实现fsm`timescale 1ns/1nsmodule simple_fsm( input wire sys_clk , //系统时钟50MHz input wire sys_rst_n , //全局复位 input wire pi_money , //投币方式可以为:不投币(0)、投1元(1) output reg po_cola //po_cola为1时出可乐,po
2021-06-03 15:16:37
252
原创 FPGA的学习:状态机的实现(一)
用状态机实现一些具体问题,实现一个简单的可乐机系统。可乐售价三元,每次投入一个硬币,投入三次后,可乐机吐出一个可乐。输入:投入1元硬币输出:出可乐,不出可乐状态:投入0元,投入1元,投入2元,投入3元。...
2021-06-01 21:25:24
236
原创 FPGA的学习:呼吸灯
首先来看呼吸灯的系统框图和时序图。了解其实现远离之后,编写代码来实现。`timescale 1ns/1nsmodule breath_led#( parameter CNT_1US_MAX = 6'd49 , parameter CNT_1MS_MAX = 10'd999 , parameter CNT_1S_MAX = 10'd999)( input wire sys_clk , //系统时钟50Mhz input
2021-05-30 11:48:38
456
原创 FPGA的学习:流水灯的实现
首先来看流水灯的系统框图和时序图。了解了实现原理之后,照着原理来用代码实现。`timescale 1ns/1nsmodule water_led#( parameter CNT_MAX = 25'd24_999_999)( input wire sys_clk , //系统时钟50Mh input wire sys_rst_n , //全局复位 output wire [3:0
2021-05-29 23:01:55
878
原创 FPGA的学习:按键消抖的实现
首先先来看系统框图和时序图。接着编写代码实现`timescale 1ns/1nsmodule key_filter#( parameter CNT_MAX = 20'd999_999 //计数器计数最大值)( input wire sys_clk , //系统时钟50Mhz input wire sys_rst_n , //全局复位 input wire key_in , //按键输...
2021-05-28 09:29:59
465
原创 FPGA的学习:6分频的实现
首先画出系统框图和时序图。`timescale 1ns/1nsmodule divider_six( input wire sys_clk , //系统时钟50Mhz input wire sys_rst_n , //全局复位 output reg clk_flag //指示系统时钟6分频后的脉冲标志信号);reg [2:0] cnt; //用于计数的寄存器//cnt:计数器从0到5循环...
2021-05-27 10:03:03
1278
2
原创 FPGA的学习:5分频的实现
首先先把偶分频的系统框图和时序图画出来。此次采用降频的原理,了解了远离之后,开始代码的编写。`timescale 1ns/1nsmodule divider_five( input wire sys_clk , //系统时钟50Mhz input wire sys_rst_n , //全局复位 output reg clk_flag //指示系统时钟5分频后的脉冲标志信号);reg [2...
2021-05-26 13:46:42
1534
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人