当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]这个项目是我首次在FPGA上实现RTL设计,用于与外部组件进行接口连接。此前我曾尝试使用Altera MAX II EPM240 CPLD来实现简单的数字逻辑,例如多路复用器、解码器、用于闪烁LED的计数器,甚至UART发送器。尽管编程过程非常有趣,但很快我就意识到,仅靠240个逻辑单元难以完成太多功能。于是我投资购买了一块FPGA板,并最终在AliExpress上选择了Altera Cyclone IV EP4CE6E22C8N板,因其成本相对较低且内置多种外设,而成为我的首选。

这个项目是我首次在FPGA上实现RTL设计,用于与外部组件进行接口连接。此前我曾尝试使用Altera MAX II EPM240 CPLD来实现简单的数字逻辑,例如多路复用器、解码器、用于闪烁LED的计数器,甚至UART发送器。尽管编程过程非常有趣,但很快我就意识到,仅靠240个逻辑单元难以完成太多功能。于是我投资购买了一块FPGA板,并最终在AliExpress上选择了Altera Cyclone IV EP4CE6E22C8N板,因其成本相对较低且内置多种外设,而成为我的首选。

作为我新电路板上的第一个项目,我决定做一个“Hello World”式的简单程序,但这次不使用LED闪烁,因为我之前已经用CPLD试过这个功能。最终我选择了电路板上的4位7段数码管,并给自己设定任务:设计一个计数器,从0开始递增到9999,每秒加1,当达到最大值9999时自动回零。当时我选择的硬件描述语言是VHDL,因为这是我在那时最熟悉的语言。

硬件

EP4CE6E22C8N板上的4位7段数码管采用共阳极结构。由于阳极连接到公共端子,因此需要施加高电压来激活器件的每个数码,从而使各段LED能够独立控制(通过低电压即可点亮)。四个数码共用同一组引脚来控制各个段(实现多路复用)。由于引脚经过复用,只有在每次选择7段数码中的一个时,才能显示不同数字的数据,从而逐个显示每个数码的数值,并快速切换至下一个,使人类肉眼无法察觉过渡过程。

RTL设计

该设计包含三个VHDL文件/模块,分别为:seg_display.vhd、seg_counter.vhd和seg_rom.vhd。用于显示数字0到9的逻辑/位组合存储在ROM模块中。计数器模块根据七段数码管上各位数字的位值,以相应速率从0递增到9。共有四个数字位:个位、十位、百位和千位。计数器被实例化以更新各数字的值,使得下一个数字(左侧)的计数器速度比前一个慢10倍。尽管这种设计可以工作,但效率极低,因为它需要四个活动的计数器。更好的解决方案是使用双达布算法(我几个月后才了解到这一点)将要显示的数值从二进制转换为BCD。七段数码管的VHDL模块会实例化计数器和ROM模块,并切换七段数码管上的各个数字,以实现如本文硬件部分所述的正确显示不同数字的效果。

建设项目

多年来,我通过使其在一定程度上独立于平台,对项目进行了一些调整。使用Tcl脚本,在Windows和Ubuntu系统上均可顺利构建,不会出现问题。

代码

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

我们都经历过这种情况:模拟器看起来完美无缺,比特流第一次加载就成功了,可板子却……静止不动,做着奇怪的事,又不肯解释。这时你只能拿起厂商的调试工具,接受被绑在他们IDE上的命运,或者干脆在设计上撒满LED灯,像撒 bre...

关键字: FPGA 计数器 BRS-100-GW1NR999

Home Assistant 在自动化方面表现卓越,但要添加一个自定义的人工智能传感器通常需要设置 MQTT 代理、编写 YAML 文件或者开发一个定制的 Python 集成程序。而这个项目却无需上述任何步骤——一个人工...

关键字: 人工智能 计数器 传感器

Holtek推出新一代无刷直流电机 (BLDC) 控制专用单片机 HT32F65233。采用 Arm® Cortex®-M0+ 低功耗内核, 具备 2.5 V~5.5 V 宽电压操作。系统电压为 5 V 时,可获得更高的...

关键字: BLDC单片机 电机驱动 计数器

你可能会想象他们使用先进的人工智能相机来计算访客人数,但实际上,一个简单的基于传感器的系统就能有效地完成这项工作!通过在入口和出口点放置红外传感器,这些系统检测移动方向并保持准确计数。不需要花哨的技术。

关键字: Arduino IR传感器 计数器

该项目利用OLED显示器和两个输入开关,允许用户增加屏幕上显示的两个数字(10和单位)。代码由设置和循环函数组成,用于管理显示和开关输入。

关键字: OLED 显示器 计数器

在数字电路设计中,计数器是一种基础的数字电路组件,用于记录并显示脉冲信号的数量或频率。4进制计数器,即模4计数器,是一种特殊的计数器,其计数范围从0到3,共4个状态。本文将深入探讨如何结合D触发器与寄存器来实现一个4进制...

关键字: D触发器 寄存器 计数器

在现代电子工程中,计数器作为数字系统中的基本构件,扮演着举足轻重的角色。它们能够精确地记录并显示脉冲的数量,广泛应用于时钟信号生成、频率测量、状态机实现以及定时控制等场景。本文旨在探讨如何利用Verilog这一硬件描述语...

关键字: Verilog 计数器

74LS192是一款广泛应用在数字电子系统中的同步十进制可逆计数器集成电路,属于美国德州仪器(TI)早期推出的7400系列TTL逻辑家族的一员。该芯片设计为四位二进制计数器,并因其特殊的十进制计数特性以及双向计数能力而广...

关键字: 74ls192 计数器

2023年11月28日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 宣布与全球工业自动化领域知名供应商Siemens签订代理协议。Sieme...

关键字: 工业自动化 人机接口 计数器

外部输入、输出继电器、内部继电器、定时器、计数器等器件的接点可多次重复使用,无需用复杂的程序结构来减少接点的使用次数。

关键字: plc编程 定时器 计数器
关闭