一款工業級多功能時鐘/日曆晶元,具有報警功能、定時器功能、時鐘輸出功能以及中斷輸出功能,能完成各種複雜的定時服務。
開始訊號+ 7位位址+寫操作+響應+寫暫存器位址+響應訊號+開始+7位位址+讀操作+響應+0x02資料+響應+0x03資料+。。。。+非應答訊號+停止訊號
讀出資料所用always
always @(posedge clk or negedge rst_n) begin
if(!rst_n) begin
sec <=
8'h0;
min <=
8'h0;
hour <=
8'h0;
day <=
8'h0;
mon <=
8'h0;
year <=
8'h0;
i2c_exec <=
1'b0;
i2c_rh_wl <=
1'b0;
i2c_addr <=
8'd0;
i2c_data_w <=
8'd0;
flow_cnt <=
4'd0;
wait_cnt <=
13'd0;
endelse begin
i2c_exec <=
1'b0;
case
(flow_cnt)
//上電初始化
4'd0: begin
if(wait_cnt ==
13'd8000) begin
wait_cnt<=
12'd0;
flow_cnt<= flow_cnt +
1'b1;
endelse
wait_cnt<= wait_cnt +
1'b1;
end//寫讀秒
4'd1: begin
i2c_exec <=
1'b1;
i2c_addr <=
8'h02;
flow_cnt <= flow_cnt +
1'b1;
i2c_data_w<= time_ini[7:
0]; end
4'd2: begin
if(i2c_done ==
1'b1) begin
sec <= i2c_data_r[6:
0]; flow_cnt<= flow_cnt +
1'b1;
endend
//寫讀分
4'd3: begin
i2c_exec <=
1'b1;
i2c_addr <=
8'h03;
flow_cnt <= flow_cnt +
1'b1;
i2c_data_w<= time_ini[15:
8]; end
4'd4: begin
if(i2c_done ==
1'b1) begin
min <= i2c_data_r[6:
0]; flow_cnt<= flow_cnt +
1'b1;
endend
//寫讀時
4'd5: begin
i2c_exec <=
1'b1;
i2c_addr <=
8'h04;
flow_cnt <= flow_cnt +
1'b1;
i2c_data_w<= time_ini[23:
16]; end
4'd6: begin
if(i2c_done ==
1'b1) begin
hour <= i2c_data_r[5:
0]; flow_cnt<= flow_cnt +
1'b1;
endend
//寫讀天
4'd7: begin
i2c_exec <=
1'b1;
i2c_addr <=
8'h05;
flow_cnt <= flow_cnt +
1'b1;
i2c_data_w<= time_ini[31:
24]; end
4'd8: begin
if(i2c_done ==
1'b1) begin
day <= i2c_data_r[5:
0]; flow_cnt<= flow_cnt +
1'b1;
endend
//寫讀月
4'd9: begin
i2c_exec <=
1'b1;
i2c_addr <=
8'h07;
flow_cnt <= flow_cnt +
1'b1;
i2c_data_w<= time_ini[39:
32]; end
4'd10: begin
if(i2c_done ==
1'b1) begin
mon <= i2c_data_r[4:
0]; flow_cnt<= flow_cnt +
1'b1;
endend
//寫讀年
4'd11: begin
i2c_exec <=
1'b1;
i2c_addr <=
8'h08;
flow_cnt <= flow_cnt +
1'b1;
i2c_data_w<= time_ini[47:
40]; end
4'd12: begin
if(i2c_done ==
1'b1) begin
year <= i2c_data_r;
i2c_rh_wl<=
1'b1;
flow_cnt <=
4'd1;
endend
default
: flow_cnt <=
4'd0;
endcase
endend
FPGA綜合優化
1 速度和面積 在全面優化水平將達到速度和面積rtl要利用邏輯拓撲的優勢。供 由於在後端而言缺乏知識,門級優化。普通情況下更高的速度要求更高的並行性以及更大的面積,可是在某些特殊情況下並非這樣。由於fpga的布局佈線具有二階效應。直到布局佈線完畢。工具才會知道器件的擁堵或者佈線的困難,可是這時實際邏...
18 綜合練習
目錄 驗證碼必須放到session中 快速封裝引數為物件 使用者登入成功之後,需要使用重定向來進行跳轉,不能使用 跳轉 沒有在request中儲存資料,跳轉時就應該使用重定向 資料庫中,如果主鍵是自增長的,在插入資料時,主鍵的位置填入null即可。阻止表單提交注意事項 分頁 分頁好處 輸入 輸出分頁...
FPGA綜合編碼
1 判決樹 在fpga中判斷使用if else語句以及case實現。a if else 是有特權的,類似於優先編碼 當兩個條件同時成立,僅判斷條件靠前的成立 所以當有特權條件時應該採用if else結構,對於並行的if條件語句其特權順序恰好與if else 相反。b case 語句常常 不總是 用在...