FPGA
记录数字系统设计课程的一些内容
非洲蜗牛
这个作者很懒,什么都没留下…
展开
-
FPGA分频电路设计(2)
继续更新,万一用户将分频系数设为0怎么办?做偶数系数的分频,你只要关注上升沿或下降沿中的其中一种即可,但如果是奇数系数分频,你必须同时关注两种变化。在VHDL中,可以使用conv_integer函数将std_logic_vector类型转换成整数。采用 4 个开关以二进制形式设定分频系数(1-10),实现对已知信号的分频。(关于VHDL中的buffer,我以后还需要查阅专业资料进一步学习)需要重做以便将来应对更大的分频系数。原创 2023-12-25 21:03:59 · 604 阅读 · 0 评论 -
FPGA简易加减法计算器设计
(2)1个按键用于指定加法或减法,一个用于指定加数或被加数,还有两个分别控制加数或被加数的增加或减少。(3)设置的结果和计算的结果用数码管显示。这两者之间的转换我用开发板上的推键来完成。另一个推键指示是进行整数运算还是一位小数。(1)设计10以内的加减法计算器。S1:计算模式,等待用户设置并计算。我的代码:(抱歉注释是全英文的)S0:初态模式,所有数码管置零。原创 2023-12-17 21:47:33 · 988 阅读 · 0 评论 -
FPGA引脚分配的问题
我当时分配的引脚是PIN_AE19,然而奇怪的是我之前并未分配这个引脚,我使用的开发工具是Quartus II 9.1 Web Edition,算个老版本了。解决办法:把整个out的那个部分原先分的引脚重新删了,编译后再重新分引脚。但这个建议可能不适合我这种版本,毕竟我这边的菜单不是这样的。原创 2023-12-17 20:39:56 · 545 阅读 · 0 评论 -
VHDL实验:基于有限状态机实现秒表
利用有限状态机实现实现一个具有启动、停止、清零功能的秒表,显示格式:分:秒:十分秒。启动、停止、清零由一个按键控制,按键按下时,功能按启动、停止、清零顺序循环。状态之间的“0”代表按键输入,本项目所用的开发板在不按动的情况下产生高电位,按动了就产生低电位,由于开发板的按键使用了施密特触发电路,因此在代码中就不做消抖了。我在硬件设计代码里使用枚举类型来表示这3个状态,综合器在综合时,会自动对它们四个编码,将状态表示为二进制码的形式。从这两张图上看,这两种状态机的唯一区别在于决定输出的是什么,原创 2023-12-14 11:41:12 · 779 阅读 · 0 评论 -
VHDL数码管显示控制器设计
初始状态,开关 K1 为低电平,6 个数码管上依次显示 1-6。当 K1 变为高电平时,数据管显示内容依次循环左移,当 K1 变为低电平时,保持当前显示内容。第二个process中,整型变量i的值就表示数码管该显示上面6种情况中的哪一种。在实体部分中,clk所对应的时钟信号为50MHZ;第一个process是计时器。我参考了他的计时器部分。原创 2023-12-11 10:55:43 · 682 阅读 · 0 评论 -
利用VHDL实现一定系数范围内的信号分频电路
采用 3 个开关以二进制形式设定分频系数(0-7),实现对已知信号的分频。原创 2023-11-29 14:59:52 · 486 阅读 · 0 评论 -
VHDL基础知识笔记(2)
(1)在VHDL中,只能在VHDL程序的并行部分进行信号说明,但是可以在VHDL的并行语句和顺序语句中同时使用信号的赋值语句。(2)变量的说明和赋值语句只能在VHDL程序的顺序语句部分进行说明和使用,即只能出现在进程、过程和函数中。2.case语句中的条件表达式的值必须列举穷尽,又不能重复。不能穷尽的条件表达式的值用others表示。原创 2023-11-07 23:11:38 · 217 阅读 · 0 评论 -
VHDL基础知识笔记(1)
编码顺序是默认的,左边的第一个元素编码为0,以后自动加1,每个元素都是位矢量,位矢量的长度由所列元素的个数决定。2.结构体:这个部分会给出实体(或者说模块)的具体实现,指定输入和输出的行为。结构体的begin后面是一组并行语句,它的执行是不以书写顺序为准的。(8) 算术运算符中,只有加减乘除能编译成逻辑电路,其他的就很困难甚至不可能。(5)自定义整数、实数类型:它们是标准实数、整数类型的的子类型。(9)<=在VHDL中有两种可能,一种用来给信号赋值,另一种表示小于等于。(4)枚举类型(用户自定义)原创 2023-11-06 16:00:48 · 311 阅读 · 0 评论