FPGA
尤利乌斯.X
这个作者很懒,什么都没留下…
展开
-
Veirlog 学习记录(1) ,十(多)进制可加计数器的实现
最近在学校上FPGA这门课,课上做了一些小实验,现在记录一下。我用的软件是vivado2015.4代码如下:module M10_counter( input EN, //使能端 input CP, //时钟 input Rd, //清零 output reg Cout, //进位 output reg [3:0] Q //输出 ); ...原创 2019-03-20 20:13:59 · 2010 阅读 · 1 评论 -
Veirlog 学习记录(2),十(多)进制可加可减计数器的实现
上一篇实现的是,十(多)进制的加计数。这次是要加上减计数,也就是实现可加可减的操作,并且在板子上验证,这次设计没有加分频模块,时钟脉冲是用按键控制的,加分频也可以。如果要加上一个减的功能,就是要在加计数的基础上加一个使能端up_down,使能端为1的时候,自加。为0的时候自减。同时从0减到9的时候要有一个借位。代码如下:module M10_updown( input EN,CP...原创 2019-03-20 20:44:03 · 1594 阅读 · 3 评论 -
Veirlog学习记录(3),移位寄存器(左循环,右循环)的实现
移位寄存器的设计:有三个模式:左循环右循环加载预置的数具体功能可以根据需要对程序做出一些修改即可代码如下:module shift1(clk,D,MD,QB); input clk; //时钟信号 input [7:0] D; //预置数,可以在测试文件中预置,或者在板子上选取 input [1:0] MD; //模式选择数值 outpu...原创 2019-03-27 18:15:21 · 3829 阅读 · 0 评论 -
Veirlog 学习记录(4),分频模块+层次化的模块设计
前三篇文章都是单一模块的设计,然后测试是否来完成特定的功能,不过这种方法只能解决一些简单的问题,所以实际中需要层次花的设计。这次给大家分享的就是一个层次化的设计,移位寄存器模块+分频模块,然后再用顶层文件把它们组合在一起。寄存器模块:module shift1(clk,D,MD,QB); input clk; //时钟信号 input [7:0] D; //预置数,可以...原创 2019-03-27 18:55:34 · 994 阅读 · 0 评论 -
Veirlog 学习记录(5),循环移位数码管的设计与实现
实现功能:在开发板的数码管上显示特定数字,并且让这些数字循环移位。总体框图如下:代码如下:分频模块:module div( input clk, //输入自带的系统时钟(100Mhz) input rst, //复位 output scan_clk //输出时钟,用于驱动数码管,让其动态扫描用 ); reg [19:0] clkdiv; ...原创 2019-05-09 10:16:27 · 1564 阅读 · 0 评论 -
Veirlog 学习记录(6),数字频率计的设计与实现
FPGA的课程的大作业,我们选的是数字频率计设计。总体设计要求:可测量脉冲信号的频率被测信号由100MHz的系统时钟分频获得,频率为学号*1000 Hz测量结果在6位数码管上显示,高位若是零则不显示该位采用连续测量方式,每4秒为1个周期,其中1秒用于测量,3秒用于显示总体设计框图:子模块设计:- 分频模块:结构图:代码如下:module div( input cl...原创 2019-05-16 16:58:41 · 4904 阅读 · 3 评论