Verilog面试题(一)——2020乐鑫科技数字IC(串转并、饮料售卖机)

文章目录

  • 题目一:将一个串行执行的C语言算法转化为单拍完成的并行可综合verilog。
    • 思路
    • 代码
      • 知乎数字芯片实验室
      • 牛客讨论区
  • 题目二:饮料售卖机
    • 思路
    • E课网
    • 代码(牛客讨论区)

题目一:将一个串行执行的C语言算法转化为单拍完成的并行可综合verilog。

unsigned char cal_table_high_first(unsigned char value)
{unsigned char i ;
unsigned  char checksum = value ; for (i=8;i>0;--i){if (check_sum & 0x80){check_sum = (check_sum<<1) ^ 0x31;}else{check_sum = (check_sum << 1);}}return check_sum;
}

思路

在这里插入图片描述
在这里插入图片描述
图片来源知乎https://zhuanlan.zhihu.com/p/69969288

代码

知乎数字芯片实验室

以下代码目前没看懂
verilog实现

module loop1(input clk,input rst_n,input [7:0] check_sum,output reg [7:0] check_sum_o
);
//reg [7:0] check_sum_o;
always @ (posedge clk or negedge rst_n)if (!rst_n)begincheck_sum_o <= 8'h0;endelsebegincheck_sum_o[7] <= check_sum[3]^check_sum[2]^check_sum[5];check_sum_o[6] <= check_sum[2]^check_sum[1]^check_sum[4]^check_sum[7];check_sum_o[5] <= check_sum[1]^check_sum[7]^check_sum[0]^check_sum[3]^check_sum[6];check_sum_o[4] <= check_sum[7]^check_sum[0]^check_sum[3]^check_sum[6];check_sum_o[3] <= check_sum[3]^check_sum[7]^check_sum[6];check_sum_o[2] <= check_sum[2]^check_sum[6]^check_sum[5];check_sum_o[1] <= check_sum[1]^check_sum[5]^check_sum[4]^check_sum[7];check_sum_o[0] <= check_sum[0]^check_sum[4]^check_sum[3]^check_sum[6];end
endmodule

tb

module loop1_tb;reg clk;reg rst_n;reg [7:0] check_sum;wire [7:0] check_sum_o;always #1 clk=~clk;initial  beginclk = 0;rst_n = 0;#10 rst_n = 1;for (check_sum=0;check_sum<16;check_sum=check_sum+1)  begin#2 //check_sum = i;$display ("check_sum = %h", check_sum_o);if (check_sum == 15)  $stop;end//$stop;endloop1 loop1_i1(.clk(clk),.rst_n(rst_n),.check_sum(check_sum),.check_sum_o(check_sum_o));
endmodule

来源知乎https://zhuanlan.zhihu.com/p/69969288

牛客讨论区

.1.

module check_sum(clk, rst, value, checksum);input clk, rst;input [7 : 0] value;output reg [7 : 0] checksum;parameter word_size = 8;wire [7:0] checksum1;wire [7:0] checksum2;wire [7:0] checksum3;wire [7:0] checksum4;wire [7:0] checksum5; wire [7:0] checksum6;wire [7:0] checksum7;wire [7:0] checksum8;assign checksum1 = (value[word_size-1] == 1) ? ( (value<<1)^8'h31 ) : ( value<<1 );
assign checksum2 = (checksum1[word_size-1] == 1) ? ( (checksum1<<1)^8'h31 ) : ( checksum1<<1 );
assign checksum3 = (checksum2[word_size-1] == 1) ? ( (checksum2<<1)^8'h31 ) : ( checksum2<<1 );
assign checksum4 = (checksum3[word_size-1] == 1) ? ( (checksum3<<1)^8'h31 ) : ( checksum3<<1 );
assign checksum5 = (checksum4[word_size-1] == 1) ? ( (checksum4<<1)^8'h31 ) : ( checksum4<<1 );
assign checksum6 = (checksum5[word_size-1] == 1) ? ( (checksum5<<1)^8'h31 ) : ( checksum5<<1 );
assign checksum7 = (checksum6[word_size-1] == 1) ? ( (checksum6<<1)^8'h31 ) : ( checksum6<<1 );
assign checksum8 = (checksum7[word_size-1] == 1) ? ( (checksum7<<1)^8'h31 ) : ( checksum7<<1 );always @(posedge clk)beginif(rst) checksum <= 0;else checksum <= checksum8;endendmodule
module checksum #(parameter word_size = 8)(clk, rst, value, checksum);input clk, rst;input [word_size-1: 0] value;output reg [word_size-1: 0] checksum;integer i;always @(posedge clk)if(rst)    checksum <= 0;else  begin//checksum <= 0; 我觉得这句没有应该不影响checksum <= value;for(i=8; i>0; i=i-1) beginif(checksum[word_size-1] == 1)checksum <= (checksum<<1)^8'h31;else checksum <= checksum<<1;endend
endmodule

题目二:饮料售卖机

设计一个自动饮料售卖机,共有两种饮料,其中饮料 A 每个 10 分钱,饮料 B 每个 5 分钱,硬币有 5 分和 10 分两种,并考虑找零。
要求用状态机实现,定义状态,画出状态转移图,并用 Verilog 完整描述该识别模块

思路

售卖机有五种工作状态:闲置、卖5分饮料、卖10分饮料、找零、不找零
输入有三种状态:闲置、按键5分、按键10分、收钱5分,收钱10分

输入:clk,rst,a,b,c
c=0售货机处于闲置状态,c=1售卖状态;c=1,a=0选5分的饮料,c=1,a=1选10分的饮料;b=0售货机收5分钱,b=1收10分钱
输出:state,x,y,k
x=1卖出10分的饮料,y=1卖出5分的饮料,k=1找零
中间寄存器:x,y,k,state
参数:Idle,sel,sel,reward,n_reward

E课网

代码(牛客讨论区)

module    sel_machine(clk,rst,a,b,c,state,x,y,k);input    clk,rst;input    a,b,c;   //c=1,a=0选5分的饮料,c=1,a=1选10分的饮料;//c=0售货机处于闲置状态,c=1售货机处于售卖状态;//b=0售货机收5分钱,b=1收10分钱output    state,x,y,k;reg    x,y,k;    //x=1卖出10分的饮料,y=1卖出5分的饮料,k=1找零    reg    [2:0]    state;    //不同状态的地址parameter    Idle : 3'b1xx;    //售货机处于闲置状态sel5: 3'b001;    //售货机正在卖5分钱的饮料sel10:3'b010;    //售货机正在卖10分钱的饮料reward:3'b011;    //售货机找零n_reward:3'b000;    //售货机不找零always @ (posedge clk) beginif (!rst)  beginstate <= Idle;x <= 0;y <= 0;endelsecase(state)Idle:if(c=1)beginif(a)    state <= sel10;else    state <= sel5;endelse begin   state <= Idle;x <= 0;y <= 0;endsel5:    if(b)beginx <= 0;y <= 1;    state <= reward;endelse beginx <= 0;y <= 1;  state <= n_reward;endsel10:   if(b)  beginx <= 1;y <= 0;   state <= n_reward;endelsebeginx <= 1;y <= 0;      state <= Idle;endreward:    beignk <= 1;state <= Idle;endn_reward:     begink <= 0;   state <= Idle;enddefault:    state <= 3'b1xx;endcaseend
endmodule 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/33886.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

乐鑫科技2022提前批-数字IC类6.29

1/10&#xff3b;单选&#xff5c;3分&#xff3d; 十六进制数0x12345678为big-endian格式&#xff0c;对应的little-endian格式是&#xff1a; 0x87654321 0x78563412 0x56781234 其他都不正确 2/10&#xff3b;单选&#xff5c;3分&#xff3d; X,Y是两个无符号定点小数&…

乐鑫科技数字芯片2017

1. setup time、hold time 含义&#xff0c;并说明setup time和hold time会出现负值的原因 setup time是指在触发器的时钟信号触发之前&#xff0c;数据需要稳定不变的时间 hold time 是指在触发器的时钟信号触发之后&#xff0c;数据需要稳定不变的时间 在考虑时钟skew的…

乐鑫科技数字芯片2020

&#xff08;1&#xff09;序列发生器&#xff0c;产生周期性的"0010110111"序列 module xlgen (clk,rst,Q);input clk ; input rst ;output Q ; reg Q ; reg [9:0] Q_r ;always ( posedge clk or posedge rst) beginif (rst 1) beginQ < 1b0;Q_r < 10b00…

乐鑫科技数字IC提前批2021

整理乐鑫科技2021届招聘的数字IC提前批笔试题&#xff0c;并做了部分答案和解析&#xff0c;有问题的地方欢迎一起探讨。 一&#xff0e;单选题 1.关于跨时钟域电路的设计&#xff0c;以下说法正确的是: A: 信号经两级D触发器同步后即可进行跨时钟域传递 B: 跨时钟域电路存在亚…

乐鑫科技2020数字芯片

摘抄至数字芯片实验室 1、设计一个序列信号发生器电路&#xff0c;能在CLK信号作用下周期性输出“0010110111”的序列信号 2、设计一个自动饮料售卖机&#xff0c;共有两种饮料&#xff0c;其中饮料A每个10分钱&#xff0c;饮料B每个5分钱&#xff0c;硬币有5分和10分两种&a…

乐鑫科技,活跃在国际舞台上的中国芯

众多国内外开发者在社交平台讨论乐鑫产品 说到中国芯片&#xff0c;大家往往很容易先联想到“国产替代”的概念。不过&#xff0c;“国产替代”这四个字早已不足以概括国产芯片的快速发展。乐鑫科技 (688018.SH) 作为来自中国的领先 AIoT 平台企业&#xff0c;在产品设计与研发…

Matter 系列 #9|乐鑫 Matter 预配置服务加速设备生产

乐鑫 Matter 系列文章 #9 目录 Matter 预配置服务 1. 设备认证 (Device Attestation) 2. 独特性 (Uniqueness) 3. 安全性 (Security) 联系我们​​​​​​​ 如今&#xff0c;物联网行业蓬勃发展&#xff0c;大量市场参与者正在积极地构建 Matter 智能设备。 乐鑫一直致…

基于乐鑫 ESP32 的智能手表

拥有一块自己制作的智能手表是不是听起来就很酷&#xff1f;工程师 Pcadic 基于乐鑫 ESP32-PICO-D4 实现了这个想法&#xff01;他开发了一款能够与我们的手机或任何其他设备互联的智能手表 ESP32-Pico-Watch。 ESP32-Pico-Watch 支持 Wi-Fi、蓝牙、Mesh&#xff0c;拥有 1 个振…

乐鑫科技推出 ESP-LEDStrip 智能律动灯方案

人们在丰富多彩的日常生活中对照明设备的功能和效果提出了更高要求&#xff1a;它们不仅要具备基础照明功能&#xff0c;还需要在本地/远程控制、个性化设置、光效调节等多方面提升用户的智能使用体验&#xff0c;甚至在不同场景中发挥渲染气氛、提升装饰品味、制造视觉冲击等作…

乐鑫科技笔试总结

1 CPU包括哪三部分&#xff1f; 运算器&#xff0c;控制器&#xff0c;存储器构成 1、运算器 运算器的基本功能是完成对各种数据的加工处理&#xff0c;例如算术四则运算&#xff0c;与、或、求反等逻辑运算&#xff0c;算术和逻辑移位操作&#xff0c;比较数值&#xff0c;…

乐鑫科技亮相德国嵌入式展 Embedded World 2023!

3 月 14 日&#xff0c;德国纽伦堡嵌入式展 Embedded World 2023 火热启幕。本届 Embedded World 主题为 “embedded. responsible. sustainable”&#xff0c;乐鑫科技 (688018.SH) 携众多 AIoT 科技成果亮相展会&#xff0c;致力于打造更智能、更互联、更绿色的物联网未来。…

乐鑫笔试题C语言,乐鑫科技2020秋招笔试题——数字IC

原题&#xff1a;请将下面这段 C 语言描述的串行处理过程&#xff0c;转换为单拍完成的并行处理&#xff0c;并用可综合的 Verilog 来描述。 unsigned char cal_table_high_first(unsigned char value) { unsigned char i; unsigned char checksum value&#xff1b; for (i8;…

乐鑫科技2020届秋招-数字IC类真题

最近在牛客网刷数字IC真题&#xff0c;看到乐鑫科技2020秋招真题&#xff0c;做完发现有的人首先用c语言模拟输入输出参考模型用作verilog输入输出真值表参数&#xff0c;然后根据真值表算出输入输出各位之间的关系&#xff0c;这显然在现实笔试时是不可取的&#xff0c;时间浪…

数字IC手撕代码-乐鑫科技笔试真题(4倍频)

前言&#xff1a; 本专栏旨在记录高频笔面试手撕代码题&#xff0c;以备数字前端秋招&#xff0c;本专栏所有文章提供原理分析、代码及波形&#xff0c;所有代码均经过本人验证。 目录如下&#xff1a; 1.数字IC手撕代码-分频器&#xff08;任意偶数分频&#xff09; 2.数字I…

乐鑫科技2022笔试面试题

来源于读者投稿&#xff0c;作者来源于牛客网的 galun 。 投递方式&#xff1a;内推。 岗位&#xff1a;嵌入式软件实习生。 个人情况&#xff1a;本科双非电子信息工程&#xff0c;硕士华五软件工程研一在读&#xff1b;本科做过一些很水的项目 &#xff0c;也拿项目搞了一些奖…

chatgpt赋能python:Python下载模块并安装教程

Python下载模块并安装教程 Python 作为一门广泛应用于各个领域的编程语言&#xff0c;具有易学易用、生态丰富等诸多优势&#xff0c;然而为了方便我们进行某些操作&#xff0c;会需要下载一些第三方的模块。因此&#xff0c;本文将介绍如何下载模块并安装。 下载模块 下载模…

Java 基础入门笔记

Java 入门基础笔记 标识符 标识符必须以 字母 _ $ 开头 大小写敏感 可包含 字母 _ $ 不能是 JAVA 的 关键字 int String 驼峰规则 javaBasicKonwledge 基本数据类型 数值型字符型布尔型整数类型(byte short int long)char 字符型true浮点型(float double)String 字符串 …

串口软件Vofa+,超好用。可用于高速采集数据直观化显示动态

&#xff08;上一次写的不够完整&#xff0c;有好多人还会遇到问题&#xff0c;我再回来完善下&#xff09; 使用背景&#xff1a; 在调试无感的无刷直流电机的应用中&#xff0c;需要高速采集3路驱动电压&#xff0c;用于检测反电动势的“过零点”。 &#xff08;其实后来接…

国内IT软件外包公司汇总(2023 最新版)!

关注、星标公众号&#xff0c;直达精彩内容 原文&#xff1a;https://sourl.cn/Y757iG 最近很多读者问我只有外包的 offer 能去吗&#xff1f; 大环境不行&#xff0c;面试太少了&#xff0c;很多本科生想进外包都没机会。非常时期&#xff0c;不需要在意那么多&#xff0c;外包…

鼎捷T100权限管控设定

文章目录 一、名称解释1.1 角色1.2 用户1.3 账号 二、权限结构2.1 权限设置作业 三、权限实作3.1 角色规划3.2 用户数据设置 一、名称解释 1.1 角色 角色代表企业中的一个职能权限集合&#xff0c;例如业务职能需要有估报价单维护、订单维护等操作权限。 角色定义操作权限如作…