FPGA基础知识问答500问连载 (四)

FPGA/ASIC技术

206人已加入

描述

Q36:latch与register的区别,为什么现在多用register.行为级描述中latch如何产生的?

latch是电平触发,register是边沿触发,register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。

Q37:用D触发器做个二分频的电路?画出逻辑电路?

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity two_de_fre is

port(clk: in std_logic;

reset:in std_logic;

clk_out: out std_logic) ;

end two_de_fre;

architecture Behavioral of two_de_fre is

signal sig_clk: std_logic;

begin

process(clk)

begin

if(reset = '1') then

sig_clk <= '0';

elsif(clk'event and clk = '1') then

sig_clk <= not sig_clk;

end if;

end process;

clk_out <= sig_clk;

end Behavioral;

显示工程设计中一般不采用这样的方式来设计,二分频一般通过DCM来实现。通过DCM得到的分频信号没有相位差。

Q38:什么是状态图?

状态图是以几何图形的方式来描述时序逻辑电路的状态转移规律以及输出与输入的关系。

Q39:用你熟悉的设计方式设计一个可预置初值的7进制循环计数器,15进制的呢?

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity seven_counter is
port(reset:in std_logic;
clk: in std_logic;
counter_out std_logic_vector(2 downto 0));
end seven_counter;

architecture Behavioral of seven_counter is

signal sig_counter : std_logic_vector(2 downto 0);

begin

process(reset,clk)

begin

if(reset = '1') then

sig_count <= "101" ; --初值为5

elsif(clk'event and clk = '1') then

sig_count <= sig_count + 1;

end if;

end process;

counter_out <= sig_counter;

end Behavioral;

15进制计数器设计只需将counter_out和sig_counter改为4位就行;

Q39:用VERILOG或VHDL写一段代码,实现消除一个glitch?

将传输过来的信号经过两级触发器就可以消除毛刺。(这是我自己采用的方式:这种方式消除毛刺是需要满足一定条件的,并不能保证一定可以消除)

Q40:sram,falsh memory,及dram的区别?

sram:静态随机存储器,存取速度快,但容量小,掉电后数据会丢失,不像DRAM 需要不停的REFRESH,制造成本较高,通常用来作为快取(CACHE) 记忆体使用

flash:闪存,存取速度慢,容量大,掉电后数据不会丢失

dram:动态随机存储器,必须不断的重新的加强(REFRESHED) 电位差量,否则电位差将降低至无法有足够的能量表现每一个记忆单位处于何种状态。价格比sram便宜,但访问速度较慢,耗电量较大,常用作计算机的内存使用。

Q41:有四种复用方式,频分多路复用,写出另外三种?

四种复用方式:频分多路复用(FDMA),时分多路复用(TDMA),码分多路复用(CDMA),波分多路复用(WDM)

Q42:给出一个组合逻辑电路,要求分析逻辑功能。

所谓组合逻辑电路的分析,就是找出给定逻辑电路输出和输入之间的关系,并指出电路的逻辑功能。
分析过程一般按下列步骤进行:
1:根据给定的逻辑电路,从输入端开始,逐级推导出输出端的逻辑函数表达式。
2:根据输出函数表达式列出真值表;
3:用文字概括处电路的逻辑功能;

Q43:如何防止亚稳态?

1 降低系统时钟频率
2 用反应更快的FF
3 引入同步机制,防止亚稳态传播(可以采用前面说的加两级触发器)。
4 改善时钟质量,用边沿变化快速的时钟信号

Q44:描述反馈电路的概念,列举他们的应用。

反馈,就是在电路系统中,把输出回路中的电量输入到输入回路中去。
反馈的类型有:电压串联负反馈、电流串联负反馈、电压并联负反馈、电流并联负反馈。
负反馈的优点:降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放大器的线性和非线性失真,有效地扩展放大器的通频带,自动调节作用。
电压负反馈的特点:电路的输出电压趋向于维持恒定。
电流负反馈的特点:电路的输出电流趋向于维持恒定。

Q45:有源滤波器和无源滤波器的区别

无源滤波器:这种电路主要有无源元件R、L和C组成
有源滤波器:集成运放和R、C组成,具有不用电感、体积小、重量轻等优点。
集成运放的开环电压增益和输入阻抗均很高,输出电阻小,构成有源滤波电路后还具有一定的电压放大和缓冲作用。但集成运放带宽有限,所以目前的有源滤波电路的工作频率难以做得很高。

Q46:什么叫做OTP片、掩膜片,两者的区别何在?

OTP means one time program,一次性编程
MTP means multi time program,多次性编程
OTP(One Time Program)是MCU的一种存储器类型
MCU按其存储器类型可分为MASK(掩模)ROM、OTP(一次性可编程)ROM、FLASHROM等类型。
MASKROM的MCU价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合
FALSHROM的MCU程序可以反复擦写,灵活性很强,但价格较高,适合对价格不敏感的应用场合或做开发用途;
OTP ROM的MCU价格介于前两者之间,同时又拥有一次性可编程能力,适合既要求一定灵活性,又要求低成本的应用场合,尤其是功能不断翻新、需要迅速量产的电子产品。

Q47、单片机上电后没有运转,首先要检查什么?

首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否是电源电压,例如常用的5V。
接下来就是检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。
然后再检查晶振是否起振了,一般用示波器来看晶振引脚的波形,注意应该使用示波器探头的“X10”档。另一个办法是测量复位状态下的IO口电平,按住复位键不放,然后测量IO口(没接外部上拉的P0口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。

另外还要注意的地方是,如果使用片内ROM的话(大部分情况下如此,现在已经很少有用外部扩ROM的了),一定要将EA引脚拉高,否则会出现程序乱跑的情况。有时用仿真器可以,而烧入片子不行,往往是因为EA引脚没拉高的缘故(当然,晶振没起振也是原因只一)。经过上面几点的检查,一般即可排除故障了。如果系统不稳定的话,有时是因为电源滤波不好导致的。在单片机的电源引脚跟地引脚之间接上一个0.1uF的电容会有所改善。如果电源没有滤波电容的话,则需要再接一个更大滤波电容,例如220uF的。遇到系统不稳定时,就可以并上电容试试(越靠近芯片越好)。

Q48:给了reg的setup,hold时间,求中间组合逻辑的delay范围

Delay < period - setup – hold

Q49:时钟周期为T,触发器D1的寄存器到输出时间最大为T1max,最小为T1min。组合逻辑电路最大延迟为T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件

T3setup>T+T2max,T3hold>T1min+T2min

Q50:阻塞式赋值和非组塞式赋值的区别?

非阻塞赋值:块内的赋值语句同时赋值,一般用在时序电路描述中。
阻塞赋值:完成该赋值语句后才能做下一句的操作,一般用在组合逻辑描述中。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分