FPGA经典面试题
更新时间:2023-12-09 06:35:01 阅读量: 教育文库 文档下载
FPGA与CPLD内部结构区别? CPLD
以altraMAX7000这种PLD为例,可分为三块结构:宏单元(Marocell),可编程连线(PIA)和I/O控制块。宏单元是PLD的基本结构,由它来实现基本的逻辑功能。可编程连线负责信号传递,连接所有的宏单元。I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。 这种基于乘积项(实际就是与或阵列)的PLD基本都是由EEPROM和Flash工艺制造的,一上电就可以工作,无需其他芯片配合。布线方式是全局的,所以延时可预测。CPLD适合做逻辑设计。 FPGA
FPGA基于LUT,LUT本质上就是一个RAM,每一个LUT可以看成一个有4位地址线的16x1的RAM。这也是为什么FPGA需要外接一个rom来上电配置。
以xilinx的Spartan-II为例,主要包括CLBs,I/O块,RAM块和可编程连线。在spartan-II中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。 Slices可以看成是SpartanII实现逻辑的最基本结构。 FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。 所以如果设计
中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。
2.Latch和Register区别?行为描述中Latch如何产生?
本质的区别在于:latch是电平触发,reg是边沿触发。时序设计中尽量使用reg触发。
行为描述中,如果对应所有可能输入条件,有的输入没有对应明确的输出,系统会综合出latch。
比如:always@( a or b) //缺少else语句 begin if(a==1)
q <= b;
end
3.对竞争冒险的理解,以及如何消除?
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。
4.用Verilog设计一个5分频器。
5分频,奇数分频都可以类似这么做,只需要改div1和div2的参数。div1为奇数分频除2的余数。采用上升延和下降延分别触发不同波形,最后叠加的方式产生奇数分频。
module divfreq(clk, clk1x, rst, clk1xpose, clk1xnege, coutpose, coutnege);
input clk; input rst; output clk1x; output clk1xpose; output clk1xnege; output[2:0] coutpose; output[2:0] coutnege; reg clk1xpose; reg clk1xnege; reg[2:0] coutpose; reg[2:0] coutnege;
parameter div1 = 2 , div2 = 4; // div1 = 5 / 2, div2 = 5 - 1 assign clk1x = clk1xpose | clk1xnege; always@(posedge clk or negedge rst) begin if(!rst)
clk1xpose = 0;
else if(coutpose == div1) clk1xpose = ~clk1xpose; else if(coutpose == div2) clk1xpose = ~clk1xpose; else
clk1xpose = clk1xpose; end
always@(negedge clk or negedge rst) begin if(!rst)
clk1xnege = 0;
else if(coutnege == div1) clk1xnege = ~clk1xnege; else if(coutnege == div2)
clk1xnege = ~clk1xnege; else
clk1xnege = clk1xnege; end
always@(posedge clk or negedge rst) begin if(!rst)
coutpose = 0;
else if(coutpose == div2) coutpose = 0; else
coutpose = coutpose + 1; end
always@(negedge clk or negedge rst) begin if(!rst)
coutnege = 0;
else if(coutnege == div2) coutnege = 0; else
coutnege = coutnege + 1; end endmodule
1、FPGA结构一般分为三部分:可编程逻辑块(CLB)、可编程I/O模块和可编程内部连线。
2 CPLD的内部连线为连续式布线互连结构,任意一对输入、输出端之间的延时是固定 ;FPGA的内部连线为分段式布线互连结构,各功能单元间的延时不定(不可预测)。
3 大规模可编程器件主要有CPLD和FPGA两类,其中CPLD通过可编程乘积项逻辑实现其逻辑功能。 基于SRAM的FPGA器件,每次上电后必须进行一次配置。FPGA内部阵列的配置一般采用在电路可重构技术,编程数据保存在静态存储器(SRAM) ,掉电易失。
4 目前世界上有十几家生产CPLD/FPGA的公司,最大的两家是:Altera,Xilinx。
5 硬件描述语言(HDL)是EDA技术的重要组成部分,是电子系统硬件行为描述、结构描述、数据流描述的语言,它的种类很多,如VHDL、Verilog HDL、 AHDL
6 WHEN_ELSE条件信号赋值语句 和 IF_ELSE顺序语句的异同 WHEN_ELSE条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。
IF_ELSE顺序语句中有分号;是顺序语句,必须放在进程中
7 可编程逻辑器件设计输入有原理图输入、硬件描述语言输入和波形输入三种方式。
原理图输入方式是一种最直接的设计描述方式, 硬件描述语言的突出优点是:
* 语言与工艺的无关性;语言的公开可利用性,便于实现大规模系统的设计; * 具有很强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间的转换非常方便,用不着对底层的电路和PLD结构的熟悉。
波形设计输入适用于时序逻辑和有重复性的逻辑函数。 8 用VHDL/Veilog HDL语言开发可编程逻辑电路的完整流程: 文本编辑→功能仿真→逻辑综合→布局布线→时序仿真。
* 所谓综合,就是根据设计功能和实现该设计的约束条件(如面积、速度、功耗和成本等),将设计输入转换成满足要求的电路设计方案,该方案必须同时满足与其的功能和约束条件。综合的过程也是设计目标的优化过程,其目的是将多个模块化设计文件合并为一个网表文件,供布局布线使用,网表中包含了目标器件中的逻辑单元和互连的信息。
正在阅读:
FPGA经典面试题12-09
冠脉介入风险评估10-23
2010年第一季度“三基”培训考试试题12-25
学校防御台风、冰雹等恶劣天气应急预案02-23
《和谐的同学关系》国旗下的讲话范文03-23
现浇钢筋混凝土楼板施工裂缝的案例分析07-21
静电学计算题12-22
最新《有理数的乘法》教学设计汇编11-28
低碳社区营造09-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 试题
- 经典
- FPGA
- 201701批次网上考试应用写作C卷
- 转动设备检修规程
- 计量经济学题库(超完整版)及答案
- 关于企业营运能力分析体系探123
- 《富贵不能淫》练习题(含答案)
- 《含硫化氢油气井安全钻井推荐作法》SY5087-2005
- 国外立体车库的发展现状 - 图文
- Web程序设计期末复习题2014版 - 图文
- MIS管理信息系统(第四版)同步测试答案 - 图文
- (A卷)重庆市大学生公文写作技能竞赛决赛(个人)试题
- 一oracle安装实例(linux)
- 第四版 计算机操作系统 期末考试复习题
- 合同法练习题
- 论绩效考核在公司管理中的实施
- 输电线路近几年高级技师考试题目类型
- 新课标中考语文文言文重要实词(150个)和重要虚词(7个)汇总
- 3 公务员面试技巧大全
- 中国现代文学史
- 2018-2023年中国煤制甲醇行业市场发展预测及投资咨询报告 - 图文
- 党建工作业务知识