aa 串行接口与并行接口区别
串行接口:数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信。
并行接口:数据的各位同时进行传送,其特点是传输速度快。
ab 什么是总线,有什么特点
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。
总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。
ac Spi有几种模式,分别是什么
模式0:CPOL = 0,CPHA = 0。空闲状态SCK串行时钟为低电平;数据采样发生在奇数边沿(上升沿);数据更新发生在偶数边沿(下降沿)。
模式1:CPOL = 0,CPHA = 1.空闲状态SCK串行时钟为低电平;数据采样发生在偶数边沿(下降沿);数据更新发生在奇数边沿(上升沿)。
模式2:CPOL = 1,CPHA = 0。空闲状态SCK串行时钟为高电平;数据采样发生在奇数边沿(下降沿);数据更新发生在偶数边沿(上升沿)。
模式3:CPOL = 1,CPHA = 1.空闲状态SCK串行时钟为高电平;数据采样发生在偶数边沿(上升沿);数据更新发生在奇数边沿(下降沿)。
ad 如何检测信号的上升沿和下降沿
signal_rise_det = ex_sig_r1 && !ex_sig_r2
signal_fall_det = ex_sig_r2 && !ex_sig_r1
ae SDRAM的容量计算
行数 * 列数 * 存储位宽数(存储单元格) * Bank数
8192 * 1024 * 16 * 4 = 512Mbits
af Moore型状态机和Mearly型状态机
其共同点是:状态的跳转都只和输入有关。
区别主要是在输出的时候:若最后的输出只和当前状态有关而与输入无关则称为Moore型状态机; 若最后的输出不仅和当前状态有关还和输入有关则称为Mealy型状态机
ag SDRAM常用命令
比如MT48LC32M16:
-
命令禁止(Command Inhibit)
-
无操作(No Operation)
-
加载模式寄存器(Load Mode Register)
-
激活(Active)
-
读(Read)
-
写(Write)
-
突发停止(Burst Terminate)
-
预充电(Precharge)
-
自动刷新(Auto Refresh)
-
自刷新(Self Refresh)
ah 简述UART
UART是一种通用的数据通信协议,也是异步串行通信串口的总称,它的全称是Universal Asynchronous Receiver/Transmitter,即通用异步收发传输器。UART的主要功能是在接收数据时将串行数据转换为并行数据,发送数据时将并行数据转换为串行数据来传输。它包括了RS232、RS422和RS485等接口标准规范和总线标准规范。
UART的特点:
-
它使用两根线进行数据传输,一根是接收线(RX),一根是发送线(TX)。在不发送或者不接受数据的情况下,rx和tx都保持高电平。
-
它不需要时钟信号,因为它是异步的,即发送方和接收方各自有自己的时钟,通过波特率(Bps)来同步数据传输速率。
-
它使用起始位、数据位、校验位和停止位来组成一个数据帧。起始位和停止位用于标识数据帧的开始和结束,分别为0和1,数据位用于传输实际的数据,校验位用于检测数据是否有误(一般不用)。
-
它可以设置不同的波特率;每秒通过信号线传输的码元数称为码元的的传输速率,简称波特率,其单位为“波特每秒(Bps)”。常见的波特率有4800、9600、115200等。
UART的应用:
-
上位机(PC机)通过串口发送指定的数据,实现FPGA对LED灯序列检测的亮灭控制
-
使用STC89C52RC型号的51单片机接受位置信息,对以$GNRMC开头的消息ID的定位信息进行解析,将时间动态显示在数码管上
-
实现将支持SPI协议通信的FLASH闪存芯片读取的数据,使用串口传回到PC机,显示在串口调试助手上。
UART的优点:
-
通过串口进行调试,十分方便。
-
在较为复杂的高速数据接口和数据链路集合的系统中往往调试比较困难,可以先使用串口将数据链路部分验证后,再把串口换成高速数据接口。(如在做以太网相关的项目时,可以在调试时先使用串口把整个数据链路跑通,然后再把串口换成以太网的接口。)
-
串口的数据一共就两根,也没有时钟线,节省了大量的管脚资源。
UART的缺点:
-
它的速率相对较慢,不能满足高速数据传输的需求
-
它没有错误恢复机制,如果数据出错或丢失,需要上层协议来处理。
-
它没有流控制机制,如果发送方和接收方处理速度不匹配,可能导致数据溢出或丢失。
ai SPI中英文全称
SPI(Serial Peripheral Interface,串行外围设备接口)
aj 固化程序的步骤
以软件QuartusⅡ为例
1.File -> Convert Programming Files
2.在该窗口下需要我们配置:
-
选择输出的格式类型为JTAG Indirect Configuration File(.jic)
-
配置的器件类型(EPCS16)
-
输出.jic文件的位置(prj/output_files/output_file.jic)
-
Device Family和对应板卡的型号(Cyclone IV E-EP4CE10)
-
选择对应的sof文件
3.Programmer -> Delete Other Files -> Add File(.jic) -> Click Program/Configure -> Start
即可实现程序固化
ak IIC通讯协议的传输速率
三种传输模式:标准模式传输速率为100Kbit/s,快速模式为400Kbits/s,高速模式下可达3.4Mbit/s,但目前大多I2C设备尚不支持高速模式。
al 如何使用D触发器实现二分频
FPGA中使用D触发器实现二分频的方法如下:
-
将D触发器的D端连接到其输出端的反相端Q_N,就构成了一个由D触发器形成的2分频电路。这是因为每个时钟周期,D触发器的输出Q和Q_N会交替变化,从而产生一个频率为输入时钟一半的方波信号。
-
如果要实现更高的分频比,可以将多个D触发器级联起来,后续每个D触发器的时钟输入端接上一个D触发器的输出端Q。例如,如果要实现8分频,可以用三个D触发器级联。
am 我使用的芯片型号
-
开发厂商:Altera、Xilinx、Lattice(虽然换了开发环境,但是我相信我可以快速上手,熟悉FPGA开发流程)
-
Device Family:Cyclone IV E
-
Name型号:EP4CE10F17C8
厂商:Xilinx
Device Family:KINTEX-7
Device Name:XC7K325T-2FFG900C
an 支持IIC通信协议如24C64芯片中引脚接上拉电阻的作用
I2C协议采用开漏输出的方式,即信号线上的电平由上拉电阻和设备的输出状态共同决定。这样,当多个设备同时驱动信号线时,不会造成短路或冲突。
上拉电阻的作用是为了使信号线在空闲状态时保持高电平,以及为开漏输出提供高电平驱动能力。如果没有上拉电阻,信号线可能处于悬空状态,容易受到干扰或误判。同时,开漏输出只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻将信号线拉至高电平。因此,上拉电阻是I2C总线必不可少的组成部分。
上拉电阻的阻值不能过大也不能过小,需要根据总线的速率、负载电容、功耗等因素进行合理选择。一般来说,上拉电阻的阻值越小,信号线上升时间越快,传输速率越高,但功耗也越大;反之,上拉电阻的阻值越大,信号线上升时间越慢,传输速率越低,但功耗也越小。通常情况下,上拉电阻的阻值在1KΩ到10KΩ之间。
-
IIC通讯为什么要加上拉电阻? - 21ic电子网
-
【干货】IIC通讯协议上拉电阻的选择与计算 - 知乎
-
【知识分享】I2C为什么要用开漏输出和上拉电阻? - 知乎
ao 74HC595芯片的内部结构
74HC595最主要的功能是串行输入,并行输出,具有移位,锁存和三态输出的作用。
74HC595芯片主要信号如下:
-
SI:串行数据输入
-
SCK:移位寄存器时钟
-
RCK:锁存器时钟
-
G#:输出使能(三态门控制端)-> 低电平输出数据
-
QA-QH:并行数据输出
-
QH:用于级联下一个74HC595芯片
74HC595的内部结构:
74HC595芯片由8个D触发器级联而成,每个D触发器的输出Q端连接了一个锁存器,锁存器后再连接一个三态门,锁存时钟出现上升沿时把数据锁存,三态门的控制信号为低电平时将数据输出,高电平时输出高阻态。如果1个74HC595芯片不够用的话可以级联另一个74HC595芯片。
ap D触发器如何实现八分频
D触发器是一种可以实现分频功能的数字电路元件。要用D触发器实现8分频,有以下几种方法:
-
用三个D触发器级联,将每个D触发器的Q非门与D连接,形成一个二分频电路。然后将第一个D触发器的输出作为第二个D触发器的输入,将第二个D触发器的输出作为第三个D触发器的输入。最后,将第三个D触发器的输出作为8分频的输出。这种方法可以得到占空比为50%的8分频信号。1 2
-
用一个计数器,在待分频时钟上升沿触发下循环计数,从0计数到7后清零。当计数到3时,将输出时钟翻转,当计数到0时,再次翻转。这种方法也可以得到占空比为50%的8分频信号。2
-
用一个状态机,设计一个有8个状态的Moore机,每个状态对应一个输出时钟的值。在待分频时钟上升沿触发下,状态机按照一定的顺序循环跳转。这种方法可以得到任意占空比的8分频信号,但需要更多的逻辑资源。2
aq SPI-FLASH有几个信号线,有什么应用
-
SCK (Serial Clock):时钟信号线,用于同步通讯数据。由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不同,两个设备之间通讯时,通讯速率受限于低速设备。
-
MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,数据方向由主机到从机。
-
MISO (Master Input,Slave Output):主设备输入/从设备输出引脚。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,数据方向由从机到主机。
-
CS#(Chip Select):片选信号线,也称为 CS_N,以下用 CS_N 表示。当有多个 SPI 从设备与 SPI 主机相连时,设备的其它信号线 SCK、MOSI 及 MISO 同时并联到相同的 SPI总线上,即无论有多少个从设备,都共同使用这 3 条总线;而每个从设备都有独立的这一条 CS_N 信号线,本信号线独占主机的一个引脚,即有多少个从设备,就有多少条片选信号线。I2C 协议中通过设备地址来寻址、选中总线上的某个设备并与其进行通讯;而 SPI协议中没有设备地址,它使用 CS_N 信号线来寻址,当主机要选择从设备时,把该从设备的 CS_N 信号线设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行 SPI 通讯。所以 SPI 通讯以 CS_N 线置低电平为开始信号,以 CS_N 线被拉高作为结束信号。
ar 概述B码解析
B码信号是每秒一帧的时间串码,一帧串码中包含100个码元,故每个码元占用10ms时间,其基本的码元是“0”码元、“1”码元和“P”码元。码元“0”和“1”对应的高电平脉冲宽度为2ms和5ms,“P”码元是位置码元,对应的高电平脉冲宽度为 8 ms,每帧的开始位置由两个连续的“P”码元标识。
B码解码模块设计如下:
-
对原脉冲序列进行延时打拍,得到下降沿,再对下降沿打拍得到多个下降沿(方便后续使用)
-
对原脉冲序列高电平计数,低电平处理数据,选取其中一个下降沿进行码元类型的判断
-
定义一个寄存器,在下降沿处寄存前一个码元,得到对应码元下的码元类型
-
检测双P码元,拉高start_flag计数解码标志
-
对对应的时间位上进行解码,通过位拼接方式解析
as 波特率
波特率:在信息传输通道中,携带数据信息的信号单元叫码元(因为串口是 1bit 进行传输的,所以其码元就是代表一个二进制数),每秒钟通过信号传输的码元数称为码元的传输速率,简称波特率,常用符号“Baud”表示,其单位为“波特每秒(Bps)”。串口常见的波特率有 4800、9600、115200 等。
at 简述SDRAM上电初始化时序
SDRAM存储器(如MT48LC32M16芯片)上电的初始化时序是指在SDRAM芯片接通电源后,对其内部的逻辑控制单元和模式寄存器进行配置的过程。这个过程需要遵循以下几个步骤:
-
第一步,等待电源和时钟稳定后,将CKE(时钟使能)信号拉高,使SDRAM芯片开始工作。
-
第二步,发送预充电命令,使Bank中open row无效,然后需要等待至少TRP周期时间才能执行其它命令,期间发送NOP Command,预充电命令的格式是:CS#为低电平,RAS#为低电平,CAS#为高电平,WE#为低电平。
-
第三步,发送至少两个连续的刷新命令,对SDRAM芯片内部的存储阵列进行刷新操作,防止数据丢失。然后等待至少TRFC周期时间才能执行其它命令,期间发送NOP Command,刷新命令的格式是:CS#为低电平,RAS#为低电平,CAS#为低电平,WE#为高电平。
-
第四步,发送一个加载模式寄存器命令,将模式寄存器的值通过地址线提供给SDRAM芯片。模式寄存器的值包含了SDRAM芯片的一些工作参数,如突发长度、突发类型、潜伏期、操作模式、写入突发模式等。加载模式寄存器命令的格式是:CS#为低电平,RAS#为低电平,CAS#为低电平,WE#为低电平。
-
第五步,等待tMRD(模式寄存器设置时间)后,SDRAM芯片就完成了初始化,并进入了正常工作状态。
au FPGA开发流程
从项目提上议程开始, 设计者需要进行FPGA功能的需求分析, 然后进行模块的划分, 比较复杂和庞大的设计则会通过模块划分把工作交给一个团队的多人协作完成。 各个模块的具体任务和功能划分完毕(通常各个模块间的通信和接口方式也同时被确定), 则可以着手进行详细设计, 包括代码输入、 综合优化、 实现(映射和布局布线)。 为了保证设计达到预期要求, 各种设计的约束输入以及仿真验证也穿插其间。 在EDA工具上验证无误后, 则可以生成下载配置文件烧录到实际器件中进行板级的调试丁作。
av SPI介绍
SPI(Serial Peripheral Interface,串行外围设备接口)是一种高速、全双工、同步的通信总线,由主设备和从设备组成,主设备产生时钟信号和片选信号,控制从设备的通信。
SPI的主要特点如下:
-
SPI通讯只需要四根线:SCK(时钟信号)、MOSI(主设备输出、从设备输入)、MISO(主设备输入、从设备输出)和CS#(片选信号)。
-
SPI支持全双工通信,即主设备和从设备可以同时发送和接收数据。
-
其中SCK决定了通讯的频率,不同的设备支持的最高频率不同,两个设备之间通讯时,通讯速率受限于低速设备。
-
SPI协议有四种传输模式,由时钟极性(CPOL)和时钟相位(CPHA)决定,分别规定了时钟空闲状态的电平和数据采样发生在时钟的哪个边沿(模式0:空闲状态,SCK为低电平,数据采样发生在上升沿,数据更新发生在下降沿)。
-
SPI协议的优点是简单、高速、灵活,缺点是没有指定的流控制、没有应答机制(数据可靠性存在一定缺陷)、仅支持一个主设备。
SPI协议的通信过程包括以下几个步骤:
-
起始条件:主设备将从机选择线由高电平拉低,表示要开始一次通信。
-
......
-
存储地址:主设备发送一个读写的存储地址,不同的芯片的存储地址位宽不同,比如HMC7044,该芯片的地址字段为13位;以W25Q16JV为例,存储地址为24位,高八位可以表示选择哪个Block,中间八位可以表示选择哪个Sector,低八位可以表示要写入的页初始地址。
-
数据传输:主设备和从设备按照8位的方式交换数据,时钟线上对应8个时钟周期。数据传输的方向由主设备决定,可以在通信过程中通过重复起始条件和改变读/写位来改变方向。
-
停止条件:主设备将从机选择线由低电平拉高,表示要结束一次通信。
应用方面,我对SPI协议有一定的理解和实践经验,可以使用软件方式来实现SPI通信。我熟悉SPI协议的时序图和数据格式,可以使用示波器或逻辑分析仪来调试和分析SPI通信过程。我也了解一些常用的SPI外围设备的工作原理和寄存器配置方法,可以根据不同的应用场景选择合适的SPI设备。设计过基于SPI总线的Flash(可远程下载程序)驱动控制器,实现FPGA对Flash(如W25Q16JV闪存芯片)的数据写入、数据读取以及扇区擦除和全擦除操作,并完成上板验证。根据HMC830LP6GE芯片手册,通过SPI接口配置其寄存器实现将输入的125MHz通过内部的锁相环输出250MHz。基于ADS42LB69芯片手册,通过SPI接口配置其寄存器实现差分时钟输出以及测试模式下0-65535的A通道8对LVDS、DDR接口选项进行数据输出。
aw SDRAM引脚DM(数据掩码)
Input/output mask: DQM is an input mask signal for write accesses and an output enable signal for read accesses. Input data is masked when DQM is sampled HIGH during a WRITE cycle.The output buffers are placed in a High-Z state (two-clock latency) when DQM is sampled HIGH during a READ cycle. On the x4 and x8, DQML (pin 15) is a NC and DQMH is DQM. On the x16, DQML corresponds to DQ[7:0], and DQMH corresponds to DQ[15:8]. DQML and DQMH are considered same state when referenced as DQM
ax IIC通讯协议(Inter-Integrated Circut)的写时序
I2C设备通信时的写时序是指主机和从机之间通过I2C总线进行数据写入的过程。一般来说,写时序包括以下几个步骤:
-
主机向发送起始信号(SCL高电平检测到SDA下降沿)
-
主机向从机发送7位的Device Address和值为0的写入标识,等待从机应答。
-
从机应答后(低电平表示应答),主机发送8位的存储地址,并等待从机应答。
-
从机应答后,主机可以向从机对应地址写入数据。
-
从机应答后,主机可以选择继续写入数据(如果是页写,则从机应答后再次写入数据的地址会自增加)或者停止写入,发送一个停止信号即可(SCL高电平检测到SDA的上升沿)。
ay ROM中英文全称
ROM是只读存储器(Read-Only Memory)的简称。文章来源:https://www.toymoban.com/news/detail-770173.html
az FIFO的使用需求
FIFO存储器主要是作为缓存,应用在同步时钟系统和异步时钟系统中,在很多的设计中都会使用,如:多比特数据做跨时钟域的转换、前后带宽不同步等都用到了FIFO 。FIFO 根据读写时钟是否相同,分为 SCFIFO(Single Clock First In First Out Memory : 同步FIFO存储器)和 DCFIFO (Dual Clock First In First Out Memory : 异步FIFO)文章来源地址https://www.toymoban.com/news/detail-770173.html
到了这里,关于FPGA面试笔记aa-az的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!