- 博客(47)
- 资源 (1)
- 收藏
- 关注
原创 【FPGA-MicroBlaze】串口收发以及相关函数讲解
目前网上有许多MicroBlaze 的入门教程,比如用串口打印一个hello world。个人感觉这些文章的重合度极高,看多了也没有什么参考价值,且单单就串口打印而言,这个学会了也无法对我们实际工程产生多大的帮助。
2024-11-24 15:32:11
1206
原创 FPGA-Vivado-IP核-逻辑分析仪(ILA)
Xilinx旗下Vivado软件自带的逻辑分析仪(ILA)IP核就能很好的解决对代码内部信号分析的问题。
2024-09-28 20:18:05
1063
原创 FPGA-Vivado-IP核-虚拟输入输出(VIO)
以一个简单的4选1-选择器为例,若要对其输入输出进行测试,则VIO连接如下图所示。具体的上板对4选1-选择器的测试可以参考下面这篇优快云文章。FPGA_学习_15_IP核_VIO。
2024-09-16 18:30:21
1821
1
原创 【面试】一文讲清组合逻辑中的竞争与冒险
逻辑险象:当输入信号只有一个发生变化,或者虽然有多个发生变化但是没有发生功能险象的可能,由于门的延迟不同,产生了静态险象,称为逻辑险象,前面的两个例子都是逻辑险象。当A从0变化到1时,两条到达或门的路径虽然存在竞争,但是输出端没有出现瞬时的脉冲,即输出端不会出现冒险。当A从1变化到0时,因为A信号是先从1变为0,然后才是A'从0变为1,也就是A'经过了一个非门,A'变化比A晚,竞争的定义:组合逻辑电路中,输入信号的变化传输到电路的各级逻辑门,到达的时间有先后,也就是存在时差,称为。现象,称为冒险(险象)。
2023-08-23 11:09:28
2213
原创 【集创赛】2023年海云捷讯杯初赛完成效果
基于FPGA的视觉缺陷检测,识别的物体分别为zhezhou(折皱)、zhenkong(针孔)、zangwu(脏污)、cashang(擦伤),识别的准确率以及所识别物体的位置都如图所示。识别的视频(演示)来源于官方提供的视频,也可以使用自己笔记本电脑上的摄像头进行视频流的输入,同样可以识别自己所训练好的模型。训练的标签就只有这四种类别,数据集的图像大概有1400多张。训练完后对训练的模型进行预测如下图所示。在虚拟机中进行交叉编译,运行脚本文件。2023年海云捷讯杯初赛完成效果。
2023-06-25 13:38:56
1151
4
原创 【小白入门】Verilog实现异步FIFO
其次在写代码的时候,还需要了解格雷码,地址是按照0000-0001-0010-xxxx这种增长的,但是在地址变化的过程中,地址中的位数会存在”跳变“,如从0001-0010这两个相邻码的时候,有两位发生了变化,这样是不好的。①首先是在读的视角,如果如果读一行数据的时候,刚好也在往这一行数据里面写数据,那这个时候即可判断读空了,如果再继续向下读的话,里面就没有写进的数据,读出的数据也不是我们写进去的,就是无效的。所以写满判断的条件是:在写的时钟下,写完一圈对应的地址,等于同步过来的读地址。
2023-06-14 14:30:43
1820
1
原创 【RISC-V】基于开源RISC-V MCU内核PicoRV32的FPGA移植
基于开源RISC-V MCU内核PicoRV32的FPGA移植
2022-11-01 14:08:09
6128
21
原创 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
297
原创 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
5594
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
500
原创 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
1150
原创 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
899
原创 PLL(锁相环)IP核
PLL(Phase locked loop,即锁相环)是最常用的IP核之一,其性能强大,可以对输入到FPGA的时钟信号进行任意分频、倍频、相位调整、占空比调整,从而输出一个期望的时钟。PLL的基本工作原理如下图所示整体为一个反馈系统,输出的信号会作为反馈信号参与到系统中。对上图解释说明:①:输入的参考时钟ref_clk会与④输出时钟进行比较,若参考时钟频率等于比较时钟频率,则在①处会输出0若参考时钟大于比较时钟的频率则会输出一个变大的成正比的信号若参考时钟小于比较时钟的频
2022-05-15 11:23:34
1991
原创 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
1905
原创 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
4091
原创 【FSM有限状态机理解】以Verilog可乐售卖机为例
FSM有限状态机是学习Verilog语法中非常重要的知识点,本文章以可乐售卖机为例,写Mealy状态机,理解状态机的转移等过程,相信理解状态机会对以后的编程会起到非常大的帮助。
2022-05-11 16:52:03
1631
原创 【Verilog】代码实现呼吸灯效果并仿真测试
呼吸灯的效果采用PWM调波的形式,即快速的改变每个周期的占空比(一个周期内高电平时间占一个周期时间的比值)来实现点亮到熄灭的效果。
2022-05-10 11:15:02
5223
原创 流水灯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
2805
原创 Verilog实现按键消抖功能代码及其仿真
按键消抖的原理就是通过延时来消除按键按下前几十毫秒的抖动。本文用Verilog代码实现按键消抖的功能,并对代码进行测试仿真。
2022-05-08 16:34:46
2397
原创 奇数分频器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
352
原创 偶数分频器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
420
原创 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
324
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
611
原创 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
248
原创 算术移位寄存器
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
320
原创 边沿检测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
161
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人