【2023 睿思芯科 笔试题】~ 题目及参考答案


名称如标题所示,希望大家正确食用(点赞+转发+评论)

本次笔试题以两种形式考察的,分别是:选择题(包括单选和多选)和编程题。这里强调的是笔试全英文!!!其实不光这一家公司,很多都是这样的,所以,英语还是那么的重要!一共5个选择+2个编程题。

PS:大家在做笔试题的时候一定注意看清考察的题型,这很重要,如果全是简答题的话,那基本就会考察到基本知识、画图以及编程的内容,此时需要你备好纸笔等工具;如果涉及到编程题的话,还是得去刷一刷某客网的题目,感觉很不错,除了这个以外,入门级别的刷题网站还有HDLBits,比较基础,时间充裕也可以刷刷。

下边是具体的题目,仅仅是回忆,哈哈哈!!!

答案仅供参考哈!因为我也是通过查资料学习分享给大家的,有时候不一定保证正确性,但我也是抱着学习的态度给大家分享,我尽可能保证分享的准确性,如有错误,欢迎批评指正!

1. 题目 & 答案

单选题

考察运算符的优先级、reg默认值、initial是否可以综合、进制转换、4’b100x+4’1001得到什么?(那肯定是4’bxxxx)

PS:选择题一般比较难回忆,所以只会写出知识点,而不会将题目写出来的,望谅解!

编程题

问题1:

找出输入序列的第一个0或者1

解析1:

这个问题主要就是从一串序列中找到我们想要得到的第一个数,不管是0还是1,找到它的位置即可!可以采用对折检查的方法,比如8位的串,可以分为前半串的4位和后半串的4位进行检查,这里我们以发现第一个1为例子。

module find_ones(
  input [7:0] x,
  output [2:0] y);

  wire [3:0] data_4;
  wire [1:0] data_2;


  assign y[2] = | x[7:4];
  assign data_4= y[2] ? x[7:4] : x[3:0] ;
  assign y[1] = | data_4[3:2];
  assign data_2 = y[1] ? data_4[3:2] : data_4[1:0];
  assign y[0] = data_2[1];

endmodule

其余的情况大家可以自己研究一下,这个题的解题思路我记得当时是来自网上一篇博客,就是“用Verilog实现寻找第一个1和最后一个1的位置”,也可以把这个题目思考一下!!!

问题2:

斐波那契数列实现

解析2:

做题之前需要知道什么是斐波那契数哦!斐波那契数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、……,意思是后一个数是前两个数之和。其实这个题目也不是很难,但需要注意的是,第一个数是0哦!

`timescale 1ns / 1ps

module fib_generator(
    input clk,
    input rst_n,
    output reg [7 : 0] fib
    );

  reg [7 : 0] num1, num2;
  wire [7 : 0] fib_in;
  reg cnt;

  always@ (posedge clk or negedge rst_n)
  begin
    if(!rst_n) begin
      num1 <= 8'h1;
      num2 <= 8'h1;
    end
    else if(!cnt)
      num1 <= num1 + num2;
    else
      num2 <= num1 + num2;
  end

  always@ (posedge clk or negedge rst_n)
  begin
    if(!rst_n)
      cnt <= 0;
    else
      cnt <= ~cnt;
  end

  assign fib_in = cnt ? num2 : num1;
  always@(posedge clk or negedge rst_n)
  begin
    if(!rst_n)
      fib <= 'h0;
    else
      fib <= fib_in;
  end

endmodule

写出来不一定百分比对,只会给大家做个参考。

声明

本人所有系列的文章,仅供学习,不可商用,如有侵权,请告知,立删!!!

本人主要是记录学习过程,以供自己回头复习,再就是提供给后人参考,不喜勿喷!!!

如果觉得对你有用的话,记得收藏+评论!!!

全网各平台同名===> “IC二舅”

下一期如果有大家想看的 或者 哪块不懂想学习的,可以私聊或在群里提问都可以,“二舅” 给你安排上!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值