自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cabinGGG的博客

23找工作,24毕业,记录关于就业的杂七杂八。

  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 【FPGA】通俗理解从VGA显示到HDMI显示

【野火,FPGA实现VGA和HDMI】

2023-09-06 21:39:21 2412 1

原创 【面试】一文讲清组合逻辑中的竞争与冒险

逻辑险象:当输入信号只有一个发生变化,或者虽然有多个发生变化但是没有发生功能险象的可能,由于门的延迟不同,产生了静态险象,称为逻辑险象,前面的两个例子都是逻辑险象。当A从0变化到1时,两条到达或门的路径虽然存在竞争,但是输出端没有出现瞬时的脉冲,即输出端不会出现冒险。当A从1变化到0时,因为A信号是先从1变为0,然后才是A'从0变为1,也就是A'经过了一个非门,A'变化比A晚,竞争的定义:组合逻辑电路中,输入信号的变化传输到电路的各级逻辑门,到达的时间有先后,也就是存在时差,称为。现象,称为冒险(险象)。

2023-08-23 11:09:28 1780

原创 【集创赛】2023年海云捷讯杯初赛完成效果

基于FPGA的视觉缺陷检测,识别的物体分别为zhezhou(折皱)、zhenkong(针孔)、zangwu(脏污)、cashang(擦伤),识别的准确率以及所识别物体的位置都如图所示。识别的视频(演示)来源于官方提供的视频,也可以使用自己笔记本电脑上的摄像头进行视频流的输入,同样可以识别自己所训练好的模型。训练的标签就只有这四种类别,数据集的图像大概有1400多张。训练完后对训练的模型进行预测如下图所示。在虚拟机中进行交叉编译,运行脚本文件。2023年海云捷讯杯初赛完成效果。

2023-06-25 13:38:56 904 4

原创 【小白入门】Verilog实现异步FIFO

其次在写代码的时候,还需要了解格雷码,地址是按照0000-0001-0010-xxxx这种增长的,但是在地址变化的过程中,地址中的位数会存在”跳变“,如从0001-0010这两个相邻码的时候,有两位发生了变化,这样是不好的。①首先是在读的视角,如果如果读一行数据的时候,刚好也在往这一行数据里面写数据,那这个时候即可判断读空了,如果再继续向下读的话,里面就没有写进的数据,读出的数据也不是我们写进去的,就是无效的。所以写满判断的条件是:在写的时钟下,写完一圈对应的地址,等于同步过来的读地址。

2023-06-14 14:30:43 1648 1

原创 重写异步fifo(.v文件加仿真)

之前写的一篇文章作为参考,然后再写一个位宽为8位,深度位256位的fifo。

2023-06-07 13:27:01 128

原创 【蓝桥杯G431】AT24C02读写与I2C通信协议学习

EEPROM的读写

2023-01-19 20:00:45 242

原创 【蓝桥杯】STM32G431嵌入式学习系列①-LED操作

第十四届蓝桥杯嵌入式,LED部分的学习。

2023-01-05 17:59:12 632

原创 STM32F103系列+CubeMX快速实现流水灯及步骤详解

STM32F103ZET6+CubeMX快速实现流水灯及步骤详解

2022-11-23 21:13:39 1427 1

原创 【RISC-V】基于开源RISC-V MCU内核PicoRV32的FPGA移植

基于开源RISC-V MCU内核PicoRV32的FPGA移植

2022-11-01 14:08:09 4216 12

原创 FPGA学习的阶段性总结1

FPGA学习的阶段性总结1

2022-08-14 17:34:07 233

原创 串口RS232、DDS信号发生器、VGA、HDMI的学习心得。

顶层模块思维和算法思维

2022-07-20 14:15:54 910

原创 Verilog实现正弦波、三角波、方波、锯齿波的输出

四种常见波形输出或者实现一个简易的DDS信号发生器

2022-07-03 11:11:12 10390 8

原创 序列连续的序列检测(牛客网)

输入序列连续的序列检测

2022-06-27 20:43:04 301

原创 串口RS232的学习

《FPGA Verilog开发实战指南——基于Altera EP4CE10》2021.7.10(上)串口RS232的学习

2022-06-21 18:37:57 5503 4

原创 关于亚稳态的学习

单比特信号从慢速时钟域同步到快速时钟域。

2022-06-15 17:05:34 201

原创 HDLBits一位热码FSM

这也是一种很好的方法

2022-06-06 21:19:08 136

原创 FSM_Verilog实现Lemmming游戏

代码如下module top_module( input clk, input areset, // Freshly brainwashed Lemmings walk left. input bump_left, input bump_right, input ground, input dig, output walk_left, output walk_right, output aaah, output ..

2022-05-29 15:41:22 256

原创 Verilog实现异步FIFO(重难点)

FIFO总概图来自文章Simulation and Synthesis Techniques for Asynchronous FIFO Design先来看总体概图Wdata:写入数据Wfull:写满信号Winc:写请求信号(写使能信号)Wclk:写时钟Wrst_n:写复位信号(低电平有效)Rdata:读出数据Rempty:读空信号Rinc:读请求信号(读使能信号)Rclk:读时钟Rrst_n:读复位信号(低电平有效)一、RAM随机存取存储

2022-05-24 15:36:29 5396 1

原创 FIFO学习记录

一、FIFO是什么?FIFO:First In First Out(先进先出)本质上是一种数据缓冲器,是一个对数据的存储具有先进先出储存器。FIFO存储器主要作为缓存应用在同步时钟系统和异步时钟系统。二、工作原理①写入操作:wr_clk、wr_req(写请求信号)、wr_data(写入数据)假如要将1-10的数据写入FIFO第一个数据最下,第二个次之②读出操作:rd_clk、rd_req(读请求信号)、data_out读出第一个信号的时候,上面的数据会整体

2022-05-19 15:18:27 460

原创 Verilog_单端口RAM_IP核调用

vivado配置Verilog调用代码module ram(input wire sys_clk,input wire wr_en,input wire [7:0] addr,input wire [7:0] data_in,output wire [7:0] data_out ); s_ram_8x256 inst1 ( .clka(sys_clk), // input wire clka .wea(wr_en), // in...

2022-05-18 11:34:44 1034

原创 PLL锁相环IP核的功能实现_Vivado

目标:调用锁相环IP核,用50MHz占空比50%的时钟信号输入,输出设置四个端口。端口1:倍频,实现100MHz占空比50%信号的输出。端口2:分频,实现25MHz占空比50%信号的输出。端口3:相位调整,将输入信号延迟90°。端口4:占空比调整,实现50MHz占空比20%信号的输出。输入信号配置信息如下图所示:输出信号配置信息如下图所示:Verilog仿真调用代码:module pll( input wire sys_clk, output wire c.

2022-05-15 17:32:17 775

原创 PLL(锁相环)IP核

PLL(Phase locked loop,即锁相环)是最常用的IP核之一,其性能强大,可以对输入到FPGA的时钟信号进行任意分频、倍频、相位调整、占空比调整,从而输出一个期望的时钟。PLL的基本工作原理如下图所示整体为一个反馈系统,输出的信号会作为反馈信号参与到系统中。对上图解释说明:①:输入的参考时钟ref_clk会与④输出时钟进行比较,若参考时钟频率等于比较时钟频率,则在①处会输出0若参考时钟大于比较时钟的频率则会输出一个变大的成正比的信号若参考时钟小于比较时钟的频

2022-05-15 11:23:34 1820

原创 Verilog动态数码管显示_数据产生模块

动态数码管显示分为多个模块如下图以下先介绍数据产生模块。目标:六位数码管,循环动态显示从000_000—999_999,时间间隔为0.1s。思路:①0.1s计数器cnt_100ms,50MHz晶振,则计数器从0开始计数到4999_999为0.1s,每满每0.1s则重新开始计数。②标志信号cnt_flag,每次计数器计数到最大值减1时,产生一个时钟周期的高电平。③数码管显示数据的产生data,即每次计数满0.1s时自增加1,同样可由标志信号控制,当计满999_999时且标志信.

2022-05-14 18:09:36 1742

原创 Verilog实现无源蜂鸣器发声

要求:顺序循环发声(Do、Re、Mi、Fa....),时间间隔为0.5s。若输入为262Hz的方波,则蜂鸣器发Do的声音,以此类推。那如何向蜂鸣器输入262Hz的方波?假设系统时钟周期为50MHz。50MHz对应的一个周期为20ns,若占空比为50%,则每10ns电平反转一次。则50MHz实现0.5s需要从0开始计数到24_999_999。由于50MHz计数器是上升沿记一次数,262Hz对应的一个周期为3816794ns,则其计数周期为3816794ns/20ns=190840n

2022-05-13 11:41:22 3752

原创 Verilog可乐售卖机(FSM)

可乐售价为2.5元投币有两种选项:投入1元或者投入5角;当投入综合为2.5元时出可乐,当投入总和满3元时,找零0.5元。则状态转移图如下:Verilog代码如下module complex_fsm( input wire sys_clk, input wire sys_rst_n, input wire pi_money_half, input wire pi_money_one, output reg po_cola, output reg po_mo...

2022-05-11 16:52:03 1447

原创 Verilog实现呼吸灯效果

呼吸灯的效果采用PWM调波的形式,即快速的改变每个周期的占空比(一个周期内高电平时间占一个周期时间的比值)来实现点亮到熄灭的效果。示意如下图而关于整个波形图,用50MHz的晶振,从0开始计数到49则为1us。而1ms是1us的1000倍,以1us为基准,从0开始计数到999则为1ms。同理,以1ms为基准,从0开始计数到999则为1s。cnt_en为使能信号,当其为0的时候,实现【完全熄灭】——【完全点亮】过程当cen_en为1的时候,实现【完全点亮】——【完全熄灭】过程下图实现

2022-05-10 11:15:02 4741

原创 流水灯Verilog

需要实现的效果波形图如下,时钟周期假设为50MHz,每隔0.5s转换一次灯的效果。Verilog代码如下module water_led#(parameter CNT_MAX=25'd24_999_999)( input wire sys_clk, input wire sys_rst_n, output reg [3:0]led_out); reg [24:0]cnt; reg cnt_flag; always@(posedge sys_clk or nege

2022-05-09 11:24:10 2638

原创 按键消抖Verilog

时钟频率为50MHz,从0开始计数记到999_999时为20ms,当key_in为低电平时cnt_20ms开始计数,当计数到999_998时,key_flag输出一个周期的脉冲信号,cnt_20ms保持为999_999(若计数到999_999时才输出脉冲的画,当中间停留时间太长就会导致输出多个脉冲周期,也是非常不好的一种现象)。Verilog代码为module key_filter#(parameter CNT_MAX=20'd999_999)( input wire s...

2022-05-08 16:34:46 2149

原创 奇数分频器5分频

module divider_five( input wire sys_clk, input wire sys_rst_n, output wire clk_out ); reg [2:0]cnt; reg clk_1; reg clk_2; always@(posedge sys_clk or negedge sys_rst_n) begin if(sys_rst_n==1'b0) cnt<=3'd0; else if(cnt==3'...

2022-05-07 13:15:30 310

原创 偶数分频器6分频

module divider_six( input wire sys_clk, input wire sys_rst_n, output reg clk_out ); reg [1:0]cnt; always@(posedge sys_clk or negedge sys_rst_n) begin if(sys_rst_n==0) cnt<=0; else if(cnt==2'b10) cnt<=0; else cnt...

2022-05-07 11:33:26 354

原创 ZG展锐数字IC岗编程题

题目:请用Verilog RTL描述如下图设计:以clk为基准,设计一个秒计数器,在指定的计数值产生中断,实时输出当前的秒数计数值。<1>clk是时钟输入,频率为32.768KHz。<2>rst_n是异步复位输入,低电平有效,复位整个系统,为高则整个系统开始工作,其上升沿已经同步于clk。<3>start是启动信号,一个clk时钟周期的正脉冲,同步于clk。alarm[7:0]是配置信息,单位为秒,同步于clk。<4>工作模式:收到star

2022-05-06 15:37:24 283 1

原创 状态机FSM3

module top_module( input clk, input in, input areset, output out); // parameter A=0,B=1,C=2,D=3; reg [1:0]state,next_state; // State transition logic always@(posedge clk or posedge areset)begin case(state) ...

2022-05-04 13:53:06 560

原创 FSM1有限状态机

module top_module( input clk, input areset, // Asynchronous reset to state B input in, output out);// parameter A=0, B=1; reg state, next_state; always @(*)begin // This is a combinational always block // ...

2022-05-02 18:12:00 204

原创 算术移位寄存器

module top_module( input clk, input load, input ena, input [1:0] amount, input [63:0] data, output reg [63:0] q); always@(posedge clk)begin if(load) q<=data; else if(!ena) q<...

2022-05-01 16:12:49 261

原创 边沿检测Verilog

module top_module( input clk, input [7:0] in, output reg [7:0] pedge); reg [7:0] d_last; always @(posedge clk) begin d_last <= in; // Remember the state of the previous cycle pedge <= in & ~d_last; // A positive edge occurr...

2022-04-26 17:14:34 112

原创 Verilog刷题记录5

module top_module ( input clk, input resetn, input [1:0] byteena, input [15:0] d, output [15:0] q); always@(posedge clk) begin if(!resetn) q<=16'b0; else begin q[15:8]&l...

2022-04-23 19:19:57 325

原创 位拆分与运算

`timescale 1ns/1nsmodule data_cal(input clk,input rst,input [15:0]d,input [1:0]sel,output reg[4:0]out,output reg validout);//*************code***********// reg [15:0]d_reg; always@(posedge clk or negedge rst) if(!rst)begin ...

2022-04-21 21:32:17 65

原创 移位运算与乘法

`timescale 1ns/1nsmodule multi_sel(input [7:0]d ,input clk,input rst,output reg input_grant,output reg [10:0]out); reg [1:0] cnt; reg [7:0] din; always @(posedge clk or negedge rst) begin if (!rst) begin cn...

2022-04-21 14:18:30 210

原创 Verilog刷题记录4

module top_module ( input [99:0] a, input [99:0] b, input cin, output cout, output [99:0] sum); // The concatenation {cout, sum} is a 101-bit vector. assign {cout, sum} = a+b+cin;endmodule

2022-04-20 15:59:52 83

原创 Verilog刷题记录3

module top_module( input [1023:0] in, input [7:0] sel, output [3:0] out ); assign out=in[sel*4+3-:4]; //assign out = {in[sel*4+3], in[sel*4+2], in[sel*4+1], in[sel*4+0]}; //assign out = in[sel*4 +: 4]; // assign out = in[se...

2022-04-19 13:13:37 132

mif精灵,用于生成mif文件或者coe文件里面的波形数据

做信号发生器的时候经常需要读取rom,用这个软件可以自动设置生成何种波形,位宽和深度,以及图片也可以转化。

2022-07-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除