1,以下关于false-path的描述正确的是
A,一般模拟IP和系统的互联接口都可以设置为false-path
B,两个不同频率之间的接口一定可以设置为false-path
C,一般异步电路可以设置为false-path
D,一般异步复位可以设置为false-path
答:FALSE PATH就是我们在进行时序分析时,不希望工具进行分析的那些路径。一般不需要工具时序分析的路径指的是异步的路径,异步路径就是指的不同时钟域的路径。
在QuartusII的一个培训文档里面解释了什么时候要用到FALSE PATH:
- 从逻辑上考虑,与电路正常工作不相关的那些路径,比如测试逻辑,静态或准静态逻辑。
- 从时序上考虑,我们在综合时不需要分析的那些路径,比如跨越异步时钟域的路径。
答案:选C
2,芯片接口的三态数据总线实现时如何处理
A,在芯片顶层把三态数据总线转为单向的两组总线
B,在芯片各功能子模块内把三态数据总线转为单向的两组总线
C,在芯片内部总线使用的地方把三态数据总线转为单向的两组总线
D,不需要转换
答:在FPGA中用的双向口一般都是用三态门来作为输入和输出的,这样优点是只要一个接口就可以输入输出比较节约逻辑资源,但缺点是三态门的处理没有常规两个I/O的方便
选A
3,关于IC设计中同步复位与异步复位的区别:
- 同步复位在时钟沿采复位信号,完成复位动作
- 异步复位不管时钟,只要复位信号满足条件,就完成复位
- 异步复位对复位信号要求比较高,不能有毛刺
- 异步复位也需要同步到对应的时钟域,以便后续STA分析
4,关于综合说法不正确的是
A,如果实现的电路频率比较高,一般建议使用LVT Cell库综合
B,如果综合时钟过约束30%,后端就可以实现同等频率
C,综合阶段的时序Violation需尽可能优化干净,否则后端实现可能会出现困难
D,一般为了综合优化的效果好,综合工具使用越新越好
答:A B D
5,Please write verilog code to represent a single bit DFF of synchronized reset and asynchronized reset.
答:
//同步
module DFF1( output reg q,
input d,
input clk,rst
);
always @(posedge clk) //synchronization
begin
if(!rst)
q<=0;
else
q<=d;
end
endmodule
//异步
module DFF2( output reg q,
input d,
input clk,rst
);
always @(posedge clk or negedge rst) //asynchronization
begin
if(!rst)
q<=0;
else
q<=d;
end
endmodule
6,
答:
set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D]
set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D]
7,
答:Tsetup + T1 + T2 + T3 + T4 -T5 < Tcycle
T1 + T2 + T3 + T4 -T5 > Thold