//======================================================
module io_def    // 模块名字,参数,方法体
(input FPGA_CLK_50M_b5,input key1_k18,input key2_n17,input key3_n18,input key4_h17,
//output led1_d15,output led2_c15,output led3_a12,output led4_b12,output beep_h13   //【注】最后一个参数不加逗号
);assign {led1_d15,led2_c15,led3_a12,led4_b12} = {~key1_k18,~key2_n17,~key3_n18,~key4_h17};  //key1_k18  +key2_n17 + key3_n18 +key4_h17 ;endmodule
按钮:
按钮是区分输入输出的,
LED配置成输入,是不会亮的。
//`timescale  1s/1ns // 【`】是预编译,类似C语言的#include // 这是FPGA原语 //晶振时钟 1ns//======类型声明============
module LED   //跟PLC的FB功能块一样,使用前需要实例化,注:不支持中文
#( // 参数变量表parameter num1 = 8'b0001_0001 , //二进制 0x11parameter num2 = 32'o123456 , //八进制  8#123456parameter num3 = 32'd19890722 , //十进制  10#19890722parameter 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    b12input wire KEY1_k18 , // boolinput wire KEY2_n17 , // boolinput wire KEY3_n18 , // boolinput wire KEY4_h17 , // booloutput wire LED1_d15 , // booloutput wire LED2_c15 , // booloutput wire LED3_a12 , // booloutput wire LED4_b12 , // boolinput mark    //【最后一个不要加逗号,】 
); assign   LED1_d15 =~KEY1_k18 ;
assign   LED2_c15 =~KEY1_k18 ;
assign   LED3_a12 =~KEY1_k18 ;
assign   LED4_b12 =~KEY1_k18 ;endmoduleassign是逻辑门输出。不会受晶振时钟影响。
调用功能块,测试:
`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这个类型。