?? usbf_defines.v
字號:
`timescale 1ns / 10ps//芯片調制符號`define USBF_DEBUG//芯片測試實現符號`define USBF_TEST_IMPL// 對于那些能實際例化的節點,則可定義下面的符號為數值1。// 芯片的全部節點應該是按順序進行例化的,在這里筆者只// 定義了3個節點的例化符號,其余節點的符號可仿效定義`ifdef USBF_TEST_IMPL // 用于測試 `define USBF_HAVE_EP1 1 `define USBF_HAVE_EP2 1 `define USBF_HAVE_EP3 1`else // 可修改,最多支持16個節點 `define USBF_HAVE_EP1 1 `define USBF_HAVE_EP2 1 `define USBF_HAVE_EP3 1`endif// 該符號定義了連接至芯片的最大地址線數目,通常系統只需要// 18根地址線(A0至A17),且A17是內部數據存儲與寄存器的選擇信號`ifdef USBF_TEST_IMPL // 用于測試 `define USBF_UFC_HADR 17 `define USBF_RF_SEL (!wb_addr_i[17]) `define USBF_MEM_SEL (wb_addr_i[17]) `define USBF_SSRAM_HADR 14`else // 可修改 `define USBF_UFC_HADR 12 // 解碼地址信息,供寄存器尋址使用 `define USBF_RF_SEL (!wb_addr_i[12]) // 解碼地址信息,供數據緩存尋址使用 `define USBF_MEM_SEL (wb_addr_i[12]) `define USBF_SSRAM_HADR 9`endif// 下面的宏定義符號不可修改,它們定義了數據的PID信息// PID編碼字`define USBF_T_PID_OUT 4'b0001`define USBF_T_PID_IN 4'b1001`define USBF_T_PID_SOF 4'b0101`define USBF_T_PID_SETUP 4'b1101`define USBF_T_PID_DATA0 4'b0011`define USBF_T_PID_DATA1 4'b1011`define USBF_T_PID_DATA2 4'b0111`define USBF_T_PID_MDATA 4'b1111`define USBF_T_PID_ACK 4'b0010`define USBF_T_PID_NACK 4'b1010`define USBF_T_PID_STALL 4'b1110`define USBF_T_PID_NYET 4'b0110`define USBF_T_PID_PRE 4'b1100`define USBF_T_PID_ERR 4'b1100`define USBF_T_PID_SPLIT 4'b1000`define USBF_T_PID_PING 4'b0100`define USBF_T_PID_RES 4'b0000// 符號HMS_DEL表示時間常量,即0.5us。`define USBF_HMS_DEL 5'h1c// 這兩個符號定義了在全速和高速通信模式下,芯片對數據接收// 做出響應所需要的時間(采用UTMI的工作時鐘周期數目來記錄)`define USBF_RX_ACK_TO_VAL_FS 8'd36`define USBF_RX_ACK_TO_VAL_HS 8'd22// 這兩個符號定義了在全速和高速通信模式下,芯片對數據發送// 做出響應所需要的時間(采用UTMI的工作時鐘周期數目來記錄)`define USBF_TX_DATA_TO_VAL_FS 8'd36`define USBF_TX_DATA_TO_VAL_HS 8'd22// USB連線上的狀態和通信速率信息// 該預定標器符號用來產生長度為0.25us的脈沖`define USBF_T1_PS_250_NS 4'd13// 微秒計數器,它用來表示2.5us的計數時長`define USBF_T1_C_2_5_US 8'd10// 微秒計數器的復位數值`define USBF_T1_C_62_5_US 8'd250// 毫秒計數器,它用來表示3.0ms的計數時長`define USBF_T1_C_3_0_MS 8'd48// 毫秒計數器,它用來表示3.125ms的計數時長`define USBF_T1_C_3_125_MS 8'd50// 毫秒計數器,它用來表示5.0ms的計數時長`define USBF_T1_C_5_MS 8'd80// 多功能計數器,它用來表示2.5us的周期`define USBF_T2_C_2_5_US 8'd148// 該符號表示在2.5 us周期的時鐘下生成0.5ms周期// 500/2.5 = 200`define USBF_T2_C_0_5_MS 8'd200// 該符號表示內部恢復的完成時間,應小于10ms`define USBF_T2_C_WAKEUP 8'd10// 該符號表示100us的時間間隔`define USBF_T2_C_100_US 8'd40// 該符號表示1ms的時間間隔// me_cnt counts 0.5 mS intervals. 1.0mS are (1/0.5) 2 ticks`define USBF_T2_C_1_0_MS 8'd2// 該符號表示1.25ms的時間間隔`define USBF_T2_C_1_2_MS 8'd2// 該符號表示100ms的時間間隔`define USBF_T2_C_100_MS 8'd200
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -