、单项选择题
1.B
2.D
3.C
4.D
5.A
6.C
7.A
8.B
9.C10.D
11.A12.A13.B14.D15.B
、名词解释题
16. 电子设计自动化(Electronics Design Automation )
17. 硬件描述语言(Hardware Description Language )
18. 知识产权核(intellectual property core )
三、判断改错题
19. 对。
20. 对。
21. 错。
交换“硬IP Core”和“软IP Core”的位置
22. 错。
将“功能仿真”改为“时序仿真”
四、简答题
23. 传统的设计方法都是自底向上的,即首先确定可用的元器件,然后根据这些器件进行逻辑设计,完成各模块后进行连接,并形成系统,最后经调试、测量看整个系统是否达到规定
的性能指标。
这种设计方法常常受到设计者的经验及市场器件情况等因素的限制,且没有明显的规律
可循。
另外,系统测试在系统硬件完成后进行,如果发现系统设计需要修改,则需要重新制作电路板,重新购买器件,重新调试与修改设计。
整个修改过程需要花费大量的时间与经费。
再者,传统的电路设计方式是原理图设计方式,而原理图设计的电路对于复杂系统的设计、阅读、交流、修改、更新和保存都十分困难,不利于复杂系统的任务分解与综合。
基于EDA技术的所谓“自顶向下”的设计方法主要采用并行工程和“自顶向下”的设计方法,使开发者从一开始就要考虑到产品生成周期的诸多方面,包括质量、成本、开发时
间及用户的需求等。
该设计方法首先从系统设计入手,在顶层进行功能划分和结构设计,由于采用高级语言描述,因此能在系统级采用仿真手段验证设计的正确性,然后再逐级设计底层的结构,用VHDL、Verilog HDL 等硬件描述语言对高层次的系统行为进行电路描述,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。
“自顶向下”设计方法的特点表现在以下几个方面:
(1) 基于可编程逻辑器件PLD和EDA开发工具支撑。
(2) 采用系统级、电路级和门级的逐级仿真技术,以便及早发现问题,进而修改设计方
案。
(3) 现代的电子应用系统正向模块化发展,或者说向软、硬核组合的方向发展。
对于以往成功的设计成果稍作修改、组合就能投入再利用,从而产生全新的或派生的设计模块。
(4) 由于采用的是结构化开发手段,所以可实现多人多任务的并行工作方式,使复杂系统的设计规模和效率大幅度提高。
(5) 在选择器件的类型、规模、硬件结构等方面具有更大的自由度。
24. 随着集成度的不断提高,IC行业的产品更新换代的周期越来越短,使用IP Core能更快地完成大规模电路的设计;利用IP Core可使设计师不必了解设计芯片所需要的所有技术,
从而降低了芯片设计的技术难度;调用IP Core能避免重复劳动,大大减轻了工程师的负担;
复制IP Core是不需要花费任何代价的。
因此,使用IP Core称为目前现代数字系统设计的发展趋势。
25. 在整个设计流程中仿真的地位十分重要,行为模型的表达、电子系统的建模、逻辑电路
的验证及门级系统的测试等,都离不开仿真。
完成设计输入并成功进行编译仅能说明设计符合一定的语法规范,并不能说明设计功能的正确性,因为在芯片内部存在着传输延时,工作时并不一定严格按照程序运行。
此外,在高频的情况下,对时钟的建立时间和保持时间等都有严格的要求,所以实际运行的结果与程序往往不相符或毛刺过多,只有通过仿真才能了解
程序在芯片内部的工作情况,然后根据情况和需要进行修改和优化,以便于在成品前发现问题,进而解决问题,完善设计。
所以,在现代数字系统设计中需要进行系统仿真。
26. CPLD中的逻辑单元采用PAL结构,由于这样的单元功能强大,一般的逻辑在单元内均可
实现,故互连关系简单,一般通过集总总线即可实现,与FPGA同样集成规模的芯片相比内
部触发器的数量较少。
逻辑单元功能强大的CPLD还具有很宽的输入结构,适用于实现高级
的有限状态机,如控制器等,这种系统逻辑复杂,输入变量多,但对触发器的需求量相对较少。
FPGA逻辑单元采用查找表结构,每单元只有一个或两个触发器,这样的工艺结构占用芯片面积小、速度高,每块芯片上能集成的单元数多,但逻辑单元的功能较弱。
要实现一个较复杂的逻辑功
能,需要几个这样的单元组合才能完成。
小单元的FPGA较适合数据型系统,这种系统所需的触发器数量多,但逻辑相对简单。
五、程序分析题
27.
(1)① data」n1 ② data_temp
(2)① 2' bOO ②2'b01
28.
① reg ② always
六、编程题
29.
module BCD_Dec7(data_ in, data_out);
output[6:0] data_out;
in put[3:0] data_i n;
reg[6:0] data_out;
always @(data_ in)
begin
case(data_ in)
4'b0000: q=7'b0111111;
4'b0001: q=7'b0000110;
41)0010: q=7'b1011011;
4b'0011: q=7'b1001111;
4b'0100: q=7'b1100110;
4b'0101: q=7'b1101101;
4b'0110: q=7'b1111101;
4b'0111: q=7'b0000111;
4b'1000: q=7'b1111111;
4b'1001: q=7'b1101111;
default: q=8'b0111111;
endcase
end
endmodule
30.
module FSM(clk,din,reset,out);
input clk,din,reset;
output out;
reg[1:0] state,next_state;
parameter idle=2b '00,s1=2b'01,s2=2b'10; always @(posedge clk) // 状态更新
begin
if(reset)
state=idle;
else
state=next_state;
begin
// 根据当前状态和输入,计算下一个状态和输出always @(state or din) begin
case(state)
idle:begin
if(din)
begin
next_state=s1;
out=0;
end
else
begin
next_state=idle;
out=0;
end
end
s1:begin
if(din)
begin
next_state=s1;
out=0;
end
else
begin
next_state=s2; out=0;
end end
s2:begin
if(din)
begin
next_state=s1;
out=0;
end
else
begin
next_state=idle;
out=1;
end
end
default:begin
next_state=idle;
out=0;
end
endcase
end
endmodule
范文素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)。