📄 cpld_qq2812.v
字号:
//2008-5-26
/*下面是对外设的各个地址进行了宏定义*/
//Read Add
`define INT1Add 6'h01
`define NMIAdd 6'h02
`define R_FIFO_Sta 6'h03
`define R_PA_Sta 6'h04
`define USB_RW 6'h0d
`define R_IO_IN_L 6'h0e
`define R_IO_IN_H 6'h0f
//Write Add
`define BUZZERAdd 6'h00
`define LedAdd 6'h01
`define EAdd 6'h02
`define RSAdd 6'h03
`define LCDDataAdd 6'h04
`define SPI_CSAdd 6'h05
`define SIAdd 6'h06
`define PATENDAdd 6'h07
`define W_IO_OUT_L 6'h0e
`define W_IO_OUT_H 6'h0f
/*模块变量定义*/
module cpld_QQ2812(DSP_Add,DSP_Data,WR,RD,CS1,BUZZER,Key,LED,E,RS,LCD_Data,
PA0,PA1,SLOE,PATEND,SLCS,IFCLK,CLKOUT,SLRD,SLWR,FIFO_PROG,FIFO_FULL,FIFO_EMPTY,
SPI_CS,ACICS,SIDIN,SICLK,IN,OUT,INT1,NMI,EXINT,NMI1,NMI2,TXB,TXB1,RXB,CANRX,CANTX,CANRX_1,CANTX_1);
/*CPLD输入信号的定义*/
input [5:0] DSP_Add;///DSP对CPLD的地址定义
input WR,RD,CS1;///读写和CPLD片选定义
input [7:0] Key;///8个按键定义
input PA0,PA1;///
input IFCLK,CLKOUT,FIFO_PROG,FIFO_FULL,FIFO_EMPTY;///USB控制信号定义
input [15:0] IN;///外扩16个IO输入定义
input [4:0] EXINT;///5个外中断定义
input NMI1,NMI2;///两个不可屏蔽中断定义
input RXB,TXB;///485信号发送接收定义
input CANTX,CANRX_1;
/*CPLD输出信号的定义*/
output CANRX,CANTX_1;
output TXB1;////485控制信号输出
output INT1,NMI;///外部可屏蔽中断控制1和不可屏蔽中断输出控制信号
output [15:0] OUT;///外扩16个IO口输出定义
output ACICS,SIDIN,SICLK;///音频片选及数据时钟全部定义为输出
output SLOE,PATEND,SLCS;
output SLRD,SLWR;
output [7:0] LED;///8位LED等定义输出
output BUZZER;///蜂鸣器控制定义输出
output E,RS;////1602控制信号的定义
output [7:0] LCD_Data;///1602和12864LCD的8位数据定义为输出
output SPI_CS;///SPI片选定义为输出
inout [7:0]DSP_Data;////DSP与CPLD之间的数据线定义为输入输出
/*变量寄存器的定义*/
reg CANRX_reg,CANTX_1_reg;
reg [7:0] DSP_Data_reg;
reg BUZZER_reg;
reg [7:0] LED_reg;
reg [7:0] LCD_Data_reg;
reg E_reg,RS_reg;
reg [7:0] Key_reg;
reg PATEND_reg;
reg SPI_CS_reg;
reg ACICS_reg,SIDIN_reg,SICLK_reg;
reg [15:0] OUT_reg;
reg INT1_reg;
reg NMI_reg;
reg [4:0] EXINT_reg;
reg NMI1_reg,NMI2_reg;
//*循环执行判断按键与CAN发送接收的变化*/
always
begin
Key_reg=Key;
CANRX_reg=CANRX_1;
CANTX_1_reg=CANTX;
end
/*上边沿写信号发生,主要是将DSP的数据送到CPLD定义的各自的的寄存器中,也就是通过识别不同的地址来把数据写入各自寄存器中*/
always @ ( posedge WR)
begin
if(CS1==1'b0)///判断CPLD是否被片选
begin
case (DSP_Add)////这里选用了CASE语句来做多分
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -