以太网16b/20B源代码包括编码器和解码器功能
上传时间: 2016-02-11
上传用户:iswlkje
vhdl语言的16b cpu代码 全部的代码我会依次上传 另有说明txt文本
上传时间: 2014-12-06
上传用户:Zxcvbnm
现代的计算机追求的是更快的速度、更高的数据完整性和灵活性。无论从物理性能,还是从电气性能来看,现今的并行总线都已出现了某些局限,无法提供更高的数据传输率。而SATA以其传输速率快、支持热插拔、可靠的数据传输等特点,得到各行业越来越多的支持。 目前市场上的SATA IP CORE都是面向IC设计的,不利于在FPGA上集成,因此,本文在Xilinx公司的Virtex5系列FPGA上实现SATAⅡ协议,对SATA技术的推广、国内逻辑IP核的发展都有一定的意义。 本文将SATAⅡ协议的FPGA实现划分成物理层、链路层、传输层和应用层四个模块。提出了物理层串行收/发器设计以及物理链路初始化方案。分析了链路层模块结构,给出了作为SATAⅡ链路层核心的状态机的设计。为满足SATAⅡ协议3.0Gbps的速率,采用扩大数据处理位宽的方法,设计完成了链路层的16b/20b编码模块,同时为提高数据传输可靠性和信号的稳定性,分别实现了链路层CRC校验模块和并行扰码模块。在描述协议传输层的模块结构的基础上,给出了作为传输层核心的状态机的设计,并以DMA DATA OUT命令的操作为例介绍了FIS在传输层中的处理过程。完成了命令层协议状态机的设计,并实现了SATAⅡ新增功能NCQ技术,从而使得数据传输更加有效。最后为使本设计应用更加广泛,设计了基于AHB总线的用户接口。 本设计采用Verilog HDL语言对需要实现的电路进行描述,并使用Modelsim软件仿真。仿真结果表明,本文设计的逻辑电路可靠稳定,与SATAⅡ协议定义功能一致。
上传时间: 2013-06-16
上传用户:cccole0605
IIC接口E2PROM(AT24C64) 读写VERILOG 驱动源码+仿真激励文件:module i2c_dri #( parameter SLAVE_ADDR = 7'b1010000 , //EEPROM从机地址 parameter CLK_FREQ = 26'd50_000_000, //模块输入的时钟频率 parameter I2C_FREQ = 18'd250_000 //IIC_SCL的时钟频率 ) ( input clk , input rst_n , //i2c interface input i2c_exec , //I2C触发执行信号 input bit_ctrl , //字地址位控制(16b/8b) input i2c_rh_wl , //I2C读写控制信号 input [15:0] i2c_addr , //I2C器件内地址 input [ 7:0] i2c_data_w , //I2C要写的数据 output reg [ 7:0] i2c_data_r , //I2C读出的数据 output reg i2c_done , //I2C一次操作完成 output reg i2c_ack , //I2C应答标志 0:应答 1:未应答 output reg scl , //I2C的SCL时钟信号 inout sda , //I2C的SDA信号 //user interface output reg dri_clk //驱动I2C操作的驱动时钟 );//localparam definelocalparam st_idle = 8'b0000_0001; //空闲状态localparam st_sladdr = 8'b0000_0010; //发送器件地址(slave address)localparam st_addr16 = 8'b0000_0100; //发送16位字地址localparam st_addr8 = 8'b0000_1000; //发送8位字地址localparam st_data_wr = 8'b0001_0000; //写数据(8 bit)localparam st_addr_rd = 8'b0010_0000; //发送器件地址读localparam st_data_rd = 8'b0100_0000; //读数据(8 bit)localparam st_stop = 8'b1000_0000; //结束I2C操作//reg definereg sda_dir ; //I2C数据(SDA)方向控制reg sda_out ; //SDA输出信号reg st_done ; //状态结束reg wr_flag ; //写标志reg [ 6:0] cnt ; //计数reg [ 7:0] cur_state ; //状态机当前状态reg [ 7:0] next_state; //状态机下一状态reg [15:0] addr_t ; //地址reg [ 7:0] data_r ; //读取的数据reg [ 7:0] data_wr_t ; //I2C需写的数据的临时寄存reg [ 9:0] clk_cnt ; //分频时
标签: iic 接口 e2prom at24c64 verilog 驱动 仿真
上传时间: 2021-11-05
上传用户: