禾赛科技2022数字芯片提前批笔试
1. [问答] 10分
简单实现x[7: 0]*480
assign out = (x<<9) - (x<<5);
2. [问答] 10分
使用verilog实现2个8bit补码的相加。
补码加法运算_溢出判断——Verilog实现 - 代码先锋网
https://www.codeleading.com/article/70255812372/
module top_module (
input [7:0] a,
input [7:0] b,
output [7:0] s,
output overflow
);
assign s=a+b;
assign overflow=((~a[7])&(~b[7])&s[7])|(a[7]&b[7]&(~s[7]));
endmodule
3. [问答] 10分
使用verilog实现下图电路,并简述其用途和优势。
没图
4.[问答] 10分
时序约束中,setup violation和hold violation的常见原因是什么?
clk_latency+clk_path_delay+t_comb+t_ck2q+dff_setup+clk_uncertainty<=clk_period+clk_capture_latency+clk_path_delay
原因:时钟频率太快,组合逻辑太大、寄存器cktoq时间太长,建立时间太长。温度太高
clk_latency+clk_path_delay+t_comb+t_ck2q>=clk_capture_latency+clk_path_delay+t_hold+clk_uncertainty
原因:寄存器hold时间太长,ck2q时间太短,温度太低
5.[问答]10分
请说明采用查表法实现8bit除以8bit的方法,并说明资源消耗情况。
要求x/y,就是求x*1/y
对1/y做查表法,y是ram的地址,1/y的结果用matlab算出来,保存为8bit二进制小数(整数为0),放到ram里。这样就用了2^8=256个 * 8bit = 256byte的ram空间。然后再和x相乘就行了
6. [问答] 10分
FPGA产生两个输出脉冲,要求这两个脉冲之间的延迟为0.5ns,请描述你的实现方案。
先产生一个脉冲信号x
产生一个10MHz的时钟
用一个模为5的计数器,时钟接10MHz,在每一个cnt里做流水线,相当于对x信号delay了五次0.1ns
如何用一个简单的电路给高速脉冲信号做粗略的延时处理(每个脉冲都延时)? - 知乎
7.[问答]10分
请分别解释LUT,CLB,BRAM,ISERDES,GTP,DSP
完全不会
FPGA学习笔记03——FPGA原理及结构_上升沿有效的博客-CSDN博客
(LVDS差分信号简单处理)4. 使用ISERDES接收高速串行数据 - 知乎
8.[问答] 10分
请画出如下语句综合后对应的电路
reg out, int1, int2;
always @(posedge clk) begin
out<=in1 & in2
out<= in1^ in2
out<= in1lin2
end
就综合了最后一句

9.[问答]10分
请画出如下语句综合后对应的电路
wire wire1, sel1, sel2, a,b,c;
assign wire1 = (sel1==1)? a:sel2?b:c

10. [问答] 10分
请用尽量少的2选1 MUX实现一个两输入异或门。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)