一个基于硬件描述语言的uart核 该软核灵巧方便

源代码在线查看: txd.v

软件大小: 4 K
上传用户: yuyx2003
关键词: uart 硬件描述语言 软核
下载地址: 免注册下载 普通下载 VIP

相关代码

				////////////////////////////////////////////////////////				// File : txd.v				// Author :xinggang xu				// Organization:				// Created : 07/05/2008      				// Last update :      				// Platform :      				// Simulators :      				// Synthesizers:      				// Targets :      				// Dependency :      				/////////////////////////////////////////////////////////      				// Description:uart      				/////////////////////////////////////////////////////////      				// Copyright (C) 2008 xu      				///////////////////////////////////////////////////////////   				`timescale 1 ps / 1 ps				module txd(//input				            bclk,				            rstr,				            t_mit,				            tbuf,				            //output				            t_done,				            txd				            );				input bclk;				input rstr;				input t_mit;				input [7:0]tbuf;				output t_done;								output txd;				reg [7:0]tbufs;				reg [3:0]tcnt;				reg txds;				reg [3:0]t_bitcnt;				reg [2:0]state;				parameter tp=1;				parameter framelen=8;				//**************************				//reciever state   				parameter t_idle=3'b001;				parameter t_start=3'b010;				parameter t_wait=3'b011;				parameter t_shift=3'b100;  				parameter t_stop=3'b101;  								assign t_done=(((state==t_stop) && tcnt==14) && ~t_mit);   				always @(posedge bclk or negedge rstr)				begin				    if(~rstr)   state				    else				    begin				    case(state)				        t_idle:if(t_mit) state				               else  state				        t_start:state				               // else  state				        t_wait:if(tcnt>=14)				                  if(t_bitcnt==framelen) state				                  else state				                else state				        t_shift:state				        t_stop:if(tcnt>=14)   				               begin				                   if(!t_mit) state				                   else state				               end				               else  state				        default:state				    endcase				    end				end				always @(posedge bclk or negedge rstr)				begin				    if(~rstr)				    begin					    tbufs				        tcnt				        txds				        t_bitcnt				    end				    else				    case(state)  				        t_idle:				          begin				              tcnt				              t_bitcnt				              if(t_mit) 				                begin				                  tbufs				                end				              else tbufs				          end				        t_start:    				          begin				            txds				            				          end    				        t_wait:if(tcnt==14)				               begin				                   tcnt				                   if(t_bitcnt==framelen) t_bitcnt				               end				               else tcnt				        t_shift:				               begin				                   txds				                   tbufs				                   t_bitcnt				               end 				        t_stop: 				               begin				                    tcnt				                    txds				                end				        endcase				end				assign txd=txds;				endmodule			

相关资源