做一个基于XILINX-Castwise Z7
其中一个LED
模块的流水灯程序,具体的模块型号好像是 xc7z020clg400-1
然后随便取个名字
接着三个都直接
next
跳过就行,然后就到了这里选择一下型号:xc7z020clg400-1
,如果你的模块型号是其他的话就根据自己的来
然后选择
finish
然后就来到了工程界面: 然后点击这个加号,新增源文件
然后随便去一个名字,这个是创建代码文件
然后
finish
即可 这里我们新增四个
output
端口和一个input
端口就行,当然你也可以根据自己的情况增加
然后点击 OK
,此时我们多了一个.v
文件,我们双击一下就能进行编辑了
这里我们想实现流水灯,我们发现二进制本身就是一个天然的流水灯,于是我们可以定义一个
4
4
4 位宽的
reg
变量loc_led
,然后我们通过位运算,将其本身的四个位不断的点亮熄灭即可,又由于这里数据溢出就是一个天然的取模过程,于是我们可以不断的给我们的loc_led
加一就行
然后定时器的话可以通过一个reg
变量计数上升沿触发的次数,到了频率的一半后就立即清空,这就是相当于每隔
0.5
s
0.5s
0.5s 就变化一次,就达到了定时器的效果
于是不难得到如下代码:
`timescale 1ns / 1ps
//
// Company:
// Engineer: Mangata
//
// Create Date: 2022/06/14 22:58:04
// Design Name:
// Module Name: led_work
// Project Name: led_work
// Target Devices: xc7z020clg400-1
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module led_work(
input clik,
output led1,
output led2,
output led3,
output led4
);
reg [3:0] loc_led=0;
reg [27:0] timecount=0;
assign led1 = loc_led&1;
assign led2 = (loc_led>>1)&1;
assign led3 = (loc_led>>2)&1;
assign led4 = (loc_led>>3)&1;
//外部时钟输入 50Mhz 输入到 U18
always @(posedge clik)//clik上升沿触发
begin
timecount
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?