
秋招手撕代码
文章平均质量分 76
IC learner
记录和分享学习和工作过程中的个人总结
展开
-
同步fifo的三种实现方法
目录同步fifo框图判断空满方法一Verilog实现TB实现波形判断空满方法二Verilog实现TB实现波形判断空满方法三Verilog实现TB实现波形*参考*同步fifo框图下图为深度为4的fifo写示意图。当wr_ptr = rd_ptr时,要么fifo为空(最开始状态),要么fifo为满(最后状态)判断空满方法一使用计数器(counter)记录读写操作,当(wr_en & !rd_end) == 1时,只写不读,计数器加1;当(!wr_en & rd_end) ==原创 2022-05-12 17:25:38 · 2594 阅读 · 1 评论 -
10010序列检测器
10010序列检测器重复检测输入,当检测到输入端顺序输入10010序列时,输出为1。1.使用同步状态机1.状态转移图2.Verilog 实现module detect_10010( input clk, input rst_n, input in_a, output reg detect); parameter S0 = 3'b000, S1 = 3'b001, S2 = 3'b010, S3 = 3'原创 2022-05-12 08:00:00 · 4196 阅读 · 0 评论 -
同步复位和异步复位同步释放
同步和异步时序电路在了解同步复位和异步复位前,我们要首先了解同步时序电路和异步时序电路的概念。同步时序电路,指的是电路中所有的触发器的时钟使用统一的clk,状态变化发生在同一个时刻。异步时序电路,指的是电路中没有统一的clk,触发器的状态变化有先有后。同步复位同步复位,指的是在同步时序逻辑电路中复位信号受统一的时钟控制。以最简单的同步复位D触发器为例Verilog实现moudle synchronous_reset( input clk, input a_in, output re原创 2022-05-09 22:09:38 · 1775 阅读 · 0 评论 -
边沿检测电路
边沿检测上升沿检测原理图Verilog代码如下:module posedge_detect( input clk, input rst_n, input in_a, output p_det); reg reg_q; always @(posedge clk or negedge rst_n) begin if(~rst_n) reg_q <= 0; else begin reg_q <= in_a; end原创 2022-04-28 22:20:19 · 638 阅读 · 6 评论 -
手撕代码-奇偶分频
1.偶分频占空比,一个周期内,高电平时间在整个周期时间的占比。D触发器2分频 使用一个D触发器,把输出Q的取反,作为输入,实现电平的翻转。因为T0时刻,Q反传入输入D,需要等下一个时钟上升沿T1,才会传到输出,所以实现了2分频。4分频使用两个D触发器串联,以第一个D触发器的输出Q,作为第二个触发器的时钟。verilog代码如下:module d_div2_4( input clk, input rst_n, output clk_div2, output clk_d原创 2022-04-27 21:52:50 · 1224 阅读 · 14 评论