我是靠谱客的博主 积极猎豹,最近开发中收集的这篇文章主要介绍Quartus基础功能和SignalTap基本使用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Quartus基础功能和SignalTap基本使用方法

    • 基础:项目创建、编译和下载
    • FPGA译码器组合逻辑
      • 2_4译码器
    • 计数器波形仿真和SignalTap
      • 0-9计数器
      • 0-17计数器及signaltap检验
      • 0-17计数及方波发生器
      • 显示输出
      • 显示的问题
      • SignalTap 报错记录

基础:项目创建、编译和下载

创建和编译比较基本,不写了。

指派管脚:

  1. 查阅板子说明来指派对应管脚;
  2. 要将不用的管脚设置成三态。

设置方法:Assignments -> Settings -> Device -> Device and Pin Options -> Unused Pins -> As input tri-stated

module sw_control_led( swa , leda );

input	swa;
output	[9:0]leda;

reg		[9:0]leda;

always @ (swa) begin
	if (swa)
		leda = 10'b1111111111;
	else
		leda = 10'b0000000000;
end

endmodule    

名字设置为swa和leda是为了防止和系统命名冲突。命名为sw和led编译可以通过但是上板子的时候就会报错。

编译下载:Tools -> Programmer

现在Hardware Setup 里选择板子连接的端口,然后Start下载。下载完成后就可以操作板子验证一下了。

我在同时开多个文件的时候出现了问题,只有第一个可以下载运行,其他的不可以。只有完全关闭第一个的所有程序及quartus之后才能下载,否则就会报Can’t access JTAG chain。不是很懂。

FPGA译码器组合逻辑

2_4译码器

  1. 先建立顶层文件,设定为BDF格式。

    顶层文件名与工程名相同,设置其他文件名与工程名不同。

  2. 在Files一栏中右键Files添加2_4译码器的Verilog代码。

    这个代码文件不是必须在工程文件夹中。最好不要随意移动文件位置,否则以后用的时候可能会找不到文件。

    可以提前写好这个文件。或者先写这个文件,保存之后再创建工程。

    2_4译码器代码:

module dec_2to4(
IN  ,
OUT);
input  [2-1:0] IN  ;
output [4-1:0] OUT ;

reg [4-1:0] OUT ;

always @ (IN) begin
  case(IN)
    2'b00: OUT = 4'b 0001;
    2'b01: OUT = 4'b 0010;
    2'b10: OUT = 4'b 0100;
    2'b11: OUT = 4'b 1000;
  endcase
end

endmodule // module dec_2to4;

  1. 为代码创建符号以在顶层文件中使用。

    在Files中右键文件名,选择Creat Symbol Files for Currennt File,会在工程文件夹中生成一个代码文件对于的符号模块。这个模块可以在BDF文件中调用。

  2. 在BDF顶层文件中画图,调用模块。

    注意使用网标式接线方法。

    总线名格式为’name[3…0]’,单独的线名字格式为’name[3]’,编译时会自动连接。

    名字设置方法:右键导线 -> properties -> name

在这里插入图片描述

  1. 编译。设置引脚。编译。上板子。

计数器波形仿真和SignalTap

0-9计数器

与上同,设计计数器文件。

在这里插入图片描述

仿真文件如图。计数值中间的毛刺是电路元件延时信号跳变不一致导致的。

在这里插入图片描述

3到4之间有三个信号的跳变,而2到3只有一个信号的跳变,所以3到4有过渡的信号7和5,而2到3之间没有过渡的信号。

0-17计数器及signaltap检验

首先选择采样时钟

在这里插入图片描述

在setup框内双击然后选择要观察的数据信号

在这里插入图片描述

下载程序到板子上,然后在signaltap里右上角JTAG设置中选择硬件

在这里插入图片描述

最后编译

在这里插入图片描述

在Data里查看数据并进行分析

在这里插入图片描述

0至17计数并在17时OV输出1,输出正确无误。

0-17计数及方波发生器

只需要在Verilog里将OV输出时的判断语句更改一下即可。

SignalTap验证结果:

在这里插入图片描述

显示输出

如果把OV接到一个LED上,那么可以依输出看到不同的现象。

对于第一个0-17计数器,仅在计数值为17时OV输出1,那么将会看到LED微弱的亮光或者几乎不亮。这是因为亮光频率高而时间太短,灯光微弱,眼睛反应不过来,所以看上去几乎不亮。

如果把占空比改为0.5,那么由于视觉暂留效应,我们几乎无法察觉LED的闪烁,所以看上去几乎是一直在发光。

如果再把计数值增大,增大到25000000级别,那么LED的交替周期就超过了0.2秒,这时候LED的闪烁就可以看得很清晰了。

显示的问题

没用到的LED也可能会亮。这是因为这些管脚是客观存在的,它们上面有客观存在的电压,如果不去设置,那么就是默认的电压,给LED不同的亮度,就会产生不同的现象。

解决方法:将不用的管脚设置成三态。

SignalTap 报错记录

若显示Error: Can’t run SignalTap II Logic Analyzer – SignalTap II File is not compatible with the file programmed in the device,表示文件与设备中编程的文件不兼容,问题在于没有先下载到板子上再运行SignalTap。

最后

以上就是积极猎豹为你收集整理的Quartus基础功能和SignalTap基本使用方法的全部内容,希望文章能够帮你解决Quartus基础功能和SignalTap基本使用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部