首页 FPGA笔试面试题目

FPGA笔试面试题目

举报
开通vip

FPGA笔试面试题目 1 什么是 Setup 和 Holdup 时间? 建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时 间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。见图 1。 如果不满足建立和保持时间的话,那么 DFF 将不能正确地采样到数据,将会出现 metastability 的情况。 如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕 量和保持时间裕量。 图 1 建立时间和保持时间示意图 2...

FPGA笔试面试题目
1 什么是 Setup 和 Holdup 时间? 建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时 间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。见图 1。 如果不满足建立和保持时间的话,那么 DFF 将不能正确地采样到数据,将会出现 metastability 的情况。 如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕 量和保持时间裕量。 图 1 建立时间和保持时间示意图 2 什么是竞争与冒险现象?怎样判断?如何消除? 在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。 产生毛刺叫冒险。 如果布尔式中有相反的信号则可能产生竞争和冒险现象。 解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。 3 用 D 触发器实现 2 倍分频的逻辑电路? Verilog 描述: module divide2( clk , clk_o, reset); input clk , reset; output clk_o; wire in; reg out ; always @ ( posedge clk or posedge reset) if ( reset) out <= 0; else out <= in; assign in = ~out; assign clk_o = out; endmodule 图形描述: 4 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求? 线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用 oc 门来实现,由于不用 oc 门可能使 灌电流过大,而烧坏逻辑门。 同时在输出端口应加一个上拉电阻。 5 什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系。 异步逻辑是各时钟之间没有固定的因果关系。 6 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲 器)。 7 你知道那些常用逻辑电平?TTL 与 COMS 电平可以直接互连吗? 12,5,3.3 TTL 和 CMOS 不可以直接互连,由于 TTL 是在 0.3-3.6V 之间,而 CMOS 则是有在 12V 的有在 5V 的。 CMOS 输出接到 TTL 是可以直接互连。TTL 接到 CMOS 需要在输出端口加一上拉电阻接到 5V 或者 12V。 8 可编程逻辑器件在现代电子设计中越来越重要,请问:你所知道的可编程逻辑器件有哪些? PAL,PLD,CPLD,FPGA。 9 试用 VHDL 或 VERILOG、ABLE 描述 8 位 D 触发器逻辑。 module dff8(clk , reset, d, q); input clk; input reset; input [7:0] d; output [7:0] q; reg [7:0] q; always @ (posedge clk or posedge reset) if(reset) q <= 0; else q <= d; endmodule 10 设想你将设计完成一个电子电路 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。请简述用 EDA 软件(如 PROTEL)进行设计(包 括原理图和 PCB 图)到调试出样机的整个过程。在各环节应注意哪些问题? 电源的稳定上,电容的选取上,以及布局的大小。 11 用逻辑门和 cmos 电路实现 ab+cd 12 用一个二选一 mux 和一个 inv 实现异或 13 给了 reg 的 setup,hold 时间,求中间组合逻辑的 delay 范围。 Delay < period - setup - hold 14 如何解决亚稳态 亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法 预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输 出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级 联式传播下去。 15 用 verilog/vhdl 写一个 fifo 控制器 包括空,满,半满信号。 16 用 verilog/vddl 检测 stream 中的特定字符串 分状态用状态机写。 17 用 mos 管搭出一个二输入与非门。 18 集成电路前段设计流程,写出相关的工具。 19 名词 IRQ,BIOS,USB,VHDL,SDR IRQ: Interrupt ReQuest BIOS: Basic Input Output System USB: Universal Serial Bus VHDL: VHIC Hardware Description Language SDR: Single Data Rate 20 unix 命令 cp -r, rm,uname 21 用波形表示 D 触发器的功能 22 写异步 D 触发器的 verilog module module dff8(clk , reset, d, q); input clk; input reset; input d; output q; reg q; always @ (posedge clk or posedge reset) if(reset) q <= 0; else q <= d; endmodule 23 What is PC Chipset? 芯片组(Chipset)是主板的核心组成部分,按照在主板上的排列位置的不同,通常分为北桥芯片和南桥芯 片。北桥芯片提供对 CPU 的类型和主频、内存的类型和最大容量、ISA/PCI/AGP 插槽、ECC 纠错等支持。 南桥芯片则提供对 KBC(键盘控制器)、RTC(实时时钟控制器)、USB(通用串行总线)、Ultra DMA/33(66)EIDE 数据传输方式和 ACPI(高级能源管理)等的支持。其中北桥芯片起着主导性的作用, 也称为主桥(Host Bridge)。 除了最通用的南北桥结构外,目前芯片组正向更高级的加速集线架构发展,Intel 的 8xx 系列芯片组就 是这类芯片组的代表,它将一些子系统如 IDE 接口、音效、MODEM 和 USB 直接接入主芯片,能够提供 比 PCI 总线宽一倍的带宽,达到了 266MB/s。 24 用传输门和反向器搭一个边沿触发器 25 画状态机,接受 1,2,5 分钱的卖报机,每份报纸 5 分钱 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity pdiv is port(clk:in std_logic; y : out std_logic); end pdiv; architecture bh of pdiv is signal loadn,loadm,a,b :std_logic; signal qn,qm: std_logic_vector(2 downto 0); begin process (clk,loadn,loadm) begin if loadn ='1' then qn<="010"; elsif clk'event and clk='1' then qn<=qn-1; end if; if loadm='1' then qm<="010"; elsif clk'event and clk='0' then qm<=qm-1; end if; end process; loadn<=qn(2); loadm<=qm(2); a<=qn(1); b<=qm(1); y<=a nor b; end bh; 汉王笔试 下面是一些基本的数字电路知识问题,请简要回答之。 a) 什么是 Setup 和 Holdup 时间? b) 什么是竞争与冒险现象?怎样判断?如何消除? c) 请画出用 D 触发器实现 2 倍分频的逻辑电路? d) 什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求? e) 什么是同步逻辑和异步逻辑? f) 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。 g) 你知道那些常用逻辑电平?TTL 与 COMS 电平可以直接互连吗? 2、 可编程逻辑器件在现代电子设计中越来越重要,请问: a) 你所知道的可编程逻辑器件有哪些? b) 试用 VHDL 或 VERILOG、ABLE 描述 8 位 D 触发器逻辑。 3、 设想你将设计完成一个电子电路方案。请简述用 EDA 软件(如 PROTEL)进行设计(包 括原理图和 PCB 图)到调试出样机的整个过程。在各环节应注意哪些问题? 飞利浦-大唐笔试归来 1,用逻辑们和 cmos 电路实现 ab+cd 2. 用一个二选一 mux 和一个 inv 实现异或 3. 给了 reg 的 setup,hold 时间,求中间组合逻辑的 delay 范围。 Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上 升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T 时间到达芯片,这 个 T 就是建立时间-Setup time.如不满足 setup time,这个数据就不能被这一时钟打入触发器,只有在下一个 时钟上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的 时间。时 hold time 不够,数据同样不能被打入触发器。 4. 如何解决亚稳态 5. 用 verilog/vhdl 写一个 fifo 控制器 6. 用 verilog/vddl 检测 stream 中的特定字符串 信威 dsp 软件面试题~ )DSP 和通用处理器在结构上有什么不同,请简要画出你熟悉 的一种 DSP 结构图 2)说说定点 DSP 和浮点 DSP 的定义(或者说出他们的区别) 3)说说你对循环寻址和位反序寻址的理解 4)请写出【-8,7】的二进制补码,和二进制偏置码。 用 Q15 表示出 0.5 和-0.5 扬智电子笔试 第一题:用 mos 管搭出一个二输入与非门。 第二题:集成电路前段设计流程,写出相关的工具。 第三题:名词 IRQ,BIOS,USB,VHDL,SDR 第四题:unix 命令 cp -r, rm,uname 第五题:用波形表示 D 触发器的功能 第六题:写异步 D 触发器的 verilog module 第七题:What is PC Chipset? 第八题:用传输门和倒向器搭一个边沿触发器 第九题:画状态机,接受 1,2,5 分钱的卖报机,每份报纸 5 分钱。 华为面题 (硬件) 全都是几本模电数电信号单片机题目 1.用与非门等设计全加法器 2.给出两个门电路让你分析异同 3.名词:sram,ssram,sdram 4.信号与系统:在时域与频域关系 5.信号与系统:和 4 题差不多 6.晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,12 分之一周期.. 7.串行通信与同步通信异同,特点,比较 8.RS232c 高电平脉冲对应的 TTL 逻辑是?(负逻辑?) 9.延时问题,判错 10.史密斯特电路,求回差电压 11.VCO 是什么,什么参数(压控振荡器?) 12. 用 D 触发器做个二分颦的电路.又问什么是状态图 13. 什么耐奎斯特定律,怎么由模拟信号转为数字信号 14. 用 D 触发器做个 4 进制的计数 15.那种排序方法最快? 一、 研发(软件) 用 C 语言写一个递归算法求 N!; 给一个 C 的函数,关于字符串和数组,找出错误; 防火墙是怎么实现的? 你对哪方面编程熟悉? 新太硬件面题 接着就是专业题目啦 (1)d 触发器和 d 锁存器的区别 (2)有源滤波器和无源滤波器的原理及区别 (3)sram,falsh memory,及 dram 的区别? (4)iir,fir 滤波器的异同 (5)冒泡排序的原理 (6)操作系统的功能 (7)学过的计算机语言及开发的系统 (8)拉氏变换和傅立叶变换的表达式及联系。 如果电路中一定要使用组合逻辑,如何提高电路的可靠性 2.你认为 ASIC 成功的关键是什么? 一开始还以为会让自我介绍一下(以前所有的面试都如此开场),没想到刚一坐下来就是技术问题,有点 蒙。大致如下: 1、同步异步电路的区别(虽然经常提到这个概念,可是真细致的问起来,感觉不好说) 2、异步电路设计要注意哪些问题(同上) 3、怎么提高设计频率 4、数字锁相环的概念和设计要点(这个我前两天拿到资料看了一下,但没仔细看,结果答的比较含糊, 唉) 5、用运放画一个放大器(汗,早忘了) 就记得这些了,接着给欧一份考卷,我答得还可以,能想起下面这些: 1、传输线固有输入阻抗和传输线长度和宽度的关系? 2、漂移发生在多大的频率上?(好像也是锁相环方面的概念,记不太清了) 3、什么狼、羊、仓的逻辑题,很容易 4、ttl 高电平得最低输入电压、低点平的最高输入电压是多少? 5、冒险的概念 6、几个数字电路让你分析,不难,没法画,就不说了。 7、512k*8bit 的 ram 有几根地址线,数据线?(今天面试最容易的题) 8、什么 SDH 和 PDH 的区别?(因为听都没听说过,也不知道记得对不对,知道的人纠正一下哈) 9、pci 是同步还是异步总线? 总之这块还是容易的,但是考得范围比较广,欢迎补充,嗬嗬 大概的印象,可能有点出入,大家参考,最好大牛能给出 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 ,hoho。 1. setup time 和 hold time 不满足情况下应该如何解决? 2. 什么叫做亚稳态,如何解决? 3. Verilog 中 => 和 = 有什么区别? 4. 画一个 D 触发器的原理图(门级),并且用 verilog gate level 表示出来; 5. 用最少的 Mos 管画出一个与非门; 6. 写一段 finite state machine(主要考察 coding style);如果触发器的 setup time/hold time 不满足,这个数 据就不能被这一时钟打入触发器,只有在下一个时钟上升沿到来时,数据才能被打入触发器。 在同步系统中,如果触发器的 setup time/hold time 不满足,就可能产生亚稳态(Metastability),导致采样 错误。此时触发器输出端 Q 在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里 Q 端 毛刺、振荡、固定的某一电压值,而不是等于数据输入端 D 的值。这段之间成为决断时间(resolution time)。 经过 resolution time 之后 Q 端将稳定到 0 或 1 上,但是究竟是 0 还是 1,这是随机的,与输入没有必然的 关系。 只要系统中有异步元件,亚稳态就是无法避免的,因此设计的电路首先要减少亚稳态导致错误的发生,其 次要使系统对产生的错误不敏感。前者需要同步来实现,而后者根据不同的设计应用有不同的处理办法 题目是都用英文写的,我用汉字来表达 1, a 为输入端,b 为输出端,如果 a 连续输入为 1101 则 b 输出为 1,否则为 0 例如 a:0001100110110100100110 b:0000000000100100000000 请画出 state machine 2, 请用 RTL 描述上题 state machine 3,library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity check1101 is Port ( a : in std_logic; clk : in std_logic; b : out std_logic); end check1101; architecture Behavioral of check1101 is signal p : std_logic_vector(0 to 3); begin serial2parallel: process(clk) begin if clk'event and clk='1' then p<=a&p(0 to 2); end if; end process; check: process(clk,p) begin if clk'event and clk='1' then if p = "1101" then b<= '1'; else b<= '0'; end if; end if; end process; end Behavioral; 我的一个同事说的。 你的 p 其实就是一个状态,应该是设两个状态就足够了:1101 和 OTHERS 这只是一个典型的设计题目,而且用状态机做并没有使设计复杂化 你下面的设计会实现有两个延时,不过我相信出题的人不会在意这个的。 还有就是,状态机设计一般都有 reset 的,你要加上这个端口才比较好,当然不加也不算不完整吧 此题 scholes 描述的,只有一个延时。修改如下: library ieee; use ieee.std_logic_1164.all; use ieee.STD_LOGIC_ARITH.all; use ieee.STD_LOGIC_UNSIGNED.all; entity test is port ( rst : in std_logic; clk : in std_logic; a : in std_logic; b : out std_logic ); end test; architecture test of test is signal p: std_logic_vector(3 downto 0 ); begin Start:process (rst, clk, p, a) begin -- process if rst = '1' then if clk'event and clk = '1' then p<=p(2 downto 0)&a; end if; else p<="0000"; end if; end process; Start1:process (rst, clk, p) begin -- process if rst = '1' then if clk'event and clk = '1' then if p = "1101" then b<='1'; else b<='0'; end if; end if; else b<='0'; end if; end process; end test; 本题考察利用有限状态机进行时序逻辑的设计 下面用 verilog 进行描述:(有限状态机提供 6 个状态) module sequence_detect(in,out,clk,rst,state); output out; output[2:0]state; input clk; input rst; input in; reg[2:0]state; wire out; parameter IDLE='d0, A='d1, B='d2, C='d3, D='d4, E='d5; assign out=((state==D)&&(in==1))?1:0; always @(posedge clk) begin if(!rst) begin state<=IDLE; end else case(state) IDLE:if(in==1) // the first code is right, storing the state A // begin state<=A; end A:if(in==1) // the second code is right, storing the state B // begin state<=B; end else begin state<=IDLE; end B:if(in==0) // the third code is right, storing the state C // begin state<=C; end else begin state<=E; end C:if(in==1) // the fourth code is right, storing the state D // begin state<=D; // out<=1; end else begin state<=IDLE; // out<=0; end D:if(in==1) // connecting the front inputted sequence,again introducing one,storing state B // begin state<=B; end else begin state<=IDLE; end E:if(in==0) begin state<=C; end else begin state<=B; end default:state=IDLE; endcase end endmodule library ieee; use ieee.std_logic_1164.all; use ieee.STD_LOGIC_ARITH.all; use ieee.STD_LOGIC_UNSIGNED.all; entity test is port ( rst : in std_logic; clk : in std_logic; a : in std_logic; b : out std_logic ); end test; architecture test of test is signal p: std_logic_vector(2 downto 0 ); begin Start:process (rst, clk) begin if rst = '1' then p<="000"; if clk'event and clk = '1' then p<=p(1 downto 0)&a; end if; end if; end process; Start1:process (rst, clk) begin -- process if rst = '1' then b<='0'; if clk'event and clk = '1' then if p = "110" and a='1' then b<='1'; else b<='0'; end if; end if; end if; end process; end test; 有两段代码 1。proceee(a,b,c,sel,y) begin if (sel) y = a+b; else y = a+c; end 2.y = sel ? a+b : a+c; 面试官说第一中表达方法是先选后加,所以电路实现是一个选择器和一个加法器 第二种方法是先加后选,用到两个加法器和一个选择器,所以他说第一种表达方式要好一些。 查了一下书,发现面试官说的并不全对,一般来说,综合工具会自动的优化,一般只会综合出一个加法器 和一个选择器 先选后加是加法器共用,节省面积 先加后选是用面积换时间,电路的工作速度更快些。为了实现逻辑(A XOR B)OR (C AND D),请选 用以下逻辑中的一种,并说明为什么? 1)INV 2)AND 3)OR 4)NAND 5)NOR 6)XOR 我没有做出来,请大家帮忙看看 我想了一下,用与非是肯定可以实现的 1。与非门的两个输入连在一起就成了非门 2。或门可以用与非和非门搭建 或非其实也可以 1。或非的两个输入 PAD 连在一起成非门 2。与门可以用或非门和非门搭建 奇数分频(6 或者 3) module s1 (// {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE! clkin, clkout, s1, s2 // {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE! );// Port Declaration // {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE! input clkin; output clkout, s1, s2; // {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! wire s1,s2; reg [1:0] step1, step2; always @(posedge clkin) begin case (step1) 2'b00: step1<=2'b01; 2'b01: step1<=2'b10; 2'b10: step1<=2'b00; default :step1<=2'b00; endcase end always @(negedge clkin) begin case (step2) 2'b00: step2<=2'b01; 2'b01: step2<=2'b10; 2'b10: step2<=2'b00; default :step2<=2'b00; endcase end assign clkout=step1[1]|step2[1]; assign s1=step1[1]; assign s2=step2[1]; endmodule testbench: `timescale 1ns/1ns module s1_tb; reg clk_in; wire clk_out,s1, s2; always #50 clk_in=~clk_in; initial begin clk_in=0; #1000 $stop; end s1 s10(.clkin(clk_in), .clkout(clk_out), .s1(s1), .s2(s2)); endmodule 独立晶振 一个 10m 一个 15m ,10m 向 15m 的传输数据问怎么实现 我说小数分频成 10m 内部时钟,再采样 求正 解 数据量少用握手信号,数据量多用 FIFO,如果有很高的时钟资源可以考虑用高时钟采样,但是不是很好的方 法,分频成 5M 是肯定不行的,分成相同频率也是异步信号 1.setup 和 holdup 时间,区别. 2.多时域设计中,如何处理信号跨时域 3.latch 与 register 的区别,为什么现在多用 register.行为级描述中 latch 如何产生的 4.BLOCKING NONBLOCKING 赋值的区别 5.MOORE 与 MEELEY 状态机的特征 6.IC 设计中同步复位与 异步复位的区别 7.实现 N 位 Johnson Counter,N= 8.用 FSM 实现 101101 的序列检测模块 2.多时域设计中,如何处理信号跨时域: 情况比较多,如果简单回答的话就是:跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟 域 1 中的一个信号,要送到时钟域 2,那么在这个信号送到时钟域 2 之前,要先经过时钟域 2 的同步器同 步后,才能进入时钟域 2。这个同步器就是两级 d 触发器,其时钟为时钟域 2 的时钟。这样做是怕时钟域 1 中的这个信号,可能不满足时钟域 2 中触发器的建立保持时间,而产生亚稳态,因为它们之间没有必然 关系,是异步的。这样做只能防止亚稳态传播,但不能保证采进来的数据的正确性。所以通常只同步很少 位数的信号。比如控制信号,或地址。当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只 变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概率,象异步 FIFO 的设计中,比较读 写地址的大小时,就是用这种方法。 如果两个时钟域之间传送大量的数据,可以用异步 FIFO 来解决问题。 6.IC 设计中同步复位与 异步复位的区别 如果光说概念的话:同步复位在时钟沿采复位信号,完成复位动作。 异步复位不管时钟,只要复位信号满足条件,就完成复位动作。 象芯片的上电复位就是异步复位,因为这时时钟振荡器不一定起振了,可能还没有时钟脉冲。异步复 位很容易受到复位端信号毛刺的影响,比如复位端信号由组合逻辑组成,那组合逻辑输出产生的冒险, 就会使触发器错误的复位。 4.BLOCKING NONBLOCKING 赋值的区别 这个问题可参考的资料很多,讲的都很透彻,可以找一下。基本用法就是常说的“组合逻辑用 BLOCKING, 时序逻辑用 NONBLOCKING”。 3.latch 与 register 的区别,为什么现在多用 register.行为级描述中 latch 如何产生的 区别不多说。为什么避免使用 latch,因为设计中用 latch 会使设计后期的静态时序分析变的困难(必 须用的地方当然另当别论)。 行为级描述中 latch 产生的原因:多由于构造组合逻辑电路时,使用 if 或 case 语句,没有把所有的条 件给足,导致没有提到的条件,其输出未知。或者是每个条件分支中,没有给出所有输出的值,这就会产 生 latch。所以构造组合逻辑电路时,其 always 语句中的敏感信号必须包括所有的输入端,每个条件分支 必须把所有的输出端的值都给出来。 1.setup 和 holdup 时间,区别. 建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间 保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间 1.模拟电路设计 基础知识(笔试时候容易遇到的题目) 1.最基本的如三极管曲线特性(太低极了点) 2.基本放大电路,种类,优缺点,特别是广泛采用差分结构的原因 3.反馈之类,如:负反馈的优点(带宽变大) 4.频率响应,如:怎么才算是稳定的,如何改变频响曲线的几个方法 5.锁相环电路组成,振荡器(比如用 D 触发器如何搭) 6.A/D 电路组成,工作原理 如果公司做高频电子的,可能还要 RF 知识,调频,鉴频鉴相之类,不一一列举 太底层的 MOS 管物理特性感觉一般不大会作为笔试面试题,因为全是微电子物理,公 式推导太罗索,除非面试出题的是个老学究 ic 设计的话需要熟悉的软件 adence, Synopsys, Advant,UNIX 当然也要大概会操作 实际工作所需要的一些技术知识(面试容易问到) 如电路的低功耗,稳定,高速如何做到,调运放,布版图注意的地方等等,一般会针 对简历上你所写做过的东西具体问,肯定会问得很细(所以别把什么都写上,精通之类的 词也别用太多了),这个东西各个人就不一样了,不好说什么了。 2.数字电路设计 当然必问 Verilog/VHDL,如设计计数器 逻辑方面数字电路的卡诺图化简,时序(同步异步差异),触发器有几种(区别,优 点),全加器等等 比如:设计一个自动售货机系统,卖 soda 水的,只能投进三种硬币,要正确的找回钱数 1.画出 fsm(有限状态机) 2.用 verilog 编程,语法要符合 fpga 设计的要求 系统方面:如果简历上还说做过 cpu 之类,就会问到诸如 cpu 如何 工作,流水线之类 的问题 3.单片机、DSP、FPGA、嵌入式方面(从没碰过,就大概知道几个名字胡扯几句,欢迎拍 砖,也欢迎牛人帮忙补充) 如单片机中断几个/类型,编中断程序注意什么问题 DSP 的结构(冯.诺伊曼结构吗?) 嵌入式处理器类型(如 ARM),操作系统种类(Vxworks,ucos,winCE,linux),操作系统方 面偏 CS 方向了,在 CS 篇里面讲了 4.信号系统基础 拉氏变换与 Z 变换公式等类似东西,随便翻翻书把 如.h(n)=-a*h(n-1)+b*δ(n) a.求 h(n)的 z 变换 b.问该系统是否为稳定系统 c.写出 F IR 数字滤波器的差分方程 以往各种笔试题举例 利用 4 选 1 实现 F(x,y,z)=xz+yz' 用 mos 管搭出一个二输入与非门。 用传输门和倒向器搭一个边沿触发器 用运算放大器组成一个 10 倍的放大器 微波电路的匹配电阻。 名词解释,无聊的外文缩写罢了,比如 PCI、ECC、DDR、interrupt、pipeline IRQ,BIOS,USB,VHDL,VLSI VCO(压控振荡器) RAM (动态随机存储器),FIR IIR DFT(离散 傅立叶变换) 或者是中文的,比如 a 量化误差 b.直方图 c.白平衡 共同的注意点 1.一般情况下,面试官主要根据你的简历提问,所以一定要对自己负责,把简历上的东 西搞明白;2.个别招聘针对性特别强,就招目前他们确的方向的人,这种情况下,就要投其所好, 尽量介绍其所关心的东西。 3.其实技术面试并不难,但是由于很多东西都忘掉了,才觉得有些难。所以最好在面试 前把该看的书看看。 4.虽然说技术面试是实力的较量与体现,但是不可否认,由于不用面试官/公司所专领域 及爱好不同,也有面试也有很大的偶然性,需要冷静对待。不能因为被拒,就否认自己 或责骂公司。 5.面试时要 take it easy,对越是自己钟情的公司越要这样。 1. 集成电路设计前端流程及工具。 2。FPGA 和 ASIC 的概念,他们的区别 3。LATCH 和 DFF 的概念和区别 4。用 DFF 实现二分频。 5。用 VERILOG 或 VHDL 写一段代码,实现消除一个 glitch 6。给一个表达式 f=xxxx+xxxx+xxxxx+xxxx 用最少数量的与非门实现(实际上就是化简) 7。用 VERILOG 或 VHDL 写一段代码,实现 10 进制计数器。 8。给出一个门级的图,又给了各个门的传输延时,问关键路径是什么,还问给出输入,使得输出依 赖于关键路径。 9。A,B,C,D,E 进行投票,多数服从少数,输出是 F(也就是如果 A,B,C,D,E 中 1 的个数比 0 多,那么 F 输出为 1,否则 F 为 0),用与非门实现,输入数目没有限 1. 可参考各 EDA 厂商的开发工具 2. FPGA 与 ASIC 的可参阅各种 EDA 相关书籍。 3. LATC 是 H 锁存器,DFF 是触发器,其电路形式完全不同。 4. always @(posedge clk) if (reset) begin sel <= 1; clk1 <= 1; clk2 <= 1; end else begin sel <= ~sel; if (sel) clk1 <= ~clk1; else clk2 <= ~clk2; end 5. glitch 主要发生在组合逻辑电路输出,可以加 DFF 输出稳定信号 6,7,8,9: 。。。制。 2. 负数与正数相乘的问题 3. 1010(-6)*0010(2) 用补码相乘时应该进行相应的符号扩展,比如上面是 4bit 相乘,结果应该为 8bit。这样符号扩展后分 别为 11111010 和 00000010,然后再用这两个数直接相乘,结果为 111110100,取其低 8 位 11110100, 作为-6*2 的结果。这也是个补码形式,再判断一下高位恢复为原码,得到结果。 以前讨论过相关问题,可以翻出来看看 检测信号的上升沿 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY sync IS PORT(clk: IN STD_LOGIC; rst: IN STD_LOGIC; sync_in: IN STD_LOGIC; sync_out: OUT STD_LOGIC); END sync; ARCHITECTURE arch OF sync IS SIGNAL sync_int1, sync_int2: STD_LOGIC; BEGIN --------------------------------------------------------- PROCESS(clk, rst, sync_in) BEGIN IF rst='0' THEN sync_out<='0'; ELSIF rising_edge(clk) THEN sync_int1<=sync_in; sync_int2<=sync_int1; IF (sync_int1='1' AND sync_int2='0') THEN sync_out<='1'; ELSE sync_out<='0'; END IF; END IF; END PROCESS; END arch; 并入串出? library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity piso is port( datain :in std_logic_vector(39 downto 0); clk : in std_logic; nLoad:in std_logic; data_out: out std_logic); end piso; architecture Behavioral of piso is signal q: std_logic_vector(39 downto 0); begin process (nLoad,clk) begin if nLoad= '0' then q<=datain; elsif clk'event and clk='1' then q(1)<=q(0); for i in 1 to 39 loop q(i)<=q(i-1); end loop; end if; end process; process (nLoad,clk) begin if nLoad='0' then data_out<='0'; elsif clk'event and clk='1' then data_out <=q(39); end if; end process; end Behavioral; 把所有的 39 改成 15 就可以了 有一些基本概念我可能还不太清楚,说错的地方,请大家批评指教。 我要设计的是 is-95cdma 系统的 48 阶 fir 滤波器。 输入串行数据(每个 clk 输入 1 位) 输入数据宽度为 1 位,系数 h[0]=-0.025288315(十进制)=111111_1111100111(16 位二进制,_为小数点 位置,_前面是符号扩展),-h[0]=+0.025288315(十进制)000000_0000011001(16 位二进制)。其他系数 略。 我用的是映射的方法,即不用乘法,只对应由查找表查出的结果,输入 1 时,映射为+1,查表输出 h[0], 输入 0 时,映射为-1,查表输出-h[0]。再送入加法器求 48 个系数的和。 系数宽度 16 位,输出宽度 22 位(防溢出) datain=1 ,dataout=16116a(十六进制)=0101100001000101101010(22 位二进制) 这是 48 个正系数的和(这里的正系数不一定全是正数,而只是标准,所以把它看作“正数”) datain=0 ,dataout=19ee96(十六进制)=0110011110111010010110(22 位二进制) 这是 48 个负系数的和。 这个结果我对照十进制的数运算结果验证了一下,是对的,但是只能取 22 位的后 16 位来计算,因为高位 的都是加法的进位溢出。 我主要由两个问题: 1)这种映射法,恕我愚钝,根本没明白(我也是看的论文,但没有明白其真正含义),因为它和普通的比如 m 位输入和 n 位的系数相乘得到 m+n 位的结果,思路完全不一样。这个 1,0 映射为+1,-1,和普通的输 入(m 位二进制数代表一个 x(n))有何关系?我的到 16116a,19ee96 这些结果还要累加吗? (此问题可能比较愚蠢,欢迎扔鸡蛋) 2)我运算的是有符号数,那溢出的这些多出的位怎么处理?因为下一步这些数据还要送到下一个模块处 理。保留的话,多出的哪些位显然没用。扔掉的话,行吗? 学了 FOR LOOP 的用法以后,有点想法 那么在此基础上怎么实现并口的输出呢? 如: Q(0)<=DIN; FOR I IN 1 DOWNTO 7 LOOP Q(I)<=Q(I-1); END LOOP; OP<=Q; OP 定义为 STD_LOGIC_vector(7 downto 0) 我总感觉每次触发输出的都是在 Q(7)口,而且该值就是 DIN 在 8 个周期前的值 那么要是想实现 DIN 8 个连续数据的同时输出,应该怎么做? 感觉每次触发输出的都是在 Q(7)口 这句话不是很明白。 反正这样的转换很快的,只要有触发,马上可以完成分析如下: q(0)->q(1),然后 q(1)->q(2),然后 q(2)->q(3)........q(6)->q(7) 实际上只是延迟了几个周期,也就是 q(7)<=din, 并没有实现串行向并行的转换 不大理解用这个 for loop 语句如何实现串并转换的 望告知把 Q(0)<=DIN; FOR I IN 1 DOWNTO 7 LOOP Q(I)<=Q(I-1); END LOOP; 放在进程里面就可以。同志,做 cpld/fpga 设计的时候需要记住一点,verilog 是硬件设计而不是软件编程, 所以,做好不要使用 for 循环这样的语句,太浪费资源了! 思考的时候要学会使用 DFF 这应该是个移位寄存的电路,也是 DIN 8 个连续数据的同时输出,只不过是 移位 1 次,就并处一次。其实隔 8 个周期看一下输出,就是你要的结果了。 真要串入 8 位,并出 1 次,要一个计数器或状态机也行啊去构建自己想要的电路! 这是我写的,5 分频的,改变计数器,可以是别的奇数分频 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; end process; clk3 <= c0 and c1; end Behavioral; c0,c1 一个在时钟的上升沿变化,一个在下降沿变化,所
本文档为【FPGA笔试面试题目】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_805526
暂无简介~
格式:pdf
大小:233KB
软件:PDF阅读器
页数:17
分类:互联网
上传时间:2011-09-03
浏览量:53