📄 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 + -