数字IC备战校招|瑞芯微校招笔试(Verilog实现一个2位带进位全加器,画出门级电路)
//2位加法器顶层模块
module top(s, cout, a, b, cin);
//输入输出端口及变量定义
output [1: 0] s;
output cout;
input [1 : 0] a, b;
input cin;
wirecarry;
//采用结构描述的方式实现一个8位加法器
fulladder m0(s[0], carry, a[0], b[0], cin);
fulladder m1(s[1], cout, a[1], b[1], carry);
endmodule//1位全加器模块
module fulladder(s, cout, a, b, cin);
//输入输出端口定义
output s, cout;
input a, b, cin;
//采用行为描述的方式实现1位全加器
assign s = a ^ b ^ cin;
assign cout = a & b | a & cin | b & cin;
endmodule
门级电路:

文章图片
展开:是一个1bit全加器

文章图片
可列写真值表 ,化简卡诺图,都是血淋淋的教训呀。。。。。
2)DFT测试手段:不是很懂测试
【数字IC备战校招|瑞芯微校招笔试(Verilog实现一个2位带进位全加器,画出门级电路)】参考https://www.cnblogs.com/YINBin/p/7147872.html
3)SDFF cell的结构,并说明如何切换shift & capture 状态
http://www.doc88.com/p-504503775688.html
4)setup violation 和 hold time violation
自己编写SDC文件进行约束。
setup violation
主要就是设法剪掉critical path的delay,要么pipeline(流水线分一下),要么retiming,要么把combination往前后级挪一挪。
hold time violation
hold time violation是clock tree的skew引起的。主要的宗旨就是设法加前面一级combination的delay,比如加buffer什么的。这时候hold time不满足必须让前前面延迟大一些,并大到比clock period还大出至少一个hold time来。也可以适当把clock period缩小。不过hold time并不是自己能控制的,挺闹心的。
在综合时,综上所述,
setup violation是由于前级组合的延迟过大引起的,因此要用set_max_delay来限制,
hold violation是由于前级组合延迟过小引起的,因此不能让他太小,要用set_min_delay来限制。
5)中值滤波器
https://www.cnblogs.com/aslmer/p/5786978.html
推荐阅读
- 最喜6.8.9
- 《数字反应出性格》李莉原创分享第96天|《数字反应出性格》李莉原创分享第96天 昆明
- 何以解忧,企业信息化、数字化选型焦虑之五·系统安全隐患大
- 魔兽世界之一(备战)
- 360|360 将停止 StartCom 数字证书业务;微软的 Visual Studio Tools for AI 现已提供使用
- 成功通航(用宜搭提升数字化管理效能,确保每次飞行任务安全执行)
- 【#4——隆晓莹】沉没成本与投资数字货币的时机
- IC|数字IC后端真的不如前端设计和验证吗()
- CSS兼容性笔记
- Android|年后备战金三银四(Android面试吃透这一篇就没有拿不到的offer......)