一設計功能
通過串列埠傳送端,可以傳送一位元組的資料。有輸入標誌訊號和傳送完成的標誌訊號進行控制傳送過程,核心是傳送的時序圖。串列埠傳送分成兩個部分:串列埠波特率和串列埠資料傳送。即空閒時的高電平和起始位,八位資料位,停止位。
二設計輸入
下面的程式**是從上到下,從最基本的時鐘開始,分頻計數器,分頻標誌訊號,波特率,資料位,和輸出資料訊號,輸出標誌訊號。
module uart_tx
(input wire sclk,
input wire s_rst_n,
input wire [7:0]pi_data,
input wire pi_flag,
output reg tx
);reg [3:0]bit_cnt;
reg bit_flag;
//data reg
reg [7:0]data_reg;
always@(posedge sclk or negedge s_rst_n)
if(s_rst_n==0)
data_reg<=8'b0;
else if(pi_data)
data_reg<=pi_data;
else begin
data_reg<=data_reg;
end//tx_flag
reg tx_flag;
always@(posedge sclk or negedge s_rst_n)
if(s_rst_n==0)
tx_flag <= 0;
else if(pi_flag)
tx_flag<=1;
else if(bit_cnt==4'd8 & bit_flag)
tx_flag<=0;
else begin
tx_flag<=tx_flag;
end//baud counter
parameter cnt_max = 13'd5208;
reg [12:0]cnt_baud;
always@(posedge sclk or negedge s_rst_n)
if(!s_rst_n)
cnt_baud<=13'd0;
else if(cnt_baud==cnt_max)
cnt_baud<=13'd0;
else if(bit_cnt==4'd8 & bit_flag)
cnt_baud<=13'd0;
else if(tx_flag)
cnt_baud<=cnt_baud+1'b1;
//bit_flag
//波特率標誌訊號,每計數滿乙個波特率週期拉高
always@(posedge sclk or negedge s_rst_n)
if(s_rst_n==0)
bit_flag<=1'b0;
else if(cnt_baud==cnt_max)
bit_flag<=1'b1;
else begin
bit_flag<=0;
end//bit_cnt
always@(posedge sclk or negedge s_rst_n)
if(s_rst_n==0)
bit_cnt<=4'd0;
else if(bit_cnt==4'd8 & bit_flag)
bit_cnt<=4'd0;
else if(bit_flag)
bit_cnt<=bit_cnt+1'b1;
always@(posedge sclk or negedge s_rst_n)
if(s_rst_n==0)
tx<=1'b1;
else begin
case(bit_cnt)
0:tx <=0;
1:tx <=data_reg[0];
2:tx <=data_reg[1];
3:tx <=data_reg[2];
4:tx <=data_reg[3];
5:tx <=data_reg[4];
6:tx <=data_reg[5];
7:tx <=data_reg[6];
8:tx <=data_reg[7];
default:tx <=1;
endcase
endendmodule
根據傳送時序圖,寫的串列埠傳送模組。
11 1 通訊錄的錄入與顯示 10
通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入n條記錄,並且根據要求顯示任意某條記錄。輸入格式 輸入在第1行給出正整數n 10 隨後n行,每行按照格式 姓名 生日 性別 固話 手機 給出一條記錄。其中 姓名 是不超過10個字元 不包含空...
11 1 通訊錄的錄入與顯示 10
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 喬林 清華大學 通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入n條記錄,並且根據要求顯示任意某條記錄。輸入格式 輸入在第1行...
5 34 通訊錄的錄入與顯示 10分
5 34 通訊錄的錄入與顯示 10分 通訊錄中的一條記錄包含下述基本資訊 朋友的姓名 出生日期 性別 固定 號碼 移動 號碼。本題要求編寫程式,錄入n n條記錄,並且根據要求顯示任意某條記錄。輸入在第一行給出正整數n n le 10 隨後n n行,每行按照格式姓名 生日 性別 固話 手機給出一條記錄...