按钮:
按钮是区分输入输出的,
LED配置成输入,是不会亮的。
cs
//`timescale 1s/1ns // 【`】是预编译,类似C语言的#include // 这是FPGA原语 //晶振时钟 1ns
//======类型声明============
module LED //跟PLC的FB功能块一样,使用前需要实例化,注:不支持中文
#(
// 参数变量表
parameter num1 = 8'b0001_0001 , //二进制 0x11
parameter num2 = 32'o123456 , //八进制 8#123456
parameter num3 = 32'd19890722 , //十进制 10#19890722
parameter num4 = 64'h00ff_00ff //【最后一个不要加逗号,】 // 十六进制 0x00ff00ff // 16#00FF00FF
)
(
// io变量表
//晶振 b5 FPGA_CLK_50M
//beep h13
//key1 k18
//key2 n17
//key3 n18
//key4 h17
//led1 d15
//led2 c15
//led3 a12
//led4 b12
input wire KEY1_k18 , // bool
input wire KEY2_n17 , // bool
input wire KEY3_n18 , // bool
input wire KEY4_h17 , // bool
output wire LED1_d15 , // bool
output wire LED2_c15 , // bool
output wire LED3_a12 , // bool
output wire LED4_b12 , // bool
input mark //【最后一个不要加逗号,】
);
assign LED1_d15 =~KEY1_k18 ;
assign LED2_c15 =~KEY1_k18 ;
assign LED3_a12 =~KEY1_k18 ;
assign LED4_b12 =~KEY1_k18 ;
endmodule
assign是逻辑门输出。不会受晶振时钟影响。
调用功能块,测试:
cs
`timescale 1s/1ns // 【`】是预编译,类似C语言的#include // 这是FPGA原语 //晶振时钟 1ns
//======类型声明============
module tb_LED(); //跟PLC的FB功能块一样,使用前需要实例化,注:不支持中文
LED ledtest
(
// io变量表
//晶振 b5 FPGA_CLK_50M
//beep h13
//led1 d15
//led2 c15
//led3 a12
//led4 b12
//key1 k18
//key2 n17
//key3 n18
//key4 h17
);
endmodule
实际就是 LED ledtest(); // 实例化 LED这个类型。