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