AMD 2008 ASIC Design
Part I
1、用cmos搭Z=!( (A&B)| C | D )
2、 To implement any combinational logic, what is the minimum set of logic gate? Why there are so many types of standard cells in the library?
3、What is Register file, one port embedded RAM, two port embedded RAM?
4、Explain how current STA tools calculate the delay using .lib (including cell delay and wire delay)
5、Write a sequence of 3-bit grey code. Can you derive a general equation to convert binary to grey code?
6、Show the IEEE754 binary representation for the floating-point number (10.5)10 in single precision.
7、A,B,C为8bit integer,Z=A*B,Z=A*B+C,比较这两个设计的delay difference,in unit of gate(如:the difference is 4 Full Adder + 1 MUXs)
8、怎样将一个single-bit信号从快时钟域送到慢时钟域,或慢送到快?Multi-bit信号呢? 9、Suppose we have a pipeline which will process the data in 3 cycles. Sometimes the source may have no data to send out, and sometimes the sink may not be able to receive data. Define the interface signals first, and then design the internal control logic. We must keep the throughput 1 data/cycle, and if there are any possibilities the source shall always be able to send out its data.) 10、设计一个计算连续Leading Zeros个数的电路。输入8-bit,输出4-bit。
00001000 0100 00100010 0010 10001000 0000
可以parameterize你的设计吗?其hardware是什么样子的?
11、Design a round-robin arbiter(轮换仲裁) that can accept 8 requests and give grant signals in one cycle.
12、Setup/Hold time,计算电路最大最小延迟
Part II
关于视频的4道题,基础概念
video/image compression 的原理,过程? H.264 encoding 框图
Part III
几道C、perl编程
画出下面两个状态机的逻辑综合图,并说明两种写法的优缺点,望高手指点!!!!! always @(posedge clk or negedge rst) if(!rst) begin state<=0; out<=4'b0000; end else
case(state)
0: begin
state<=1;
out<=4'b0000; end 1:
begin
state<=0; out<=4'b0001; end endcase
always @(posedge clk or negedge rst) if(!rst)
state<=0; else case(state) 0:state<=1; 1:state<=0; endcase
always@(state) if(!state) out=4'b0000; else
out=4'b0001;
前者state 和out[0]分别综合成两个触发器,其中state触发器的输入为它本身的反向。 out[0]的触发器为state的当前输入。
后者只有state一个触发器,输出直接赋值给out[0],
光靠这两段看不出它到底要考啥,估计可能是想考状态机1段,2段,3段式的优缺点。
第一个out要综合成四位的寄存器,占用资源; 第二个则比较节约了 呵呵
2段和1段相比,没有节省资源吧,还多用了寄存器了 不过肯定是提高了程序代码的可读性和维护性
我觉得这两段的输出加一步寄存会好一些,可以减少逻辑电路带来的毛刺 吴继华,王城编的《verilog设计和验证》有一章对这个讲得很详细 你可以到论坛里面去找找,好像是有电子版的
第一段代码速度上比较快,但所占资源多;第二段正好相反,只用了一个寄存器,但Timing会差点。所谓可读性,我觉得在这里没什么区别,关键还是硬件实现上的区别。
我的观点是
二段式的状态机将组合逻辑和时序逻辑分离开, 便于综合工具进行分析. ls各位说的,只是基于这两个例子
但是题目是关于状态机的写法的优缺点 这是我的观点
要求:英语作答,不能写Verilog/VHDL(除非要求,其实没有一道允许),必须用门电路 或状态机表示。
1. 设计A[9:0]*101.10111的电路,要求用尽可能少的门。
2. 设计地址生成器,要求依次输出以下序列: 0,8,2,10,4,12,6,14,1,9,3,11,5,13,7,15, 16,24,18,26,.................................,31, 32,40,34,42,.................................,47, 48,56,50,58,.................................,63,
64,72,66,76,.................................,79
3. 设计一个优先级电路Status_A,Status_B,Status_C……,已知Status_A状态优先 级大于Status_B,Status_C……,Status_B状态优先级大于Status_C……,依此类推。检测 出Status_A,则无视其它状态,否则检测Status_B,依此类推。
4. 什么是CTS?为什么要CTS
5. 四道True or False
其中两道:T上升,performance上升? Worst Case 指的是高温高压?
6. ideal时钟脚本具体电路综合时需要针对性作哪些设置。 A: 综合脚本的一些问题。关于时钟的一些设置。
布图前:creat_clock
set_clock_latency set_clock_transition set_clock_uncertainty 布图后:
7. 问图中clock gating有什么问题?如何改良?
注:这张图是修改后的图,原图是一个正latch或者理解为FF。
此外,这张图直接找来的,最后的那个反相器应该是没有的,或者前面是NAND。
creat_clock
set_propagated_clock set_clock_uncertainty
8. 读report_timing的表,回答:
1)是setup time report还是hold time report? 2)时钟频率多少?
3)如何消除表中的violation?
9. 温度上升or下降时性能下降,问降低Vdd和降低频率去改良首选那种?why?
10. 详细论述为什么clock gating可以降低功耗?
凌汛科技
1、名词解释:CMOS,ESD,Latch-up,HDTV,WiMAX
2、解释setup time和hold time
当两者都出现violation时,在保证电路功能的前提下一定要fix哪一种? 3、列出IC设计中节省功耗的办法
4、解释半导体工艺过程中的天线效应,列出你所知道的解决方案
5、用perl/tcl/shell编程
匹配文件timing.rpt中所有包含VIOLATION的行,按数值大小排序后输出匹配到文件temp
timing.rpt example:
Path 1: VIOLATION Path 2: VIOLATION Path3: VIOLATION
-0.33 -0.12 -0.15
......
6、用一个NOMS和一个PMOS搭一个实际电路中用得到的电路 7、用CMOS搭一个与非门
8、用Verilog/VHDL实现一个clock generator 。 要求如下: a、实现2分频和4分频
b、使两个输出时钟的skew尽可能小
c、受外部噪声影响后,该电路功能可以自行恢复 扬智2008 IC design
1. 列十个你最常用的Verilog的关键字或保留字,并说明哪些是可综合的。 2. 以下两段代码是否有问题?能否综合?综合之后是怎么样的? a) always@ (B or data1 or data2 or data3) case(B)
2'b00: 2'b01: 2'b10: 2'b11:
A = data1; A = data2; A = data3; A = data4;
endcase
b) always@ (posedge clk or negedge rstj) if(~rstj)
A <= 1'b0;
else begin
if (counter1 == 2'b00) A <= C;
if (counter2 == 2'b00) A <= D; end
3. 什么是同步时序电路?什么是异步时序电路?
4. 逻辑综合的主要步骤有哪些?
5. 画图解释set_clock_latency/set_clock_uncertainty/set_clock_transition 的物理含义以及setup/hold的计算
6. FT和CP有什么区别?
7. 列举你所做过的FPGA项目的测试流程(从RTL logic synthesis)开始,以及所 用的主要软件,器件和仪器
8. 下图CMOS电路的表达式?有什么潜在问题?如何改进?
9. 一段英语翻译, constrain file使用说明 ?
10、要求设计一种串行接口协议:寻址范围0x00-0x7f,数据宽度8bit,可读可写(不需要写出完整的RTL code)