根据黑金 AX301 手册,数码管位选信号命名为 SEL[5:0],其中 SEL[5] 对应最左边的数码管,而SEL[0] 对应最右边数码管:作为约定,在下面的描述中我们对应的称之为数码管 5 和数码管 0.数码管的段选信号被命名为 DIG[7:0]:DIG[7] 为小数点 DP,DIG[6] 为数码管 g 段,DIG[0] 为 a 段,其他类推即可. 由于数码管的段选信号是共用的,理论上是不可能同时显示六个不同字符的,但由于人眼的视觉残留现象,只要我们很快的依次显示每一个数字,就可以欺骗人眼达…
数码管是一种常见的用于显示的电子器件,根据数码管大致可以分为共阴极和共阳极两种,下图所示的是一个共阳极的数码管的电路图(摘自金沙滩工作室的 51 开发板电路图),我的 AX301 开发板与这张图的情况类似,几乎所有的教科书上都会讲到数码管的原理,这里我就不再详述了. 由于多个数码管的段选信号(下图中的 DB0~DB7)是共用的,想要显示多个数字需要用到动态扫描,动态扫描电路需要使用时钟.冒然的使用时钟会使得初学者不知所措,所以在这篇基础的组合逻辑电路中只点亮单个数码管,这样就不必涉及到时钟了.时…
关于 Quartus 的操作可以使用 Quartus 自带的帮助,帮助中带有全套的操作教程. 中文网络教程链接(链接至 altera中文官网,点击观看) Quartus II 软件设计系列:基础 Quartus II 软件中的原理图设计 SignalTap II 嵌入式逻辑分析器 使用 Nios II 处理器 系统控制台 Nios II 处理器开发软件:设计流程 Nios II 处理器开发软件:MMU 和 MPU 无论是英文帮助还是网络中文教程,他们的前提是 你是有基础的,这些教程之会教给你我们…
按键是一个输入设备,在理论上可以归为开关一类,理想的按键波形如下: 然而由于按键的机械特性,断开和闭合动作是不可能在一瞬间完成的,实际的波形如下: 抖动期间电平处于临界值,由于晶振的频率相当的高,数字电路会判断到许多个变化的值,数字波形图大致如下: 根据经验总结,按键抖动的时间一般在 5 ~ 10ms 之间,消抖可以使用低通滤波法,但 FPGA 设计中要求使用同步设计,这次我们使用延时模块来实现消抖电路,代码如下: 实验现象被设计为每当按键弹起一次,就反转一次 LED 的电平,通过判断 LED…
讲到这篇时,组合逻辑就告一段落了,下面是一些总结: 描述组合逻辑时,always 语句中的敏感信号列表中需要列出全部的可能影响输出的变量 描述组合逻辑时,always 语句中的赋值总是使用阻塞赋值符号 = 组合逻辑是描述输入和输出关系的功能块,由于延时的原因,输出可能会有毛刺,为避免避免毛刺需要引入冗余逻辑. if..else case 语句只能用在 always 语句中,而且分支条件必须健全,否则会引入不必要的锁存器. 新的 SystemVerilog 语言中强化了 always 的功能:Sy…
高级的嵌入式市场主要分为以下三类:ARM.DSP 和 FPGA. 其中 ARM 是行业内的佼佼者,目前几乎所有的安卓智能手机都使用 ARM 授权的 CPU架构:而 DSP(数字信号处理器) 早年就被大面积的应用与电话.DVD.通讯基站等领域.DSP 与 ARM 的区别在于,ARM 是通用 CPU,DSP 则是专用 CPU.FPGA 则与他们不同,FPGA 的名称的由来是由于 FPGA 功能的成型是在实验室等通常工作环境下进行的:区别与专有集成电路 (ASIC)在晶圆工厂的制造,所以 FPGA 被…
初学 FPGA 的时候,我们总是存在很多疑问,比如:xilinx 和 altera 的 FPGA 那种比较好.verilog 语言被如何综合成具体硬件电路.RTL 级电路是什么意思等等.现在我们就不会迷惑于那些基本的概念问题,是时候来写一个小小的项目了.我决定编写一个没有日期功能的电子钟,还可以来复习以前学过的模块. 这个项目有些复杂,一次不太可能成功,所以我们先写一个秒表,秒表的组成大概如下: 秒增加信号产生模块. 时间计数模块1,当增加信号为 1 时加 1,满 60 清零,并产生分增加信号.…
在第 3 篇中讲到了如何使用图形进行仿真激励输入,图形输入法尽管简单易学,但如若要求复杂的仿真输入激励.较长的仿真时间或是要求打印输出信息乃至输出文件日志则显得不够用了. 本篇以上一篇的 3-8 译码器为基础,讲一下 Modelsim 仿真工具的使用方法.在 Modelsim 中不再提供图形的激励输入方法,取而代之的testbench 测试脚本.testbench 简称 tb,虽然名字听起来很专业,但掌握却没什么难度.tb 的语法与 verilog 高度类似:但由于 tb 脚本是在 PC 上运行…
PWM 是一种调节输出功率的技术(俗称调压),其原理在于改变输出方波的占空比,具体输出见下图: 输出信号为电压值,当负载为恒阻时,上图中的输出功率分别为 25%.50%.75%. 实现方法如下: 设置一个计数器,上图中的第一行就是个 4 位的计数器,每满 15 自动变为 0.那么可以得到输出频率等于时钟的 1/16. 当计数器的值小于某个值的时候输出 0,高于或者等于某个值的时候输出 1. 假设控制的是一个小灯为 1/8 功率输出,那么我们需要的值就是 13 (4'hD),当计数器小于等于 13…
2-10 进制码,也称为 BCD 码,它的编码方式则是通过一个 4 位二进制来表示一个 10 进制数,部分十进制对应的 BCD 码如下 十进制数 | BCD 码 13 --> 0001_0011 14 --> 0001_0100 19 --> 0001_1001 20 --> 0010_0000 99 --> 1001_1001 对于任意的三位十进制整数存在以下公式: (ABC) 10  = A*102 + B*101 + C*100 显然,对于任意一个三位数分离它的百位.十…