FPGA刷题系列
文章平均质量分 84
该专题主要是致力于两个部分:牛客网刷题 和 HDLBits刷题。
IC二舅
IC二舅致力于足不出户,也不用回村就可以把每一位ICer的精神内耗给治愈了!全平台认准“IC二舅”!
展开
-
【牛客网刷题系列 之 Verilog进阶挑战】~ 序列检测专题
对于序列检测的题目,一般可以用两种方法完成:状态机 或者 移位寄存器。可以参考一下这篇博客,这是我之前写的,现在为了刷题,规整了一下,里边讲解的很清楚了,这里我就不多说了,直接传送门。请编写一个序列检测模块,检测输入信号a是否满足01110001序列,当信号满足该序列,给出指示信号match。clk:系统时钟信号rst_n:异步复位信号,低电平有效a:单比特信号,待检测的数据match:当输入信号a满足目标序列,该信号为1,其余时刻该信号为0该题的状态转移图如下所示:其实,这类题写出状态转移图就简单原创 2022-07-09 17:37:20 · 1076 阅读 · 0 评论 -
【牛客网刷题系列 之 Verilog进阶挑战】~ Johnson Counter =【扭环形计数器】=【约翰逊计数器】
对于学过数电的小伙伴来说可能听说过这种计数器,下边我们介绍一下涉及到的知识点以及笔试面试过程中的一些高频考试题。关于什么是 扭环形计数器、环形计数器、m 序列线性反馈移位寄存器 ?(1)扭环形计数器,每次状态变化时仅有一个触发器发生翻转,译码不存在竞争冒险,在n(n≥3)位计数器中,使用2n个状态,有2^n-2n个状态未使用;(2)环形计数器,正常工作时所有触发器中只有一个是1(或0)状态,计n个数需要n个触发器,状态利用率低;(3)n个寄存器的线性反馈移位寄存器LFSR可以产生的最长的随机序列是2^n原创 2022-07-08 16:27:43 · 1726 阅读 · 0 评论 -
【牛客网刷题系列 之 Verilog进阶挑战】~ 存储器专题
关于RAM的分类以及相关知识,可以参考以下几篇文章:1. BRAM和DRAM2. 细分与归类设计一个单端口RAM,它有: 写接口,读接口,地址接口,时钟接口和复位;存储宽度是4位,深度128。注意rst为低电平复位无输入信号 enb, clk, rst addr w_data类型 wire在testbench中,clk为周期5ns的时钟,rst为低电平复位输出信号 r_data类型 wire该题是一个单端口RAM,读和写是不能同时进行的,要么读,要么写,这里还有一个需要区分的点,原创 2022-07-08 11:49:40 · 655 阅读 · 0 评论 -
【牛客网刷题系列 之 Verilog进阶挑战】~ 计数器专题
本次更新注意是针对于计数器而言,怎么评价计数器呢?其实我觉得,计数器不难,但是你还离不开计数器这个东西,包括实现一些任意占空比的任意分频啊,这些都得用得着计数器的。所以说,有必要单独拿出来和大家分享一下下呢!!!...原创 2022-07-08 09:47:41 · 721 阅读 · 3 评论 -
【牛客网刷题系列 之 Verilog进阶挑战】~ 多bit MUX同步器
有几天没更新牛客刷题的博客了,最近有事在忙,只能尽量做到每天一更了!!!一边刷题,一边做点小demo,不断学习。今天这个题主要是一个跨时钟域的多位数据传输,也是比较常见的一种题型,挺有用的,关于跨时钟域怎么处理,可以移步到我之前写的一篇博客,传送门在data_en为高期间,data_in将保持不变,data_en为高至少保持3个B时钟周期。表明,当data_en为高时,可将数据进行同步。本题中data_in端数据变化频率很低,相邻两个数据间的变化,至少间隔10个B时钟周期。无1.1.4 输出描述ou原创 2022-07-07 10:50:57 · 1134 阅读 · 0 评论 -
【牛客网刷题系列 之 Verilog快速入门】~ 优先编码器电路①
之前的十道题是Verilog的基础语法,我觉得必须掌握,但是到了第二部分这个组合逻辑这些题突然有点小恶心,所以说这块的题我就选择性的做了,我会做什么样的题呢?里边涉及到重要的知识点的题我还会拿出来分享的。首先看一下case、casex、casez对应的真值表在case语句中,敏感表达式中与各项值之间的比较是一种全等比较,每一位都相同才认为匹配。在casez语句中,如果分支表达式某些位的值为高阻z,那么对这些位的比较就会忽略,不予考虑,而只关注其他位的比较结果。在casex语句中,则把这种处理方式进一步扩展原创 2022-07-01 14:43:43 · 1188 阅读 · 4 评论 -
【牛客网刷题系列 之 Verilog快速入门】~ 多功能数据处理器、求两个数的差值、使用generate…for语句简化代码、使用子模块实现三输入数的大小比较
题目来源:牛客网根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数,当select信号为0,输出a;当select信号为1,输出b;当select信号为2,输出a+b;当select信号为3,输出a-b.无clk:系统时钟rst_n:复位信号,低电平有效a,b:8bit位宽的有符号数......原创 2022-07-01 09:36:38 · 1039 阅读 · 0 评论 -
【牛客网刷题系列 之 Verilog快速入门】~ 使用函数实现数据大小端转换
考察的是:function和task的定义和区别?这个问题之前总结过,直接老规矩,插眼,传送门在数字芯片设计中,经常把实现特定功能的模块编写成函数,在需要的时候再在主模块中调用,以提高代码的复用性和提高设计的层次,分别后续的修改。请用函数实现一个4bit数据大小端转换的功能。实现对两个不同的输入分别转换并输出。该题官方没有给出。clk:系统时钟rst_n:异步复位信号,低电平有效a,b:4bit位宽的无符号数(注意的是:官方代码并没有声明clk和rst_n,小伙伴们提交的时候注意自己加一下!!!)c,d原创 2022-07-01 09:14:31 · 564 阅读 · 0 评论 -
【牛客网刷题系列 之 Verilog快速入门】~ 位拆分与运算
vcs+verdi联合仿真传送门现在输入了一个压缩的16位数据,其实际上包含了四个数据[3:0][7:4][11:8][15:12],现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低)0: 不输出且只有此时的输入有效1:输出[3:0]+[7:4]2:输出[3:0]+[11:8]3:输出[3:0]+[15:12]输入信号 d, clk, rst类型 wire在testbench中,clk为周期5ns的时钟,rst为低电平复位输出信号 validout原创 2022-06-30 12:21:35 · 656 阅读 · 0 评论 -
【牛客网刷题系列 之 Verilog快速入门】~ 移位运算与乘法
已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效(d给出的信号的上升沿表示写入有效)输入信号 d, clk, rst类型 wire原创 2022-06-29 14:19:37 · 494 阅读 · 0 评论 -
【HDLBits】~ 边沿检测(Edgedetect)
题目这个题检测的是 上升沿,而且是检测到之后,延迟一个周期拉高输出。这是一道经典的题目,思路就是打一拍之后(用触发器就行),把输入取反,之后再与输入相与就可以了。注意:大家一定要注意的是,非阻塞赋值是等到下个有效信号来临的时候才会完成赋值哦!!!这里可以参考我之前写的一篇文章点击查看............原创 2022-06-03 23:57:04 · 1081 阅读 · 2 评论 -
【牛客网刷题系列 之 Verilog快速入门】~ 异步复位的串联T触发器、奇偶校验
点击查看原题用verilog实现两个串联的异步复位的T触发器的逻辑输入信号 data, clk, rst类型 wire在testbench中,clk为周期5ns的时钟,rst为低电平复位输出信号 q原创 2022-06-28 23:05:32 · 578 阅读 · 0 评论 -
【牛客网刷题系列 之 Verilog快速入门】~ 四选一多路器
从今天开始,决定开始新的一个板块,那就是针对牛客网上边的Verilog题目做一个完整的学习,这里有两个目的,其一是记录一下自己的学习过程;其二是为后边学习这方面的同学提供一个参考原创 2022-06-27 22:25:46 · 1108 阅读 · 0 评论