⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart4_top.v

📁 一个UART的FPGA core
💻 V
字号:
`timescale 1ns/100ps

module Uart4( clk,clk_in,rst,addr,data,cs_n,inter,we_n,oe_n,rxd,txd,baud_clk,we_en1,baud_clk1);

input clk;    //Main clock
input clk_in; //Baud clock
input rst;
input [4:0] addr;
inout [7:0] data;
input cs_n,we_n,oe_n;
output inter;
input [3:0] rxd;
output [3:0] txd;
output baud_clk,baud_clk1;
output we_en1;
wire we_en2,we_en3,we_en4;

/////////////////////////////////////////////////////////////////////////////////////////////////////
wire fifot0_cs,fifot1_cs,fifot2_cs,fifot3_cs;
wire fifor0_cs,fifor1_cs,fifor2_cs,fifor3_cs;
wire baud_cs0,baud_cs1,baud_cs2,baud_cs3;

decode u1( clk,addr,data,cs_n,we_n,oe_n,//input
           baud_cs0,baud_cs1,baud_cs2,baud_cs3,
           fifot0_cs,fifot1_cs,fifot2_cs,fifot3_cs,
		   fifor0_cs,fifor1_cs,fifor2_cs,fifor3_cs,
		   inter_pos0,inter_pos1,inter_pos2,inter_pos3,inter_pos4,inter_pos5,inter_pos6,inter_pos7,
           inter_mask
          );
/////////////////////////////////////////////////////////////////////////////////////////////////////
//wire baud_clk; //0,baud_clk1,baud_clk2,baud_clk3;

//wire baud_clk1;

//baud  u2( clk_in,rst,
//          baud_cs0,baud_cs1,baud_cs2,baud_cs3,
//	      data,baud_clk0,baud_clk1,baud_clk2,baud_clk3
//	     );

baud u2(clk_in,rst,baud_clk,baud_clk1);
/////////////////////////////////////////////////////////////////////////////////////////////////////
wire EF0,AE0,AF0,FF0;
wire EF1,AE1,AF1,FF1;
wire EF2,AE2,AF2,FF2;
wire EF3,AE3,AF3,FF3;

txmit u3( clk,clk_in,rst,data,fifot0_cs,baud_clk,txd[0],EF0,AE0,AF0,FF0,we_en1 ) ;

txmit u4( clk,clk_in,rst,data,fifot1_cs,baud_clk,txd[1],EF1,AE1,AF1,FF1,we_en2 ) ;

txmit u5( clk,clk_in,rst,data,fifot2_cs,baud_clk,txd[2],EF2,AE2,AF2,FF2,we_en3 ) ;

txmit u6( clk,clk_in,rst,data,fifot3_cs,baud_clk,txd[3],EF3,AE3,AF3,FF3,we_en4 ) ;

//////////////////////////////////////////////////////////////////////////////////////////////
wire EF4,AE4,AF4,FF4;
wire EF5,AE5,AF5,FF5;
wire EF6,AE6,AF6,FF6;
wire EF7,AE7,AF7,FF7;
wire [7:0] datar_out0,datar_out1,datar_out2,datar_out3;

rcvr u7(clk,rst,rxd[0],baud_clk,baud_clk1,fifor0_cs,datar_out0,EF4,AE4,AF4,FF4);

rcvr u8(clk,rst,rxd[1],baud_clk,baud_clk1,fifor1_cs,datar_out1,EF5,AE5,AF5,FF5);

rcvr u9(clk,rst,rxd[2],baud_clk,baud_clk1,fifor2_cs,datar_out2,EF6,AE6,AF6,FF6);

rcvr u10(clk,rst,rxd[3],baud_clk,baud_clk1,fifor3_cs,datar_out3,EF7,AE7,AF7,FF7);

///////////////////////////////////
  inter u12 (  clk,csn,we,addr,data,
               AE0,AF0,EF0,AE1,AF1,EF1,AE2,AF2,EF2,AE3,AF3,EF3,AF4,FF4,AF5,FF5,AF6,FF6,AF7,FF7,
		       inter_mask,inter   //output
             );             
 
/////////////////////////////////////////////////////////////////////
data_path u13 (   data,
                  EF0,AE0,AF0,FF0,EF1,AE1,AF1,FF1,
                  EF2,AE2,AF2,FF2,EF3,AE3,AF3,FF3,
                  EF4,AE4,AF4,FF4,EF5,AE5,AF5,FF5,
                  EF6,AE6,AF6,FF6,EF7,AE7,AF7,FF7,
                  datar_out0,datar_out1,datar_out2,datar_out3,
			      fifor0_cs,fifor1_cs,fifor2_cs,fifor3_cs,
			      inter_pos0,inter_pos1,inter_pos2,inter_pos3//inter_pos4,inter_pos5,inter_pos6,inter_pos7,
               );

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -