前言硬件工程师近年来也开始慢慢吃香,校招进大厂年薪总包不下30-40w的人数一大把!而且大厂人数并没有饱和! - 本期是【Verilog刷题篇】硬件工程师进阶1|序列检测,有不懂的地方可以评论进行讨论!推荐给大家一款刷题、面试的神器,我也是用这一款神器进行学习Verilog硬件代码的!~链接如下:刷题面试神器跳转链接也欢迎大家去牛客查看硬件工程师招聘职位的各类资料,并进行提前批投递面试!小白新手可以通过该神器进行日常的刷题、看大厂面经、学习计算机基础知识、与大牛面对面沟通~ 刷题的图片已经放在下面了~Q1:输入序列连续的序列检测
问题描述:请编写一个序列检测模块,检测输入信号a是否满足01110001序列,当信号满足该序列,给出指示信号match。
模块的接口信号图如下:

模块的时序图如下:

输入描述: clk:系统时钟信号 rst_n:异步复位信号,低电平有效 a:单比特信号,待检测的数据
刺鸟创客
一款专业高效稳定的AI内容创作平台
110
查看详情
输出描述: match:当输入信号a满足目标序列,该信号为1,其余时刻该信号为0
案例代码:
代码语言:j*ascript代码运行次数:0运行复制`timescale 1ns/1nsmodule sequence_detect(input clk,input rst_n,input a,output reg match); parameter zero = 4'd0; parameter one = 4'd1; parameter two = 4'd2; parameter three = 4'd3; parameter four = 4'd4; parameter five = 4'd5; parameter six = 4'd6; parameter seven = 4'd7; parameter eight=4'd8; reg [3:0] cu_st; always@(posedge clk or negedge rst_n) begin if(!rst_n)begin cu_st<=zero; match<=1'b0;end else begin case(cu_st) zero:if(a==1'b0)begin cu_st<=one; match<=1'b0;end else begin cu_st<=zero; match<=1'b0; end one:if(a==1'b1)begin cu_st<=two; match<=1'b0;end else begin cu_st<=one; match<=1'b0; end two:if(a==1'b1)begin cu_st<=three; match<=1'b0;end else begin cu_st<=one; match<=1'b0; end three:if(a==1'b1)begin cu_st<=four; match<=1'b0;end else begin cu_st<=one; maQ2: 含有无关项的序列检测tch<=1'b0; end four:if(a==1'b0)begin cu_st<=five; match<=1'b0;end else begin cu_st<=zero; match<=1'b0; end five:if(a==1'b0)begin cu_st<=six; match<=1'b0;end else begin cu_st<=two; match<=1'b0; end six:if(a==1'b0)begin cu_st<=seven; match<=1'b0;end else begin cu_st<=two; match<=1'b0; end seven:if(a==1'b1)begin cu_st<=eight; match<=1'b0;end else begin cu_st<=one; match<=1'b0; end eight:if(a==1'b1)begin cu_st<=three; match<=1'b1;end else begin cu_st<=one; match<=1'b1; end default:begin cu_st<=zero; match<=1'b0;end endcase end end endmodule
问题描述:请编写一个序列检测模块,检测输入信号a是否满足011XXX110序列(长度为9位数据,前三位是011,后三位是110,中间三位不做要求),当信号满足该序列,给出指示信号match。
程序的接口信号图如下:

程序的功能时序图如下:

输入描述: clk:系统时钟信号 rst_n:异步复位信号,低电平有效 a:单比特信号,待检测的数据
输出描述: match:当输入信号a满足目标序列,该信号为1,其余时刻该信号为0
案例代码:
代码语言:j*ascript代码运行次数:0运行复制`timescale 1ns/1nsmodule sequence_detect(input clk,input rst_n,input a,output reg match); reg [8:0] a_temp; always@(posedge clk or negedge rst_n) begin if(!rst_n) a_temp<=9'b0; else a_temp<={a_temp[7:0],a}; end always@(posedge clk or negedge rst_n) begin if(!rst_n) match<=1'b0; else if(a_temp[8:6]==3'b011&&a_temp[2:0]==3'b110) match<=1'b1; else match<=1'b0; end endmoduleQ3:不重叠序列检测问题描述:请编写一个序列检测模块,检测输入信号(a)是否满足011100序列, 要求以每六个输入为一组,不检测重复序列,例如第一位数据不符合,则不考虑后五位。一直到第七位数据即下一组信号的第一位开始检测。当信号满足该序列,给出指示信号match。当不满足时给出指示信号not_match。
模块的接口信号图如下:

模块的时序图如下:

输入描述: clk:系统时钟信号 rst_n:异步复位信号,低电平有效 a:单比特信号,待检测的数据
输出描述: match:当输入信号a满足目标序列,该信号为1,其余时刻该信号为0 not_match:当输入信号a不满足目标序列,该信号为1,其余时刻该信号为0
案例代码:
代码语言:j*ascript代码运行次数:0运行复制`timescale 1ns/1nsmodule sequence_detect(input clk,input rst_n,input data,output reg match,output reg not_match);reg [5:0]cs;reg [5:0]ns;reg [5:0]count;always@(posedge clk or negedge rst_n) if(!rst_n) count<=0; else if (count>=5) count<=0; else count<=count+1; always@(posedge clk or negedge rst_n)if(!rst_n)begin ns<=0; cs<=0; endelse cs<=ns;parameter IDLE=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6;parameter NOT_MATCH=7;always@(*) case(cs) IDLE:ns = (data==0)? s1:NOT_MATCH; s1:ns = (data==1)? s2:NOT_MATCH; s2:ns = (data==1)? s3:NOT_MATCH; s3:ns = (data==1)? s4:NOT_MATCH; s4:ns = (data==0)? s5:NOT_MATCH; s5:ns = (data==0)? s6:NOT_MATCH; s6:ns = (data==0)? s1:NOT_MATCH; NOT_MATCH:ns = (data==0&&count == 5)? s1:NOT_MATCH;endcasealways@(posedge clk or negedge rst_n) if(!rst_n)begin match<=0; not_match<=0; end else if (count == 5)begin if(ns==s6)begin match<=1; not_match<=0; end else begin match<=0; not_match<=1; end end else begin match <= 1'b0; not_match <= 1'b0; end endmoduleQ4:输入序列不连续的序列检测
问题描述:请编写一个序列检测模块,输入信号端口为data,表示数据有效的指示信号端口为data_valid。当data_valid信号为高时,表示此刻的输入信号data有效,参与序列检测;当data_valid为低时,data无效,抛弃该时刻的输入。当输入序列的有效信号满足0110时,拉高序列匹配信号match。
模块的接口信号图如下:

模块的时序图如下:

输入描述: clk:系统时钟信号 rst_n:异步复位信号,低电平有效 data:单比特信号,待检测的数据 data_valid:输入信号有效标志,当该信号为1时,表示输入信号有效
输出描述: match:当输入信号data满足目标序列,该信号为1,其余时刻该信号为0
案例代码:
代码语言:j*ascript代码运行次数:0运行复制`timescale 1ns/1nsmodule sequence_detect(input clk,input rst_n,input data,input data_valid,output reg match); parameter [3:0] data_ref = 4'b0110; reg [3:0] data_in; always @(posedge clk or negedge rst_n) if(!rst_n) data_in <= 4'b0000; else if(data_valid) data_in <= {data_in[2:0],data}; always @(posedge clk or negedge rst_n) begin if(!rst_n) match <= 1'b0; else if((data_in[2:0] == 3'b011) && (!data)) match <= 1'b1; else match <= 1'b0; end endmoduleQ5:信号发生器问题描述:请编写一个信号发生器模块,根据波形选择信号w*e_choise发出相应的波形:w*e_choice=0时,发出方波信号;w*e_choice=1时,发出锯齿波信号;w*e_choice=2时,发出三角波信号。
模块的接口信号图如下:

模块的时序图如下:

输入描述: clk:系统时钟信号 rst_n:异步复位信号,低电平有效 w*e_choise:2比特位宽的信号,根据该信号的取值不同,输出不同的波形信号
输出描述: w*e:5比特位宽的信号,根据w*e_choise的值,输出不同波形的信号
案例代码:
代码语言:j*ascript代码运行次数:0运行复制`timescale 1ns/1nsmodule signal_generator(input clk,input rst_n,input [1:0] w*e_choise,output reg [4:0]w*e); reg [4:0] cnt; reg k; always @(posedge clk or negedge rst_n) begin if(!rst_n) begin cnt <= 5'd0; w*e <= 5'd0; end else begin case(w*e_choise) 2'd0:begin if(cnt == 5'd19) begin cnt <= 5'd0; w*e <= 5'd0; end else if(cnt>=5'd9 && cnt<5'd19)begin cnt <= cnt + 1'b1; w*e <= 5'd20; end else begin cnt <= cnt + 1'b1; w*e <= 5'd00; end end 2'd1:begin if(w*e >= 5'd20) w*e <= 5'd0; else w*e <= w*e + 1'b1; end 2'd2:begin if(w*e == 5'd0) begin k <= 1'b0; w*e <= w*e + 1'b1; end else if(w*e == 5'd20) begin k <= 1'b1; w*e <= w*e - 1'b1; end else if(k == 1'b0 && w*e < 5'd20) w*e <= w*e + 1'b1; else if(k == 1'b1 && w*e > 5'd0) w*e <= w*e - 1'b1; else w*e <= w*e - 1'b1; end default:begin w*e <= w*e;end endcase end end endmodule总结:小白跟大牛都在用的平台硬件工程师近年来也开始慢慢吃香,校招进大厂年薪总包不下30-40w的人数一大把!而且大厂人数并没有饱和! - 本期是【Verilog刷题篇】硬件工程师从0到入门3|组合逻辑复习+时序逻辑入门,有不懂的地方可以评论进行讨论!
以上就是【Verilog刷题篇】硬件工程师进阶1|序列检测的详细内容,更多请关注其它相关文章!
# 年了
# 濮阳网站建设公司哪有
# 承德推广网站建设哪家好
# 业务推广与营销
# 重庆巴南区酒业网站建设
# 茂名网站快速推广
# 西湖企业网站建设
# 济南营销推广网招聘
# 小众网站海淘推广方案
# 荆州网络营销推广运营
# 海南婚庆网站建设价格
# 硬件
# 来也
# 本期
# 更强
# 不懂
# 已有
# 英特尔
# 的人
# 低电平
# 进阶
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
刊·见 | 捕捉人工智能领域最新动态?收藏Applied Artificial Intelligence
人工智能大胆预测:银河系至少有2万个地球,36种外星文明
面向AI大模型,腾讯云首次完整披露自研星脉高性能计算网络
AI在教育中的角色:AI如何改变我们的学习方式
全场景智能车:智能无处不在|芯驰亮相世界人工智能大会
Win11 AI 助手 Windows Copilot 被吐槽:套皮的 Edge 浏览器
美的推出 AI 双视精准避障的自动集尘扫拖机器人 V12,售价仅为2999元
OpenAI大神Karpathy最新分享:为什么OpenAI内部对AI Agents最感兴趣
美图第二届影像节发布七款AI影像创作工具
上海发布大模型政策 打造AI“模”都
普林斯顿大学推出 Infinigen AI 模型,生成真实自然环境 3D 场景
微软bing聊天推出AI购物工具 可进行比价并查看历史最低价
再度重仓 AI 赛道,SaaS 巨头 Salesforce 扩大 AIGC 风投基金规模
华为发布大模型时代AI存储新品
先进技术在防止全球数据丢失方面的作用
360发布AI数字人广场,可同孙悟空、爱因斯坦等古今中外角色对话
科学家称,面对人工智能,人类未来或只有灭亡与虚拟永生两个选择
学而思网校推出首个基于自研大模型的《人工智能第一课》
人工智能改变网络安全和用户体验的三种方式
深度学习模型综述:用于3D MRI和CT扫描的应用
联通发布鸿湖图文AI大模型1.0,可实现以文生图
AI和ML推动联网设备的增长
AI生成新闻网站数量激增,正在疯狂赚取广告收入
黄仁勋:5年前,我们对AI抱有巨大期望
为什么很多人对纽约《人工智能招聘法》感到生气?
田渊栋团队新研究:微调
谷歌推出 AI 反洗钱工具,可将金融机构内部风险预警准确率提高2至4倍
测试框架-安全和自动驾驶
人工智能在交通领域的革新:智能解决方案彻底改变交通方式
美版贴吧8000小组自爆停摆!拒绝数据被谷歌OpenAI白嫖,CEO被网友骂翻:背刺第三方应用
AI+音乐如何“生成”动听旋律?一起揭秘世界人工智能大会开场曲
谷歌StyleDrop在可控性上卷翻MidJourney,前GitHub CTO用AI颠覆编程
彬州市第三届青少年机器人创新大赛成功举办
Bing Chat 和 Bing Search 正式引入深色模式
ChatGPT会成为你家新的语音助手吗?
数字彩排、虚拟建厂!这家顶级洗衣机工厂敲开“工业元宇宙”之门
华为小艺AI助手将实现强大的大模型能力
微软Bing聊天机器人电脑端即将支持语音提问
华为云发布华为云盘古模型3.0和升腾AI云服务,亮点亮相2025华为开发者大会
元宇宙技术带你穿梭“大运河”,江苏书展上的数字阅读馆吸睛小读者
鸿蒙生态带来了哪些新的流量可能性,包括AI、服务分发和原生智能等方面?
“技术+实践+生态”三箭齐发,京东方抢占物联网高地
报告称 70% 程序员已使用各种 AI 工具编程
2025 WAIC|美团无人机发布第四代新机型
比尔盖茨:AI确实存在风险,但可控
AI工具助力公司实施每周4.5天工作制,带来巨大效益
羚客系统即将升级,推出全新的AI数字化工具
特斯拉人形机器人将于 7 月亮相上海 2025 世界人工智能大会
2025世界人工智能大会成功召开
OpenAI宣布在伦敦设立海外分部,要招揽“世界级人才”
2025-04-26
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。