【数字设计】恒玄科技_笔试面试题目分享

简介: 【数字设计】恒玄科技_笔试面试题目分享

cb39282b8fb147aaa3a300f70d43c278.png

笔试


1、 用verilog描述一个debounce逻辑。

//Debounce是一个防抖函数,相当于硬件电路中的按键开关所做的防抖。
module debounce(
input clk
input nrst
input press
output press_value
output press_flag);
reg [3:0] cnt;
reg press_reg;
always@(posedge clk or negedge nrst)
if(!nrst)
begin
cnt<='d0;
press_reg<='d1;
end
else if(press_reg!=press && cnt<4'b1111)
cnt <= cnt + 1'b1;
else if (cnt == 4'b1111)
cnt<= 'd0;
else
press_reg<=press;
assign press_value = (cnt == 4'b1111)?press:0;
endmodule


2.下图为符合某一特征多项式的移位寄存器链,用verilog写出输出信号逻辑(中间信号名可自定义)

image.png

module LFSR(
input data_in,
input clk,
input nrst,
input [7:0] seed;
output data_out);
reg [7:0] lsb;
reg out
always@(posedge clk or negedge nrst)
if(!nrst)
lsb <= seed;
else
data_out <= lsb[7] ^data_in;
lsb[0] <= lsb[7] ^data_in;
lsb[1] <= lsb[7] ^data_in ^lsb[0];
lsb[2] <= lsb[7] ^data_in ^lsb[1]
lsb[3] <=lsb[2];
lsb[4] <=lsb[3];
lsb[5] <=lsb[4]^lsb[7] ^data_in;
lsb[6] <=lsb[5];
lsb[7] <=lsb[6]^lsb[7] ^data_in;
endmodule


3.用verilog实现一个2.5分频电路

module (
input clk_in,
input nrst,
output clk_out);  
reg clk_p, clk_n;
always@(posedge clk or negedge nrst)
if(!nrst)
clk_p <= 1'b0;
else
clk_p <= ~clk_p;
always@(nesedge clk or negedge nrst)
if(!nrst)
clk_n <= 1'b0;
else
clk_n <= ~clk_n;
assign clk_out = clk_n & clk_p;
endmodule


4、 如何实现一个数字2倍频电路(思路即可)

一个同或门与一个时钟上升沿有效的D触发器(连接成翻转器)组成,同或门的输入为D触发器输出的非和clk_in,同或门的输出为clk_out;


5.画一个状态机用来检测串行输入的101011序列


6.怎么解决芯片STA分析中出现的setup violation和hold violation

Set up violation 减少寄存器中间的组合逻辑电路的数量,重定时或做成流水线(加寄存器),使用更先进set up time小的工艺库等

Hold violation 加buffer


7.设计一个多时钟切换模块,需要注意哪些方面

时钟切换过程中可能会产生毛刺,

时钟切换前后的频率

Clock切换前后的clock jetter/时钟质量

等等


8.一个1bit信号A和一个10bit信号B,在跨时钟域传输处理上有何异同

单bit信号按照时钟域快慢切换的不同,慢到快可以打两拍,快到慢可以采用电平同步器和脉冲同步器的设计方法

多bit不能采用简单的打两拍,需要采用如异步FIFO,握手信号等方法做跨时钟域


9. 用verilog实现两个8bit有符号数A,B的求和运算,并保证最后的和在-64~63之间//默认有符号数AB的输入形式是原码

module signed_add (
input [7:0] A,
input [7:0] B,
output [8:0] C);
wire [7:0] complement_A;
wire [7:0] complement_B;
wire [8:0] complement_C;
//求AB的补码
assign complement_A = A[7]? {A[7],~A[6:0]}+1'b1: A  ;
assign complement_B =  B[7]? {B[7],~B[6:0]}+1'b1: B  ;  
assign complement_C = complement_A + complement_B;
assign C = ($signed(complement_C)>(-64) && $signed(complement_C)<(63) ) ? complement_C[7:0] :0 ;
//输出的C也是补码形式,不同工具对补码的表示不一定都支持,有需要再换成原码即可
endmodule


10.设计一个8bit输入的mod 3运算模块(实现思路即可)

mod3运算:除三的余数

使用状态机,除以三的余数的可能性为0,1,2,一共三种状态

8bit输入放在寄存器中

再使用一个从零开始的计数器,每个时钟上升沿自增1,直到和8bit输入相等

在这个过程中,0-1-2-0-1-2,三种状态循环改变

最后相等的时候对应输出所在状态代表的余数即可


一面


聊天,应该没啥培养体系,进来就干活,一对一带教


复试


一个串并转换模块的验证testbench搭建和verificationspec的报告

相关文章
|
11月前
|
Web App开发 缓存 前端开发
浏览器常见面试题目及详细答案解析
本文围绕浏览器常见面试题及答案展开,深入解析浏览器组成、内核、渲染机制与缓存等核心知识点。内容涵盖浏览器的主要组成部分(如用户界面、呈现引擎、JavaScript解释器等)、主流浏览器内核及其特点、从输入URL到页面呈现的全过程,以及CSS加载对渲染的影响等。结合实际应用场景,帮助读者全面掌握浏览器工作原理,为前端开发和面试提供扎实的知识储备。
425 4
|
11月前
|
缓存 NoSQL Java
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
605 6
|
11月前
|
算法 Java 关系型数据库
校招 Java 面试基础题目解析及学习指南含新技术实操要点
本指南聚焦校招Java面试,涵盖Java 8+新特性、多线程与并发、集合与泛型改进及实操项目。内容包括Lambda表达式、Stream API、Optional类、CompletableFuture异步编程、ReentrantLock与Condition、局部变量类型推断(var)、文本块、模块化系统等。通过在线书店系统项目,实践Java核心技术,如书籍管理、用户管理和订单管理,结合Lambda、Stream、CompletableFuture等特性。附带资源链接,助你掌握最新技术,应对面试挑战。
251 2
|
11月前
|
安全 Java 编译器
Java 校招面试题目合集及答案 120 道详解
这份资料汇总了120道Java校招面试题目及其详细答案,涵盖Java基础、JVM原理、多线程、数据类型、方法重载与覆盖等多个核心知识点。通过实例代码解析,帮助求职者深入理解Java编程精髓,为校招面试做好充分准备。无论是初学者还是进阶开发者,都能从中受益,提升技术实力和面试成功率。附带的资源链接提供了更多学习材料,助力高效备考。
663 3
|
SQL Java
java面试题笔试常见选择题大全含答案
java面试题笔试常见选择题大全含答案
|
11月前
|
存储 算法 Java
校招 java 面试基础题目及解析
本文围绕Java校招面试基础题目展开,涵盖平台无关性、面向对象特性(封装、继承、多态)、数据类型、关键字(static、final)、方法相关(重载与覆盖)、流程控制语句、数组与集合、异常处理等核心知识点。通过概念阐述和代码示例,帮助求职者深入理解并掌握Java基础知识,为校招面试做好充分准备。文末还提供了专项练习建议及资源链接,助力提升实战能力。
262 0
|
运维 Linux Docker
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
|
人工智能 自然语言处理 算法
通义灵码助力技术求职:如何成为笔试面试冲刺的“超级助手”
在技术岗位竞争日益激烈的当下,求职季的备战已不仅是知识储备的较量,更是效率与实战能力的比拼。面对海量面试题、复杂算法挑战及快速迭代的技术框架,开发者亟需高效工具辅助突破瓶颈。阿里云推出的智能编码工具通义灵码,凭借其代码生成、优化及智能问答等核心能力,正成为开发者备战求职季的“超级助手”。
|
缓存 关系型数据库 MySQL
面试题目总结
面试题目总结
427 6
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)