?? cpld_qq2812.v.bak
字號:
//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 + -