Leonico
Leonico
全部文章
分类
数字电路设计随记(1)
题解(55)
归档
标签
去牛客网
登录
/
注册
Leonico的博客
做IC的闲鱼
TA的专栏
55篇文章
15人订阅
Verilog篇题解
55篇文章
5900人学习
全部文章
(共56篇)
题解 | #输入序列不连续的序列检测#
本质上和输入序列连续的序列检测,当data_valid信号有效时,移位寄存器data_r再进行移位即可。 本题的题目要求和Testbench有不相符的地方。题目中要求match在序列匹配的下一个周期拉高,如上图。而Testbench则是在序列匹配的同周期拉高。下面的代码中,被注释掉的部分是符合题目...
2022-03-30
25
2593
题解 | #不重叠序列检测#
来自专栏
2022-4-1:才注意到题目要求使用状态机完成,所以补充了状态机代码。此外,之前的移位寄存器方法我也误以为是右移的,也做了修正。并且Testbench中match和not_match信号好像比题目要求的提前了一个周期。不过之前错误的方法居然通过了测试。希望牛客能提供更完整的测试波形供大家调试。 状...
2022-03-30
42
4302
题解 | #含有无关项的序列检测#
思路同输入序列连续的序列检测,既可以用移位寄存器,又可以用状态机。 代码 移位寄存器 module sequence_detect( input clk, input rst_n, input a, output reg match ); reg [8:0] a_r; ...
2022-03-30
10
1309
题解 | #输入序列连续的序列检测#
来自专栏
简析 序列检测问题可以用移位寄存器,也可以使用状态机。 移位寄存器方法比较简单。设置一个和序列等长的寄存器,每个时钟都将输入移入寄存器的最低位,并判断寄存器中的值是否与序列相同。 状态机方法较为麻烦些。设置若干个状态(一般是序列长度+1个状态),然后每个时钟根据新的输入以及当前状态判断下一状态。 代...
2022-03-29
29
2128
题解 | #根据状态转移图实现时序电路#
来自专栏
这是一个比较标准的状态机题目。 module seq_circuit( input C , input clk , input rst_n, output wire ...
2022-03-29
4
1085
题解 | #使用3-8译码器①实现逻辑函数#
来自专栏
简析 思路和用3-8译码器实现全减器是一样的,甚至还要再简单些。使能状态下,E3=1E3=1E3=1,E2n=0E2_n=0E2n=0,E1n=0E1_n=0E1n=0,译码器的表达式为: {Y0n=A2‾ A1‾ A0‾‾,Y1n=A2‾ A1‾ A0‾...
2022-03-29
12
667
题解 | #用3-8译码器实现全减器#
简析 3-8译码器 先看一下3-8译码器的真值表和表达式。不知道为什么牛客把3-8译码器的基础题目安排在这道题后面... 真值表: A2 A1 A0 Y0_n Y1_n Y2_n Y3_n Y4_n Y5_n Y6_n Y7_n 0 0 0 0 1 1 1 1 1 1 1 0 0 ...
2022-03-29
19
1376
题解 | #用优先编码器①实现键盘编码电路#
来自专栏
代码 module key_encoder( input [9:0] S_n , output wire[3:0] L , output wire GS ); ...
2022-03-28
9
615
题解 | #4bit超前进位加法器电路#
简析 如果只是简单地将逻辑表达式转化为verilog语言,这道题算不上较难题。难点应该是借着这道题理解超前进位加法器。下面梳理一些常见的加法器。 半加器 半加器是最简单的加法器。它不考虑进位输入。其中A和B是两个加数,S是和,C_o是进位输出。 assign S = A ^ B; assig...
2022-03-28
124
5900
题解 | #边沿检测#
来自专栏
简析 对输入信号a打一拍得到a0,然后根据a和a0的值就可以判断出边沿类型。 我最开始写的代码如下: reg a0; always@(posedge clk or negedge rst_n) begin if(~rst_n) begin ri...
2022-03-27
45
1582
首页
上一页
1
2
3
4
5
6
下一页
末页