FPGA电路逻辑的原理图方式设计与验证

实验1:拼接 4-16译码器

实验要求

  1. 用2片3-8 译码器拼接成4-16 译码器
  2. 仿真验证电路的正确性
  3. 注意观察输出信号的毛刺(竞争冒险)

设计思路

因为有四个输入端,则采用两个74LS138,将第一片的前三个作为三个输入A、B、C,第四个输入D的非接第一片的G1端,本身接入第二片的G1,当D为0时则通第一片,当它为1时,通第二片,这样就可以实现4-16译码的功能了。

实验步骤

1.打开Quartus II 9.0,点击“New Project Wizard”新建工程并保存;
FPGA电路逻辑的原理图方式设计与验证
2.点击“New File”——“Block Diagram/Schematic”新建空白原理图文件,双击空白处添加连接器件,保存,点击小三角图标进行编译;
FPGA电路逻辑的原理图方式设计与验证
3.编译无误后,点击“New File”——“Vector Waveform File”新建波形文件,点击“Node Finder”——“List”添加引脚,并给引波形脚添加波形;

FPGA电路逻辑的原理图方式设计与验证
4.点击快捷图标后得到仿真波形。

时序仿真:
FPGA电路逻辑的原理图方式设计与验证
功能仿真:
FPGA电路逻辑的原理图方式设计与验证
如仿真波形所示,这是一个4-16译码器,将4个二进制编码的输入译成16 个输出之一,时序仿真图中某些地方存在毛刺,这些地方就产生了竞争与冒险。在数字电路中,任何一个门电路只要有两个输入信号同时向相反方向变化(由01变成10,或者相反),其输出端就可能产生干扰脉冲。

实验2A : 设计M=12的计数器

实验要求

  1. 用161计数器芯片,设计一个M=12的计数器
  2. 上电后,对CLK信号,从0顺序计数到11,然后回绕到0
  3. 当计数值为11的CLK周期,溢出信号OV输出一个高电平,其他周期OV信号输出0
  4. 用波形仿真观察电路结果

设计思路

将输入端A,B,C,D都输入0,QD,QC,QB,QA为输出,从0000至1011数到12个数,当QD,QB,QA都为1时,它们的与非为0,将结果输入LDN端,实现清零。即实现了12进制的计数。

实验步骤

1.打开Quartus II 9.0,点击“New Project Wizard”新建工程并保存;

2.点击“New File”——“Block Diagram/Schematic”新建空白原理图文件,双击空白处添加连接器件,保存,点击小三角图标进行编译;
FPGA电路逻辑的原理图方式设计与验证

3.编译无误后,点击“New File”——“Vector Waveform File”新建波形文件,点击“Node Finder”——“List”添加引脚,并给引波形脚添加波形;
4.点击快捷图标后得到仿真波形。
FPGA电路逻辑的原理图方式设计与验证
如仿真波形所示,设计的是一个12进制的计数器,从0000数到1011。

实验2B : 设计M=20的计数器

实验要求

  1. 用161计数器芯片,设计一个M=20的计数器, 可以用多片
  2. 上电后,对CLK信号,从0顺序计数到19,然后回绕到0
  3. 当计数值为19的CLK周期,溢出信号OV输出一个高电平,其他周期OV信号输出0
  4. 用波形仿真观察电路结果

设计思路

设计一个20进制的计数器最少要5位,所以用到2个74LS161芯片,同样输入端都为0,将第一片的四个输出和第二片的一个输出联合起来作为输出,从00000数到10011为20个数,同理当数到10011时,QE,QB,QA同时为1,将它们的与非送到LDN端进行清零,即可实现20进制计数器。

实验步骤

1.打开Quartus II 9.0,点击“New Project Wizard”新建工程并保存;

2.点击“New File”——“Block Diagram/Schematic”新建空白原理图文件,双击空白处添加连接器件,保存,点击小三角图标进行编译;
FPGA电路逻辑的原理图方式设计与验证
3.编译无误后,点击“New File”——“Vector Waveform File”新建波形文件,点击“Node Finder”——“List”添加引脚,并给引波形脚添加波形;
4.点击快捷图标后得到仿真波形。
FPGA电路逻辑的原理图方式设计与验证
如仿真波形图所示,设计的是一个20进制的计数器,从00000数到10011。