日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【小月电子】国产安路FPGA开发板系统学习教程-LESSON9简易测试系统

發布時間:2023/12/16 windows 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【小月电子】国产安路FPGA开发板系统学习教程-LESSON9简易测试系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡易測試系統例程講解

若要觀看該博客配套的視頻教程,可點擊此鏈接


根據多年工作經驗,總結出的FPGA的設計流程,概括起來總共有以上12步,其中根據項目難易度可省去其中一些步驟。比如非常簡單的項目,我們可以省去虛線框里面的步驟,但是我們的入門級課程,即使再簡單,也按照這12個步驟來進行講解。

1. 需求解讀

1.1 需求

采用C#做一個上位機界面,通過異步串口可控制開發板上的數碼管,LED燈,蜂鳴器,同時按下開發板上的按鍵,可在上位機界面上顯示當前被按下是哪個按鍵。該實驗即是一個最簡單的工控設備,應用面非常廣。

1.2 知識背景

????串口是“串行接口”的簡稱,即采用串行通信方式的接口。串行通信將數據字節分成一位一位的形式在一條數據線上逐個傳送,其特點是通信線路簡單,但傳輸速度較慢。因此串口廣泛應用于嵌入式、工業控制等領域中對數據傳輸速度要求不高的場合。
????串行通信分為兩種方式:同步串行通信和異步串行通信。同步串行通信需要通信雙方在同一時鐘的控制下,同步傳輸數據;異步串行通信是指通信雙方使用各自的時鐘控制數據的發送和接收過程。
????UART是一種采用異步串行通信方式的通用異步收發傳輸器(universal asynchronous receiver-transmitter),它在發送數據時將并行數據轉換成串行數據來傳輸,在接收數據時將接收到的串行數據轉換成并行數據。
????UART串口通信需要兩根信號線來實現,一根用于串口發送,另外一根負責串口接收。 UART在發送或接收過程中的一幀數據由4部分組成,起始位、數據位、 奇偶校驗位和停止位,具體時序如圖1所示。其中,起始位標志著一幀數據的開始,停止位標志著一幀數據的結束,數據位是一幀數據中的有效數據。校驗位分為奇校驗和偶校驗,用于檢驗數據在傳輸過程中是否出錯。奇校驗時,發送方應使數據位中1的個數與校驗位中1的個數之和為奇數;接收方在接收數據時,對1的個數進行檢查,若不為奇數,則說明數據在傳輸過程中出了差錯。同樣,偶校驗則檢查1的個數是否為偶數。
????UART通信過程中的數據格式及傳輸速率是可設置的,為了正確的通信,收發雙方應約定并遵循同樣的設置。數據位可選擇為5、 6、 7、 8位,其中8位數據位是最常用的, 在實際應用中一般都選擇8位數據位;校驗位可選擇奇校驗、偶校驗或者無校驗位;停止位可選擇1位(默認),1.5或2位。串口通信的速率用波特率表示,它表示每秒傳輸二進制數據的位數,單位是bps( 位/秒),常用的波特率有9600、19200、38400、57600以及115200等。
????在設置好數據格式及傳輸速率之后,UART負責完成數據的串并轉換,而信號的傳輸則由外部驅動電路實現。電信號的傳輸過程有著不同的電平標準和接口規范, 針對異步串行通信的接口標準有RS232、RS422、RS485等,它們定義了接口不同的電氣特性,如RS-232是單端輸入輸出,而RS-422/485為差分輸入輸出等。
????RS232接口標準出現較早, 可實現全雙工工作方式,即數據發送和接收可以同時進行。在傳輸距離較短時(不超過15m),RS232是串行通信最常用的接口標準,本章主要介紹針對RS-232標準的UART串口通信。
????RS-232標準的串口最常見的接口類型為DB9,樣式如圖2所示,工業控制領域中用到的工控機一般都配備多個串口,很多老式臺式機也都配有串口。但是筆記本電腦以及較新一點的臺式機都沒有串口,它們一般通過USB轉串口線(圖3)來實現與外部設備的串口通信。

圖1. 異步串口時序圖

圖2. DB9接頭

圖3. USB串口線

DB9接口定義以及各引腳功能說明如圖 16.1.4所示,我們一般只用到其中的2(RXD)、3(TXD)、5(GND)引腳,其他引腳在普通串口模式下一般不使用。

圖4. DB9接口定義 波特率9600bps:每秒傳輸9600bit。 傳輸1bit的時間為:1/9600(秒)=104167ns 也就是5208個時鐘周期,需要采集1次 以上只是介紹串口相關的知識,我們XLOGIC開發板上板載了USB轉TTL芯片(CH340),只用一根USB線即可與電腦進行串口通信。

1.3 硬件設計

這個系統我們會用到開發板上基本所有的外設,原理圖就不截取出來了,大家可以直接看我們提供的開發板原理圖

1.4 接口說明

信號名方向FPGA管腳號說明
CLK50M輸入B10時鐘信號,50MHZ
FPGA_RX輸入H14串口信號輸入
FPGA_TX輸出F14串口信號輸出
SMG_W0輸出E12位選控制信號,低電平可導通三極管,使其給數碼管位選供電
SMG_W1輸出B15位選控制信號,低電平可導通三極管,使其給數碼管位選供電
SMG_W2輸出E15位選控制信號,低電平可導通三極管,使其給數碼管位選供電
SMG_W3輸出H11位選控制信號,低電平可導通三極管,使其給數碼管位選供電
SMG_W4輸出K16位選控制信號,低電平可導通三極管,使其給數碼管位選供電
SMG_W5輸出K14位選控制信號,低電平可導通三極管,使其給數碼管位選供電
SMG_A輸出F13數碼管段選控制信號,低電平點亮該段
SMG_B輸出B16數碼管段選控制信號,低電平點亮該段
SMG_C輸出J16數碼管段選控制信號,低電平點亮該段
SMG_D輸出J13數碼管段選控制信號,低電平點亮該段
SMG_E輸出G14數碼管段選控制信號,低電平點亮該段
SMG_F輸出E13數碼管段選控制信號,低電平點亮該段
SMG_G輸出G12數碼管段選控制信號,低電平點亮該段
SMG_DP輸出J14數碼管段選控制信號,低電平點亮該段
KEY1輸出E4獨立按鍵,按下低電平
KEY2輸出B4獨立按鍵,按下低電平
KEY3輸出C3獨立按鍵,按下低電平
KEY4輸出D3獨立按鍵,按下低電平
KEY5輸出E3獨立按鍵,按下低電平
KEY6輸出H4獨立按鍵,按下低電平
LED1輸出L12與LED燈相連,低電平LED燈亮
LED2輸出T13與LED燈相連,低電平LED燈亮
LED3輸出R12與LED燈相連,低電平LED燈亮
LED4輸出T12與LED燈相連,低電平LED燈亮
LED5輸出P11與LED燈相連,低電平LED燈亮
LED6輸出J11與LED燈相連,低電平LED燈亮
LED7輸出K11與LED燈相連,低電平LED燈亮
LED8輸出G11與LED燈相連,低電平LED燈亮
BEEP輸出F14PWM方波,用于驅動無源蜂鳴器

1.5 通信協議

這一講我們需要做一個測試系統,用上位機軟件控制我們的開發板,那么就需要擬定控制協議。這個協議是自己定義的,只要保證上位機和下位機的程序都是按這個協議來寫的程序就行,這樣才能正確控制。

  • 數碼管控制協議-下發(上位機發給下位機)

    2.LED燈控制協議-下發(上位機發給下位機)

    3.無源蜂鳴器控制協議-下發(上位機發給下位機)

    4.按鍵檢測協議-回傳(下位機發給上位機

    以上便是我們該項目的通信協議,一個很簡單的通信協議,起到拋磚引玉的作用,當控制系統復雜時,我們在定協議的時候需要考慮很多的問題。像我們現在這個簡單的控制系統,協議非常簡單,僅用于大家學習,便于讓大家明白一個控制系統是如何工作的。
  • 2 繪制理論波形圖

    工程邏輯框圖

    由于整個工程涉及到的模塊較多,理論波形圖就不繪制了。但是大家在寫程序之前,一定要清楚每個模塊內以及模塊與模塊之間的信號時序關系,這樣在仿真出波形時,才能判斷出我們當前的程序邏輯是否正確。不然仿真出了波形,也不知道這個波形對不對,那這個項目就沒辦法完成了。

    3 新建TD工程

    為了讓工程看起來整潔,同時方便工程移植。我們新建4個文件夾,分別是Project,Source,Sim,Doc。
    Project — 工程文件夾,里面放的TD工程
    Source — 源代碼文件夾,里面放的工程源碼(.v文件或.vhd文件)
    Sim — 仿真文件夾,里面放的仿真相關的文件
    Doc — 存放相關資料,比如數據手冊,需求文檔等

    4 編寫代碼

    4.1 按鍵消抖模塊

    /// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:按鍵消抖模塊,主要用來消除按鍵機械抖動帶來的干擾 /// module key_xd(input clk,input rst_n,input key_in,output reg key_out); reg [3:0] curr_st; reg [31:0] wait_cnt; reg key_in_ff1; reg key_in_ff2; parameter wait_time=100000; //for sim //parameter wait_time=8000; parameter IDLE=4'd0,START=4'd1,WAIT=4'd2,KEY_VALID=4'd3,FINISH=4'd4; always@(posedge clk)key_in_ff1<=key_in; always@(posedge clk)key_in_ff2<=key_in_ff1; always@(posedge clk or negedge rst_n)beginif(!rst_n)curr_st<=IDLE;elsecase(curr_st)IDLE:beginif(key_in_ff2==0)curr_st<=START;else;endSTART:beginif(key_in_ff2==1)curr_st<=IDLE;else if(wait_cnt==wait_time)curr_st<=WAIT;else;endWAIT:beginif(key_in_ff2==1)curr_st<=IDLE;else if(key_in_ff2==0)curr_st<=KEY_VALID;elsecurr_st<=IDLE;endKEY_VALID:curr_st<=FINISH;FINISH:beginif(key_in_ff2==1)curr_st<=IDLE;else;enddefault:curr_st<=IDLE;endcaseendalways@(posedge clk or negedge rst_n)beginif(!rst_n)wait_cnt<=0;else if(curr_st==START)wait_cnt<=wait_cnt+1;elsewait_cnt<=0;endalways@(posedge clk or negedge rst_n)beginif(!rst_n)key_out<=0;else if(curr_st==KEY_VALID)key_out<=1;elsekey_out<=0;endendmodule

    4.2 無源蜂鳴器驅動模塊

    /// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:產生PWM波,驅動無源蜂鳴器發聲 /// module alarm_ctrl(input clk,input rst_n,output reg beep);reg [15:0] cnt=0;always@(posedge clk or negedge rst_n)beginif(!rst_n)cnt<=0;else if(cnt==10000)cnt<=0;else cnt<=cnt+1;endalways@(posedge clk or negedge rst_n)beginif(!rst_n)beep<=0;else if(cnt==0)beep<=~beep;end endmodule

    4.3 異步串口接收模塊

    /// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:串口接收模塊,將串行數據轉換成并行數據 /// module async_uart_rev(input rst_n ,//復位信號,低電平有效input clk ,//時鐘信號,50MHZinput rxd ,//串行接收數據output reg [7:0] rev_data,//并行數據output reg rev_dvld //并行數據有效標志);parameter baud_num=5207;//1/9600*1000000000/20parameter IDLE =4'd0;parameter START_ST =4'd1;parameter STOP_ST =4'd2;reg [12:0] baud_cnt;reg baud_cnt_en;wire sample_en;reg [3:0] sample_num;reg rxd_ff1;reg rxd_ff2;reg [3:0] curr_st;always@(posedge clk)rxd_ff2<=rxd_ff1;always@(posedge clk)rxd_ff1<=rxd;assign sample_en=(baud_cnt==baud_num[12:1])?1'b1:1'b0;//狀態機跳轉程序always@(posedge clk or negedge rst_n)beginif(!rst_n)curr_st<=IDLE;else case(curr_st)IDLE:beginif(rxd_ff2==0)curr_st<=START_ST;else;endSTART_ST:beginif(sample_num==8&&sample_en)curr_st<=STOP_ST;else;endSTOP_ST:beginif(rxd_ff2==1&&sample_en)curr_st<=IDLE;else;enddefault:;endcaseendalways@(posedge clk or negedge rst_n)beginif(!rst_n)baud_cnt<=0;else if(curr_st==START_ST||curr_st==STOP_ST)beginif(baud_cnt==baud_num)baud_cnt<=0;else baud_cnt<=baud_cnt+1;end elsebaud_cnt<=0;endalways@(posedge clk or negedge rst_n)beginif(!rst_n) sample_num<=0;else if(sample_en&&sample_num==9)sample_num<=0;else if(sample_en)sample_num<=sample_num+1;else;endalways@(posedge clk or negedge rst_n)beginif(!rst_n)rev_data<=0;else if(sample_en)case(sample_num)1:rev_data[0]<=rxd_ff2;2:rev_data[1]<=rxd_ff2;3:rev_data[2]<=rxd_ff2;4:rev_data[3]<=rxd_ff2;5:rev_data[4]<=rxd_ff2;6:rev_data[5]<=rxd_ff2;7:rev_data[6]<=rxd_ff2;8:rev_data[7]<=rxd_ff2;default:;endcaseendalways@(posedge clk or negedge rst_n)beginif(!rst_n) rev_dvld<=0;else if(sample_num==9&&sample_en)rev_dvld<=1;elserev_dvld<=0;end endmodule

    4.4 異步串口發送模塊

    /// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:串口發送模塊,將并行數據轉換成串行數據 /// module async_uart_tran(input rst_n ,//復位信號,低電平有效input clk ,//時鐘,50MHZinput [7:0] tran_data ,//輸入的并行數據input tran_dvld ,//輸入的并行數據有效標志output reg txd ,//串行輸出數據output byte_txfini );parameter baud_num=5207;//1/9600*1000000000/20parameter IDLE =4'd0;parameter DATA_ST =4'd1;parameter START_ST =4'd2;parameter STOP_ST =4'd3;reg [12:0] baud_cnt;reg baud_cnt_en;wire sample_en;reg [3:0] sample_num;reg [3:0] curr_st;assign byte_txfini=(curr_st==STOP_ST&&sample_en)?1'b1:1'b0;assign sample_en=(baud_cnt==baud_num)?1'b1:1'b0;always@(posedge clk or negedge rst_n)beginif(!rst_n)curr_st<=IDLE;else case(curr_st)IDLE:beginif(tran_dvld==1)curr_st<=START_ST;else;endSTART_ST:beginif(sample_en==1)curr_st<=DATA_ST;endDATA_ST:beginif(sample_en&&sample_num==8)curr_st<=STOP_ST;else;endSTOP_ST:beginif(sample_en==1)curr_st<=IDLE;else;enddefault:;endcaseendalways@(posedge clk or negedge rst_n)beginif(!rst_n)baud_cnt<=0;else if(curr_st==START_ST||curr_st==DATA_ST||curr_st==STOP_ST)beginif(baud_cnt==baud_num)baud_cnt<=0;else baud_cnt<=baud_cnt+1;end elsebaud_cnt<=0;endalways@(posedge clk or negedge rst_n)beginif(!rst_n) sample_num<=0;else if(curr_st==IDLE)sample_num<=0;else if(sample_en)sample_num<=sample_num+1;else;endalways@(posedge clk or negedge rst_n)beginif(!rst_n)txd<=1;else if(sample_en)case(sample_num)0:txd<=1'b0;1:txd<=tran_data[0];2:txd<=tran_data[1];3:txd<=tran_data[2];4:txd<=tran_data[3];5:txd<=tran_data[4];6:txd<=tran_data[5];7:txd<=tran_data[6];8:txd<=tran_data[7];9:txd<=1'b1;default:txd<=1;endcaseend endmodule

    4.5 指令解析模塊

    /// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:將收到的指令按協議解析出來,分別控制數碼管,LED燈和蜂鳴器模塊 /// module cmd_ctrl(input clk,input rst_n,input rev_dvld,input [7:0] rev_data,output reg [3:0] smg_00,output reg [3:0] smg_01,output reg [3:0] smg_02,output reg [3:0] smg_03,output reg [3:0] smg_04,output reg [3:0] smg_05,output reg [7:0] led,output reg beep);parameter IDLE =4'd0;parameter CMD0_ST =4'd1;parameter SMG00_ST =4'd2;parameter SMG01_ST =4'd3;parameter SMG02_ST =4'd4;parameter SMG03_ST =4'd5;parameter SMG04_ST =4'd6;parameter SMG05_ST =4'd7;parameter LED_ST =4'd8;parameter ALARM_ST =4'd9;reg [3:0] curr_st;always@(posedge clk or negedge rst_n)beginif(!rst_n)begincurr_st<=IDLE;end else case(curr_st)IDLE:beginif(rev_dvld&&rev_data==8'haa)curr_st<=CMD0_ST;else;endCMD0_ST:beginif(rev_dvld&&rev_data==8'h00)//數碼管curr_st<=SMG00_ST;else if(rev_dvld&&rev_data==8'h01)//LED燈curr_st<=LED_ST;else if(rev_dvld&&rev_data==8'h02)//蜂鳴器curr_st<=ALARM_ST;else;endSMG00_ST:beginif(rev_dvld)curr_st<=SMG01_ST;else;endSMG01_ST:beginif(rev_dvld)curr_st<=SMG02_ST;else;endSMG02_ST:beginif(rev_dvld)curr_st<=SMG03_ST;else;endSMG03_ST:beginif(rev_dvld)curr_st<=SMG04_ST;else;endSMG04_ST:beginif(rev_dvld)curr_st<=SMG05_ST;else;endSMG05_ST:beginif(rev_dvld)curr_st<=IDLE;else;endLED_ST:beginif(rev_dvld)curr_st<=IDLE;else;endALARM_ST:beginif(rev_dvld)curr_st<=IDLE;else;enddefault:;endcaseendalways@(posedge clk or negedge rst_n)beginif(!rst_n)beginsmg_00 <=0;smg_01 <=0;smg_02 <=0;smg_03 <=0;smg_04 <=0;smg_05 <=0;end else if(curr_st==SMG00_ST)beginsmg_00<=rev_data;end else if(curr_st==SMG01_ST)beginsmg_01<=rev_data;end else if(curr_st==SMG02_ST)beginsmg_02<=rev_data;end else if(curr_st==SMG03_ST)beginsmg_03<=rev_data;end else if(curr_st==SMG04_ST)beginsmg_04<=rev_data;end else if(curr_st==SMG05_ST)beginsmg_05<=rev_data;end else;endalways@(posedge clk or negedge rst_n)beginif(!rst_n)beginled<=8'hff;end else if(curr_st==LED_ST)led<=rev_data;else;end always@(posedge clk or negedge rst_n)beginif(!rst_n)beep<=0;else if(curr_st==ALARM_ST)beep<=rev_data[0];else;end endmodule

    4.6 通信協議生成模塊

    /// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:生成按鍵檢測的通信協議 /// `timescale 1ns/1ps module uart_data_gen(input clk,input rst_n,input key0,input key1,input key2,input key3,input key4,input key5,input byte_end,output reg [ 7:0] data,output reg data_valid); parameter idle = 8'd0; parameter word1 = 8'd1; parameter word1_gap = 8'd2;reg [ 7:0] curr_st ; reg [ 7:0] word_cnt ; reg [ 7:0] title ; reg byte_end_ff1; wire byte_end_rise; wire[7:0] data_tmp ; assign byte_end_rise=byte_end&(!byte_end_ff1); always@(posedge clk)byte_end_ff1<=byte_end; always@(posedge clk or negedge rst_n)beginif(!rst_n)title<=8'hff;else if(key0)title<=8'h00;else if(key1)title<=8'h01;else if(key2)title<=8'h02;else if(key3)title<=8'h03;else if(key4)title<=8'h04;else if(key5)title<=8'h05;else;end always@(posedge clk or negedge rst_n)beginif(!rst_n)curr_st<=idle;else case(curr_st)idle:beginif(key0||key1||key2||key3||key4||key5)curr_st<=word1;else;endword1:begin if(word_cnt==2)curr_st<=word1_gap;else;endword1_gap:curr_st<=idle;default:;endcase end always@(posedge clk or negedge rst_n)beginif(!rst_n)word_cnt<=0;else if(curr_st==idle||curr_st==word1_gap)word_cnt<=0;else if((curr_st==word1)&byte_end)word_cnt<=word_cnt+1;else;end always@(posedge clk or negedge rst_n)beginif(!rst_n)begindata<=0;data_valid<=0;endelse case({curr_st,word_cnt}){word1,8'h0}:begin data<=8'haa ;data_valid<=1;end{word1,8'h1}:begin data<=title;data_valid<=1;enddefault: begin data<=8'h00;data_valid<=0;endendcaseend endmodule

    4.7 數碼管顯示模塊

    /// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:數碼管動態掃描 /// module smg(input clk ,//時鐘input rst_n ,//復位,低電平有效input [3:0] swan ,//十萬位數input [3:0] wan ,//萬位數input [3:0] qian ,//千位數input [3:0] bai ,//百位數input [3:0] shi ,//十位數input [3:0] ge ,//個位數output reg [5:0] sm_bit ,//數碼管選擇輸出引腳output reg [7:0] sm_seg //數碼管段輸出引腳);reg [ 3:0] disp_dat;//定義顯示數據寄存器reg [24:0] count ;//定義計數寄存器 //掃描信號產生部分 always @(posedge clk or negedge rst_n)//定義clock上升沿觸發 beginif(!rst_n)count<=0;else if(count == 25'd250000)count <= 25'd0; //計數器清零elsecount <= count + 1'b1; end //數碼管動態掃描顯示部分 always @(posedge clk or negedge rst_n) beginif(!rst_n)disp_dat<=0;else case(count[15:13])//選擇掃描顯示數據3'd0:disp_dat <= ge ;//個位3'd1:disp_dat <= shi ;//十位3'd2:disp_dat <= bai ;//百位3'd3:disp_dat <= qian ;//千位3'd4:disp_dat <= wan ;//萬位3'd5:disp_dat <= swan ;//十萬位endcase end always @(posedge clk) begincase(count[15:13]) //選擇掃描顯示數據3'd0:sm_bit <= 6'b111110;//選擇第一個數碼管顯示3'd1:sm_bit <= 6'b111101;//選擇第二個數碼管顯示3'd2:sm_bit <= 6'b111011;//選擇第三個數碼管顯示3'd3:sm_bit <= 6'b110111;//選擇第四個數碼管顯示3'd4:sm_bit <= 6'b101111;//選擇第五個數碼管顯示3'd5:sm_bit <= 6'b011111;//選擇第六個數碼管顯示endcase end always @(posedge clk) begincase(disp_dat)4'h0:sm_seg <= 8'hc0; //顯示04'h1:sm_seg <= 8'hf9; //顯示14'h2:sm_seg <= 8'ha4; //顯示24'h3:sm_seg <= 8'hb0; //顯示34'h4:sm_seg <= 8'h99; //顯示44'h5:sm_seg <= 8'h92; //顯示54'h6:sm_seg <= 8'h82; //顯示64'h7:sm_seg <= 8'hf8; //顯示74'h8:sm_seg <= 8'h80; //顯示84'h9:sm_seg <= 8'h90; //顯示94'ha:sm_seg <= 8'hbf; //顯示-default:sm_seg <= 8'hff;//不顯示endcase end endmodule

    4.8 頂層模塊

    /// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:頂層模塊,例化各個功能模塊,使工程看起來整潔清晰 /// module ctrl_system_top(input clk ,input rst_n ,input [5:0] key ,input uart_rxd ,output uart_txd ,output [5:0] sm_bit ,output [7:0] sm_seg ,output [7:0] led ,output alarm); wire [7:0] rev_data; wire [3:0] smg_00 ; wire [3:0] smg_01 ; wire [3:0] smg_02 ; wire [3:0] smg_03 ; wire [3:0] smg_04 ; wire [3:0] smg_05 ; wire [7:0] tran_data; wire beep; wire beep_en; wire key0_out,key1_out,key2_out,key3_out,key4_out,key5_out; assign alarm=(beep_en)?beep:1'b1; key_xd Ukey_xd0(.clk (clk ),.rst_n (rst_n ),.key_in (key[0] ),.key_out(key0_out )); key_xd Ukey_xd1(.clk (clk ),.rst_n (rst_n ),.key_in (key[1] ),.key_out(key1_out )); key_xd Ukey_xd2(.clk (clk ),.rst_n (rst_n ),.key_in (key[2] ),.key_out(key2_out )); key_xd Ukey_xd3(.clk (clk ),.rst_n (rst_n ),.key_in (key[3] ),.key_out(key3_out )); key_xd Ukey_xd4(.clk (clk ),.rst_n (rst_n ),.key_in (key[4] ),.key_out(key4_out )); key_xd Ukey_xd5(.clk (clk ),.rst_n (rst_n ),.key_in (key[5] ),.key_out(key5_out )); async_uart_rev Uasync_uart_rev(.rst_n (rst_n),.clk (clk),.rxd (uart_rxd),.rev_data (rev_data),.rev_dvld (rev_dvld)); cmd_ctrl Ucmd_ctrl(.clk (clk ),.rst_n (rst_n ),.rev_dvld (rev_dvld ),.rev_data (rev_data ),.smg_00 (smg_00 ),.smg_01 (smg_01 ),.smg_02 (smg_02 ),.smg_03 (smg_03 ),.smg_04 (smg_04 ),.smg_05 (smg_05 ),.led (led ),.beep (beep_en )); smg Usmg(.clk (clk ),//時鐘.rst_n (rst_n ),//復位,低電平有效.swan (smg_00 ),//十萬位數.wan (smg_01 ),//萬位數.qian (smg_02 ),//千位數.bai (smg_03 ),//百位數.shi (smg_04 ),//十位數.ge (smg_05 ),//個位數.sm_bit (sm_bit ),//數碼管選擇輸出引腳.sm_seg (sm_seg )//數碼管段輸出引腳); alarm_ctrl Ualarm_ctrl(.clk (clk),.rst_n (rst_n),.beep (beep)); uart_data_gen Uuart_data_gen(.clk (clk),.rst_n (rst_n),.key0 (key0_out),.key1 (key1_out),.key2 (key2_out),.key3 (key3_out),.key4 (key4_out),.key5 (key5_out),.byte_end (byte_txfini),.data (tran_data),.data_valid (tran_dvld)); async_uart_tran Uasync_uart_tran(.rst_n (rst_n),//復位信號,低電平有效.clk (clk),//時鐘,50MHZ.tran_data (tran_data),//輸入的并行數據.tran_dvld (tran_dvld),//輸入的并行數據有效標志.txd (uart_txd), //串行輸出數據.byte_txfini(byte_txfini)); endmodule

    5. 編寫仿真測試激勵文件

    我們知道,寫仿真激勵文件時,只關心輸入信號,在該項目中,輸入信號有clk,rst_n,key[5:0],uart_rxd,所以我們只需要在TB文件里對這幾個信號操作即可。clk,rst_n,key[5:0],這幾個信號的激勵比較簡單,在上幾講里都有涉及到,只是uart_rxd這個信號的激勵相對來說要麻煩一些。因為,我們必須按異步串口通信的協議給這個uart_rxd賦值,相當于我們在TB文件里面要寫一個串口發送模塊,這樣才能產生一個正確的uart_rxd激勵信號。

    5.1 頂層仿真文件

    `timescale 1ns/1ns module async_uart_top_tb;reg clk ;reg rst_n ;reg [5:0] key ;wire rxd ;reg [17:0] cnt=0;wire[7:0] tran_data; initial beginclk = 0;rst_n=0;key=6'h3f;#1000rst_n=1; end always #10 clk=~clk; always@(posedge clk)cnt<=cnt+1; always@(posedge clk)beginif(cnt>10000&&cnt<20000)//按下KEY1key<=6'b111110;elsekey<=6'b111111; end //生成通信協議數據 uart_data_gen_sim Uuart_data_gen_sim(.clk (clk ),.rst_n (rst_n ),.byte_end (byte_txfini),.data (tran_data ),.data_valid (tran_dvld )); //將通信協議以串口的形式發送出去 async_uart_tran Uasync_uart_tran(.rst_n (rst_n ),.clk (clk ),.tran_data (tran_data ),.tran_dvld (tran_dvld ),.txd (rxd ),.byte_txfini(byte_txfini)); //被仿真的工程頂層文件 ctrl_system_top Uctrl_system_top(.clk (clk ),.rst_n (rst_n ),.key (key ),.uart_rxd (rxd ),.uart_txd (),.sm_bit (),.sm_seg (),.led (),.alarm ()); endmodule

    5.2 通信協議生成模塊

    該模塊主要用于生成數碼管控制協議,LED燈控制協議和蜂鳴器控制協議,在我們仿真時,一次只能仿真一個控制協議,如果我們仿真數碼管控制協議就需要在程序中注釋掉LED燈控制協議和蜂鳴器控制協議。

    `timescale 1ns/1ps module uart_data_gen_sim(input clk,input rst_n,input byte_end,output reg [ 7:0] data,output reg data_valid); parameter idle = 8'd0; parameter word1 = 8'd1; parameter word1_gap = 8'd2; parameter word_num =8;//控制數碼管的協議為8個字節 //parameter word_num =3;//控制LED燈和蜂鳴器的協議為3個字節 reg [ 7:0] curr_st ; reg [ 7:0] word_cnt ; reg [ 7:0] title ; reg byte_end_ff1; wire byte_end_rise; wire[7:0] data_tmp ; assign byte_end_rise=byte_end&(!byte_end_ff1); always@(posedge clk)byte_end_ff1<=byte_end; always@(posedge clk or negedge rst_n)beginif(!rst_n)curr_st<=idle;else case(curr_st)idle:curr_st<=word1;word1:begin if(word_cnt==word_num)curr_st<=word1_gap;else;endword1_gap:;//curr_st<=idle;default:;endcase end always@(posedge clk or negedge rst_n)beginif(!rst_n)word_cnt<=0;else if(curr_st==idle||curr_st==word1_gap)word_cnt<=0;else if((curr_st==word1)&byte_end)word_cnt<=word_cnt+1;else;end always@(posedge clk or negedge rst_n)beginif(!rst_n)begindata<=0;data_valid<=0;endelse case({curr_st,word_cnt})/控制數碼管/{word1,8'h0}:begin data<=8'haa;data_valid<=1;end{word1,8'h1}:begin data<=8'h00;data_valid<=1;end{word1,8'h2}:begin data<=8'h01;data_valid<=1;end//第一位數碼管顯示的值{word1,8'h3}:begin data<=8'h02;data_valid<=1;end//第二位數碼管顯示的值{word1,8'h4}:begin data<=8'h03;data_valid<=1;end//第三位數碼管顯示的值{word1,8'h5}:begin data<=8'h04;data_valid<=1;end//第四位數碼管顯示的值{word1,8'h6}:begin data<=8'h05;data_valid<=1;end//第五位數碼管顯示的值{word1,8'h7}:begin data<=8'h06;data_valid<=1;end//第六位數碼管顯示的值/控制LED燈/// {word1,8'h0}:begin data<=8'haa;data_valid<=1;end// {word1,8'h1}:begin data<=8'h01;data_valid<=1;end// {word1,8'h2}:begin data<=8'hfe;data_valid<=1;end//點亮第一個LED燈/控制蜂鳴器/// {word1,8'h0}:begin data<=8'haa;data_valid<=1;end// {word1,8'h1}:begin data<=8'h02;data_valid<=1;end// {word1,8'h2}:begin data<=8'h01;data_valid<=1;end//打開蜂鳴器default: begin data<=8'h00;data_valid<=0;endendcaseend endmodule

    6. Modelsim仿真

    Modelsim仿真一般有兩種方法,第一種是圖形化界面仿真,即所有的操作都是在Modelsim軟件界面上來完成,該方式的優點是,簡單易學,適用于簡單的項目,缺點是操作步驟繁瑣。第二種是批處理仿真,這種方式在仿真前需要編寫相應的腳本文件,該方式的優點是,一鍵即可完成仿真,省時省力,缺點是前期需要編寫腳本文件。為了更貼近工程實際,從第三課開始采用批處理的方式進行仿真。

    6.1 數碼管控制仿真波形如下:

    通過上面的仿真波形我們可以看到,smg_00等于1,smg_01等于2…smg_05等于6,在通信協議生成模塊(uart_data_gen_sim.v)中,我們給數碼管賦值也是123456,仿真結果與設計相符,邏輯功能正確。

    6.2 LED燈控制

    通過上面的仿真波形我們可以看到,led等于8’b11111110,在通信協議生成模塊(uart_data_gen_sim.v)中,我們給LED燈賦值也是8’b11111110,仿真結果與設計相符,邏輯功能正確。

    6.3 蜂鳴器控制


    通過上面的仿真波形我們可以看到,alarm輸出了PWM方波信號,在通信協議生成模塊(uart_data_gen_sim.v)中,我們給蜂鳴器賦值也是8’h01,即打開蜂鳴器,仿真結果也看到了有PWM信號輸出,與設計相符,邏輯功能正確。

    7.對比波形圖

    由于我們沒有繪制理論波形,所以只需要在仿真時,確保仿真波形沒問題就可以

    8 添加.v文件

    9 綁定管腳并保存約束文件(.adc)



    10 編譯綜合生成BIT文件

    11.下載BIT文件


    下載成功后,便可以與我們的上位機測試軟件進行通信,具體操作步驟如下
    1)安裝串口驅動
    2)將電源線一端接入電腦USB接口 ,一端接入開發板供電口
    3)下載FPGA程序
    4)打開《開發板測試平臺.exe》可執行文件
    5)如果串口驅動安裝成功,上位機會自動識別端口號,波特率選擇9600,然后開啟連接,如下圖:

    6)連接成功后,即可進行開發板控制,可更改數碼管顯示的數字,設置好以后,點擊設置按鈕,開發板上便顯示上位機設置的數字

    7)按下開發板上的按鍵,可顯示當前按下的按鍵,如下圖:

    8)LED燈控制時,當打開開發板上的LED時,對應的按鈕會變成紅色,表示打開了對應的LED燈,如下圖表示LED0,LED2,LED4被點亮。

    9)按下蜂鳴器按鈕,蜂鳴器報警,再按一次,報警關閉。
    以上測試沒問題就說明我們的程序是OK的,可以固化程序。

    12 固化配置文件

    FPGA有一個特性,就是掉電后配置信息會丟失,所以我們需要將配置信息存儲在配置芯片(FLASH)中,待開發板上電后,FPGA便會讀取配置芯片中的配置信息,這樣開發板掉電再上電后同樣可正常工作

    固化成功后,開發板斷電再重新上電,可以觀察到開發板仍然可以執行剛剛的功能。

    總結

    以上是生活随笔為你收集整理的【小月电子】国产安路FPGA开发板系统学习教程-LESSON9简易测试系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产精品18久久久久久久久久久久 | 九九热在线视频免费观看 | 在线视频免费观看 | 日韩精品中文字幕在线观看 | 国产91九色视频 | 久久极品 | 狠狠色丁香婷婷综合 | 日韩视频一区二区在线 | 7777精品伊人久久久大香线蕉 | 久草网视频 | 夜夜操网| 一区二区欧美激情 | 蜜臀久久99精品久久久久久网站 | 69人人| 久草在线精品观看 | 国产精品手机在线 | 国产视频日韩 | av 一区 二区 久久 | 久久久久久综合 | 日韩欧美在线一区 | 91视频3p| 黄色av电影网 | 91精彩视频 | 久久精品999 | 国产男女爽爽爽免费视频 | 91夫妻视频 | 中文字幕一区二区三区四区久久 | 又色又爽又激情的59视频 | 黄色精品一区 | 精品免费观看视频 | 伊人国产在线播放 | 99久久精品久久久久久动态片 | 久久久免费av | 夜夜狠狠| 91在线视频精品 | 久久精品99国产国产 | 国产精品久久久网站 | 亚洲激情综合 | 国产精品不卡在线观看 | 激情久久综合 | 日韩中文字幕国产 | 免费日韩一级片 | 韩日电影在线观看 | 久久av电影 | 欧美视频18| 国产剧情一区二区在线观看 | 国产一区播放 | a电影在线观看 | 中文字幕在线观看视频一区 | 91在线看网站 | 91资源在线视频 | 综合久久精品 | 黄色三级网站在线观看 | 日韩簧片在线观看 | 国产亚洲激情视频在线 | 国产精品美女毛片真酒店 | 日韩免费三级 | 四虎永久免费 | 日本中文字幕系列 | 日日躁夜夜躁xxxxaaaa | 亚洲视频www | 国产 一区二区三区 在线 | 欧美日韩国产在线观看 | 中文字幕在线观看视频一区二区三区 | 色综合人人 | 国产亚洲欧洲 | 91精品久久久久久久久久久久久 | 国产精品免费久久久久影院仙踪林 | 久久国产成人午夜av影院潦草 | 最近日本韩国中文字幕 | 日韩欧美在线免费 | 亚洲精品高清在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 国产最新在线观看 | 探花视频在线版播放免费观看 | 一区二区三区免费播放 | 波多野结衣在线观看一区二区三区 | 四虎免费在线观看视频 | 精品一区 在线 | 手机在线观看国产精品 | 九九九九精品九九九九 | 日韩精品视频免费看 | 国产高清在线免费 | 99福利影院 | 久久精品牌麻豆国产大山 | 欧美激情精品久久久久久免费印度 | 大片网站久久 | 成人黄色视 | 一区二区三区日韩在线 | 一区二区三区在线不卡 | 日本一区二区高清不卡 | 国产精品免费视频观看 | 欧美aaa视频 | 亚洲国产欧美一区二区三区丁香婷 | 欧美日韩中文字幕在线视频 | 黄网站色欧美视频 | 伊人丁香| 色中色综合| 免费激情网 | 午夜在线免费观看视频 | 激情综合久久 | 中文字幕日韩在线播放 | 丁香一区二区 | 黄av资源| 日本成址在线观看 | 射久久| 亚洲人成在线电影 | 日韩三级不卡 | 国产精品久久99综合免费观看尤物 | 欧美久久久久久久久久 | 中文字幕久久亚洲 | 天天天干天天射天天天操 | 国产精品一区二区三区免费视频 | 视频国产在线观看18 | 久久99热精品 | 在线婷婷 | 天天操天天操天天操天天操天天操 | www.久久久.cum | 天堂av免费在线 | 成人免费一级片 | 亚洲成人资源网 | 激情久久综合 | 97成人精品视频在线播放 | 亚洲午夜激情网 | 最近中文字幕高清字幕在线视频 | 日日干美女 | 在线成人中文字幕 | 在线观看日本高清mv视频 | 中文字幕永久在线 | 99久久er热在这里只有精品15 | 四虎免费在线观看 | 久久好看免费视频 | 久久午夜色播影院免费高清 | 日韩欧美xxxx| 国产成在线观看免费视频 | 精品免费久久久久久 | 欧美成人xxx | 日韩电影在线观看一区 | 又黄又色又爽 | 国产中文字幕在线 | 美女在线免费观看视频 | 国产成人av一区二区三区在线观看 | 亚洲午夜精品一区 | 天天草天天草 | 一级黄色大片在线观看 | 一级a性色生活片久久毛片波多野 | 色婷婷国产精品 | 国产成人333kkk | 国产成人高清在线 | 国产日韩欧美在线观看 | 午夜国产福利在线 | 成人app在线免费观看 | 国产另类xxxxhd高清 | 99免费精品| 波多野结衣视频一区 | 特级西西444www大胆高清无视频 | 久久99久久99精品免观看软件 | 欧美色图亚洲图片 | 96久久精品 | 中文字幕 欧美性 | 国产又粗又猛又色又黄视频 | 成人网页在线免费观看 | 色婷婷激情四射 | 精品国产一区二区久久 | 国产伦精品一区二区三区高清 | 婷婷激情影院 | 999一区二区三区 | 色 中文字幕 | 99九九99九九九视频精品 | www.久久精品视频 | 亚洲精品黄网站 | 一区二区三区免费在线 | 国产精品九九久久久久久久 | 国产精品久久久久久久久久久久午夜 | 女人高潮特级毛片 | 国产精品久久久久一区二区三区 | 欧美污污网站 | 一本一本久久a久久精品牛牛影视 | 国产精品av免费 | 日韩在线视频网址 | 成人va在线观看 | 精品国产一区二区三区男人吃奶 | 亚洲激情婷婷 | 欧美性色综合网 | 国产精品免费一区二区三区 | 在线看片日韩 | 成年人国产在线观看 | www.亚洲黄| 久久久久久久电影 | av电影在线免费 | www视频在线免费观看 | 超碰人人草 | 久久精品国产一区二区电影 | 日本午夜在线观看 | 激情婷婷欧美 | 中文字幕国内精品 | 制服丝袜在线 | 精品9999 | 色婷婷激情电影 | 久久久免费观看完整版 | 成人97视频一区二区 | 日韩中文幕 | 日日爽天天爽 | 99色人 | 99久久精品国产观看 | 99在线免费视频观看 | 69视频在线播放 | 91成人午夜| 亚洲一区网 | 911国产精品| 日韩激情视频在线 | 欧美国产日韩一区二区三区 | 久久精品美女 | 久久老司机精品视频 | 天天干人人 | 久久99热久久99精品 | 国产精品久久久久久久久毛片 | 免费福利在线观看 | 婷婷草| 夜夜视频欧洲 | 黄色一级动作片 | 日韩在线视频一区二区三区 | 天天天色综合 | 新av在线| av在线精品 | 天天av综合网 | 成人av片免费观看app下载 | 麻豆传媒一区二区 | 中文字幕久久精品一区 | 精品伊人久久久 | 亚洲免费精彩视频 | 久久爱资源网 | 伊人色综合久久天天 | 久久手机免费视频 | 久久人人爽爽人人爽人人片av | 777视频在线观看 | zzijzzij亚洲日本少妇熟睡 | 日韩另类在线 | 国产h片在线观看 | 亚洲一级片在线观看 | 国产精选视频 | av免费看在线 | 国产综合片| 国产精品欧美久久 | 久久综合一本 | 天天操天天干天天爽 | 草莓视频在线观看免费观看 | 日韩中文字幕免费电影 | 国产精品爽爽爽 | 99久久精品久久亚洲精品 | 久久女同性恋中文字幕 | 中文字幕在线一区二区三区 | 日日干美女| 免费在线观看av的网站 | 精品一区二区6 | 久久这里只有精品视频首页 | 成年人黄色av | 99re国产| 成人在线免费看 | 久久久久久福利 | 精品日本视频 | 国产又粗又猛又色又黄网站 | 奇米影视8888在线观看大全免费 | 97人人模人人爽人人少妇 | 国产视频网站在线观看 | 麻豆一区二区 | 久久黄色a级片 | 色之综合网 | 91精选在线 | 精品欧美一区二区精品久久 | 国产精品女人久久久 | 国产精品一区二区三区免费视频 | 免费色黄 | 久草免费在线 | 日韩av黄| 蜜臀av网址| 日韩欧美高清一区二区 | 香蕉91视频| 久草在线高清视频 | 国产精品密入口果冻 | 黄色特级片 | 亚洲激情av| 人人玩人人添人人 | 免费男女羞羞的视频网站中文字幕 | 日韩三区在线 | 97超碰人人在线 | aaa免费毛片 | 国产亚洲精品久久久久久电影 | 天天色天天操综合网 | 九色精品免费永久在线 | 欧美巨大荫蒂茸毛毛人妖 | 国产精品黄色 | 久久精品99久久久久久 | 免费中文字幕视频 | 夜夜操天天操 | 日韩免费电影网 | 91精品电影 | 亚洲色五月 | 亚洲乱码中文字幕综合 | 2020天天干夜夜爽 | 色全色在线资源网 | 精品国产电影一区二区 | 91丨九色丨国产在线 | www.黄色在线| wwwwwww黄| 亚洲精选国产 | 欧美性一级观看 | 国产日韩精品一区二区三区 | 国产福利久久 | 中文字幕久久亚洲 | 2023国产精品自产拍在线观看 | 国产黄色成人av | 丁香六月天婷婷 | 欧美在线91 | 五月天色丁香 | 欧美少妇bbwhd | 麻豆小视频在线观看 | 99热精品国产一区二区在线观看 | 日韩狠狠操| av手机在线播放 | 亚洲永久精品在线观看 | 91免费观看网站 | 综合色综合 | 香蕉视频在线免费看 | 日本中文字幕在线一区 | 国产二区视频在线观看 | 成人动图 | 免费观看国产成人 | 亚洲最新视频在线播放 | 91在线免费观看网站 | www夜夜操 | 久久久精品国产一区二区电影四季 | 中文字幕在线播放一区 | 色小说在线 | 久久一区二区免费视频 | 2023年中文无字幕文字 | 天天色天天操天天爽 | 日本黄区免费视频观看 | 婷婷精品在线视频 | 欧美了一区在线观看 | 色婷婷国产精品一区在线观看 | 久久久久久蜜桃一区二区 | 国产品久精国精产拍 | 精品国产伦一区二区三区观看体验 | 中文字幕 在线看 | 亚洲欧美一区二区三区孕妇写真 | 亚洲综合欧美激情 | 免费av电影网站 | 欧美极度另类性三渗透 | 亚洲我射av | 97av影院| 亚洲日本一区二区在线 | 亚洲特级片 | 日韩免费观看视频 | 五月激情久久 | 亚洲视频一区二区三区在线观看 | 97国产精品久久 | 亚洲视频网站在线观看 | 国产做爰视频 | 天天操夜夜看 | 精品日本视频 | 中文字幕高清免费日韩视频在线 | 亚洲专区在线视频 | 国产精品免费久久久久 | 99久久久久久 | 欧美成人h版电影 | 91欧美国产| 成年人免费在线观看网站 | 能在线观看的日韩av | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 国产精品免费观看久久 | 在线观看视频黄色 | 精品亚洲免a| 天天射天天舔天天干 | 五月婷婷六月丁香激情 | 黄色特级毛片 | av在线电影免费观看 | 久久国产精品免费 | 色婷婷亚洲| 在线国产视频一区 | 中文一区二区三区在线观看 | av中文在线播放 | 91视频免费看网站 | 欧美精品久久久久久久久久丰满 | 久久久国产视频 | 丁香花在线观看免费完整版视频 | a v在线视频 | 999免费视频 | 久久激情片 | av久久在线 | av最新资源 | 成人蜜桃网 | 国产一区91 | 免费福利在线视频 | 亚洲精品在线视频观看 | 激情电影影院 | 欧美久久久久久久久久久久久 | 成人在线视频你懂的 | 欧美极品少妇xbxb性爽爽视频 | 成人a免费视频 | 亚洲精品久久久久999中文字幕 | 久久久www成人免费毛片麻豆 | 欧美一级在线观看视频 | 久久免费美女视频 | 欧美成年黄网站色视频 | 综合色在线观看 | 久久精品视频观看 | 免费观看性生交大片3 | 四虎影视成人精品 | 欧美日韩另类在线 | 玖玖在线免费视频 | bbw av| 中文字幕丝袜 | 粉嫩av一区二区三区四区 | 日日夜夜操操操操 | www色片 | 一区二区三区在线视频观看58 | 色婷婷精品大在线视频 | 色妞色视频一区二区三区四区 | 日本韩国精品一区二区在线观看 | 国产视频每日更新 | 黄视频网站大全 | 99视频导航| 91丨九色丨蝌蚪丰满 | 免费a视频| 中文字幕免费高清在线观看 | 四虎影视成人永久免费观看视频 | 国产欧美精品在线观看 | 精品久久五月天 | 日韩精品久久久久久久电影竹菊 | 欧美一二三在线 | 中文字幕在线看视频国产 | 99草视频| 欧美国产日韩在线视频 | 日韩精品视频免费 | 久久九九网站 | 狠狠五月天 | 精品日韩中文字幕 | 美女久久一区 | 99综合久久 | 精品综合久久久 | h动漫中文字幕 | 中文字幕日韩在线播放 | 99精品热视频只有精品10 | 美女视频黄,久久 | 国内精品久久久久久久97牛牛 | 天天干天天天 | 免费麻豆| 久久久久久免费毛片精品 | 国产成人精品亚洲日本在线观看 | 综合久久久久 | 涩涩网站在线看 | 亚洲狠狠婷婷综合久久久 | 黄色一级大片在线观看 | 色视频在线看 | 日韩欧美精品在线观看 | 久久久久久久久影视 | 狠狠色丁婷婷日日 | 久久亚洲福利 | www日韩| 成人全视频免费观看在线看 | 99久久久国产精品 | 丰满少妇在线观看网站 | 在线a人片免费观看视频 | 五月综合色婷婷 | 久碰视频在线观看 | 丁香久久久 | 欧美日韩高清一区二区三区 | 日日躁天天躁 | 日本精品中文字幕在线观看 | 五月婷婷亚洲 | 成人av在线直播 | 久草在在线 | 欧美一级片 | 免费精品人在线二线三线 | 麻豆小视频在线观看 | 91麻豆精品国产91久久久久久 | 成年人看片网站 | 国内精品毛片 | 91资源在线免费观看 | 日韩欧美视频免费在线观看 | 五月婷婷激情五月 | 99日韩精品 | 一二三久久久 | 免费看片网页 | 天天射天天色天天干 | 丰满少妇在线观看网站 | 69精品人人人人 | 精品亚洲免费 | 91一区啪爱嗯打偷拍欧美 | 天天操导航 | 精品视频123区在线观看 | 婷婷综合视频 | 久久久精品欧美一区二区免费 | a天堂免费 | 国产成人免费观看 | 亚洲视频久久久久 | 午夜精品中文字幕 | www.五月天激情 | 九九精品视频在线看 | av在线最新 | 在线探花 | 国产精品99久久免费观看 | 国产日韩高清在线 | 精品国产1区 | 成人a视频在线观看 | 日韩欧美在线视频一区二区三区 | 麻豆94tv免费版 | 国产亚洲精品久久久久久大师 | 欧美精品久久久久久久亚洲调教 | 日韩电影在线一区 | 97在线观看免费观看高清 | 国产高清绿奴videos | 婷婷国产视频 | 欧美日韩视频在线观看一区二区 | 国产原创av在线 | 一区二区中文字幕在线播放 | 美女视频是黄的免费观看 | 在线成人小视频 | 91在线日韩 | 中文字幕黄色 | 国产乱码精品一区二区蜜臀 | 激情视频免费在线 | 摸阴视频 | 中文字幕黄网 | 午夜在线免费视频 | 色综合久久综合中文综合网 | 激情五月婷婷激情 | 中文字幕中文字幕在线中文字幕三区 | a在线免费| 97超碰人人澡人人 | 亚洲第一久久久 | 久久公开视频 | 区一区二区三在线观看 | 在线观看日本高清mv视频 | 欧美视频在线观看免费网址 | 色永久免费视频 | 欧美综合在线视频 | 欧美少妇xx| 国产91精品看黄网站在线观看动漫 | 久久综合九色综合欧美狠狠 | 久久伊人八月婷婷综合激情 | 五月天激情电影 | 久久成年人视频 | 久久99热精品这里久久精品 | 九九视频免费在线观看 | 欧美日韩在线观看一区二区三区 | 日本久久精 | a√资源在线 | 中文资源在线播放 | 久久综合色婷婷 | 欧美精品免费视频 | 四虎免费在线观看 | 国产视频在线观看免费 | 2023亚洲精品国偷拍自产在线 | 国产亚洲成人精品 | 99精品免费久久久久久久久 | 国产高清综合 | 最近在线中文字幕 | 中文字幕在线观看91 | 韩日在线一区 | 亚洲精品影视在线观看 | 国产黄在线观看 | 97超视频在线观看 | 精品久久电影 | 亚洲专区一二三 | 97视频人人 | 一区二精品 | 欧美成人xxx | 国产成人精品日本亚洲999 | 中文字幕电影在线 | 亚洲美女精品 | 毛片网在线观看 | 亚洲精品视频播放 | 久久五月激情 | 99久久精品国产免费看不卡 | av黄网站 | 日韩在线播放视频 | 嫩草av影院 | 麻豆激情电影 | 午夜狠狠干 | 国产精品久久久久久久免费 | 亚洲特级毛片 | 在线观看视频一区二区三区 | 久久精品一区二区三 | 韩国av一区二区三区在线观看 | 国产成人福利在线观看 | 国产精品久久99精品毛片三a | 精品人妖videos欧美人妖 | 中文字幕日本在线观看 | www日韩在线观看 | 狠狠干综合网 | 午夜少妇| 欧美在线视频精品 | 久久久久免费精品 | 欧美精品久久久久久 | 欧美天天综合 | 激情网站网址 | 国内精品久久久久久久久久久 | 国产黄色免费在线观看 | 日韩免费一二三区 | 国产精品一区在线播放 | 免费黄色在线网站 | 成人app在线免费观看 | 99在线精品观看 | 日韩av成人在线 | 色悠悠久久综合 | 一级a毛片高清视频 | 黄色网中文字幕 | 亚洲韩国一区二区三区 | www.色就是色 | 成人免费视频网站 | www.com久久久 | 91在线视频观看免费 | 久久国产精品免费一区 | 午夜视频在线观看一区二区三区 | 婷婷成人亚洲综合国产xv88 | 在线观看一级视频 | 欧美日韩国产在线 | 国产黑丝一区二区 | 97在线观看免费高清 | av九九| 亚洲h色精品 | 三级黄色在线观看 | 啪啪免费试看 | 国产精品九九九 | 亚洲h色精品 | 视频在线观看日韩 | 五月天婷亚洲天综合网鲁鲁鲁 | 久久婷亚洲五月一区天天躁 | 日韩中文三级 | 免费高清在线一区 | 久草爱 | 国产在线色 | 97超碰色| 激情文学综合丁香 | 五月婷婷中文 | www久 | 美女在线黄| 国产精品va在线播放 | 99热这里只有精品1 av中文字幕日韩 | 天海翼一区二区三区免费 | 亚洲在线看 | 久草在线视频精品 | 97色综合 | 日韩精品第1页 | 最新日韩中文字幕 | 日韩在线免费不卡 | 久久夜色精品国产欧美一区麻豆 | 91夫妻视频| 美女视频黄免费的久久 | 久久综合色影院 | 天天做天天爱天天综合网 | 亚洲国产欧洲综合997久久, | 色噜噜在线观看 | 美女搞黄国产视频网站 | 怡红院av久久久久久久 | 久久99中文字幕 | 久久久精品免费观看 | 久草精品网 | 久久99久国产精品黄毛片入口 | 中国一级片视频 | 国产精品日韩在线播放 | 青青河边草免费观看完整版高清 | 91久久国产露脸精品国产闺蜜 | 欧美日韩一区二区三区免费视频 | 日日摸日日爽 | 国产精品com | 99视频国产精品 | 天天干天天插 | 香蕉免费在线 | 久久久国产99久久国产一 | 99精品视频在线观看免费 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 日韩网站中文字幕 | 国产精品久久久久永久免费观看 | 欧美 日韩 成人 | 丁香久久五月 | 中文字幕一二三区 | 亚洲国产视频网站 | 亚洲精品视频一 | 国产精品人人做人人爽人人添 | 在线 国产 亚洲 欧美 | 日韩电影中文 | 九九视频在线观看视频6 | 国产精品久久久久婷婷 | 国产.精品.日韩.另类.中文.在线.播放 | 中文字幕的| 久久影视一区二区 | 99在线精品视频 | 欧美国产不卡 | 亚洲精品在线观看视频 | 精品国产视频一区 | 国产一区在线视频观看 | 福利网址在线观看 | 国产精品九九视频 | 久久99久久99精品 | 高清免费在线视频 | 国产视频日韩视频欧美视频 | 欧美日韩一区久久 | 日韩在线观看的 | 国产亚洲视频在线观看 | 麻豆成人小视频 | 一本到在线 | 91亚洲精品久久久久图片蜜桃 | 日韩精品久久一区二区 | 久久久黄色免费网站 | 久久电影国产免费久久电影 | 国产在线a免费观看 | 国产日韩精品欧美 | 国产又粗又猛又爽又黄的视频免费 | 日韩视频中文字幕 | 日本黄色大片免费看 | 91成人观看| 国产在线视频一区二区三区 | 色在线最新 | 欧美日韩一区二区在线观看 | 97人人视频 | 777xxx欧美 | 人人澡人人草 | 久草视频在线资源 | 久久久人 | 成人黄在线观看 | 亚洲精品网站 | 国产一级在线免费观看 | 国产日韩欧美在线看 | 玖玖在线精品 | 最近日本字幕mv免费观看在线 | 色偷偷88888欧美精品久久 | 久草亚洲视频 | 在线观看视频99 | 中文在线a∨在线 | 91亚洲国产成人久久精品网站 | 国产精品 国内视频 | 99国产精品久久久久老师 | 亚洲精品久久久久久久不卡四虎 | 免费手机黄色网址 | 成人一区二区三区中文字幕 | 91麻豆精品国产91久久久无限制版 | 免费观看完整版无人区 | 99热在线看 | 中文在线字幕免费观 | 麻豆久久久久久久 | 色全色在线资源网 | 91完整视频 | 在线播放视频一区 | 日韩成人免费在线电影 | 久草电影在线观看 | 日韩伦理片一区二区三区 | 国产精品美女视频网站 | 欧美午夜一区二区福利视频 | 国产成人在线综合 | 天堂在线免费视频 | 国产小视频国产精品 | 91在线影视 | 久久久色| 91探花国产综合在线精品 | 国产成人精品一区二区三区网站观看 | 久草在线免 | 久久久在线观看 | 天天做日日爱夜夜爽 | 午夜精品视频一区二区三区在线看 | 精品免费观看视频 | 久久精品综合视频 | 国产九九热 | 国产精品久久久久久久99 | 黄色大片国产 | 中文字幕在线免费观看 | 91av久久 | 成人a大片 | 在线观看黄污 | 精品天堂av | 久久免费国产视频 | 韩日电影在线观看 | 欧美成人aa | 欧美日韩中文国产一区发布 | 日韩欧美视频一区 | 999成人精品| 黄色视屏免费在线观看 | 久久久国产精华液 | 高清视频一区二区三区 | 婷婷亚洲综合五月天小说 | 日韩中文字幕免费在线观看 | 超碰九九 | 一级免费看 | 日韩精品久久中文字幕 | 国产伦精品一区二区三区四区视频 | 992tv成人免费看片 | 亚洲精品一区二区网址 | 色姑娘综合天天 | 91av精品| 中文字幕人成乱码在线观看 | 国产综合在线视频 | 婷婷色资源 | 激情五月婷婷丁香 | 91亚洲影院 | 成人在线视频免费看 | www.狠狠插.com | 日韩精品久久中文字幕 | 五月天激情在线 | 日韩videos高潮hd | 色黄视频免费观看 | 日韩精品免费在线视频 | 高清不卡毛片 | 国产亚洲一区二区在线观看 | 欧美不卡视频在线 | 欧美日韩啪啪 | av解说在线观看 | 国产无套一区二区三区久久 | 99精品热视频只有精品10 | 精品视频www | 亚洲最大av| 丝袜制服天堂 | 国产在线精品一区 | 亚洲激情影院 | 中文字幕乱码电影 | 91麻豆精品国产91久久久久久久久 | 在线播放视频一区 | 最近中文字幕视频完整版 | 日韩在线电影观看 | 久久国语露脸国产精品电影 | 久久国产精品免费看 | 久久久国产电影 | www.精选视频.com | 青青草国产免费 | 超碰人人乐 | 亚州精品一二三区 | 一级黄视频 | 国产精品wwwwww | 天天综合天天综合 | 一级黄色a视频 | www.99在线观看| 久久久久国产a免费观看rela | 最近中文字幕视频完整版 | 美女国内精品自产拍在线播放 | 国产精品成人国产乱 | 国产一二三在线视频 | 在线视频观看亚洲 | 国产精品毛片久久久久久久 | 成人免费毛片aaaaaa片 | 激情久久综合 | 久久精品亚洲国产 | 亚洲蜜桃在线 | 亚洲成色777777在线观看影院 | 国产精品99久久久精品 | 激情视频在线观看网址 | 在线观看视频亚洲 | 久久6精品 | 天天色欧美 | 国产a免费 | 天天天干| 久久黄色免费视频 | 91激情| 久久超碰97 | 国产视频在线观看一区 | 中文字幕免费一区 | 成人久久精品视频 | 天天躁日日躁狠狠躁av中文 | 亚洲 中文 欧美 日韩vr 在线 | 国产999在线| 综合色中文 | 国产在线中文 | 中文字幕一区二区三区在线视频 | 国产色爽 | 亚州国产视频 | 在线观看成人网 | 成人av在线网 | 免费在线国产精品 | 一区国产精品 | 在线免费高清一区二区三区 | 精品国产乱码久久久久久1区二区 | 免费a v观看| 午夜电影 电影 | 96精品高清视频在线观看软件特色 | 香蕉影视在线观看 | 国产不卡av在线 | www.黄色| 91成人免费看片 | 亚洲精品国产品国语在线 | 美女视频黄是免费的 | 亚洲黄色软件 | 亚洲国产精品电影 | 国产精品久久久久久久久费观看 | 欧美日韩国产区 | 一级a性色生活片久久毛片波多野 | 国产视频1| 国产精品午夜免费福利视频 | 婷婷夜夜| 久久亚洲二区 | 丁香综合五月 | 9在线观看免费高清完整 | 国产精品人成电影在线观看 | 激情小说网站亚洲综合网 | 在线观看成人一级片 | 日本黄色大片儿 | 999久久久免费视频 午夜国产在线观看 | 亚洲一级特黄 | 亚洲精品黄色在线观看 | 久久av影视 | 国产中文字幕视频在线 | 99国产视频在线 | 久久久男人的天堂 | 黄色片视频在线观看 | 国产在线观看高清视频 | 天天操夜夜曰 | 久久久精品成人 | 国精产品999国精产品岳 | 在线观看完整版免费 | 国产一级二级在线播放 | 亚洲国产成人久久综合 | 精品视频久久久 | 欧美成人影音 | av免费在线观看网站 | 欧美日韩大片在线观看 | av免费观看在线 | 激情婷婷亚洲 | 免费黄在线看 | 麻豆视频在线免费观看 | 伊人国产在线播放 | 国产91精品一区二区麻豆网站 | 天天操天天摸天天爽 | 免费涩涩网站 | 欧美精品乱码99久久影院 | 中文字幕在线视频精品 | 亚洲一区视频在线播放 | 精品国产一二三四区 | 国产不卡在线观看视频 | 激情深爱五月 | 精品少妇一区二区三区在线 | 久草久热| 久久久久这里只有精品 | 四虎影视8848aamm | 一区二区视频欧美 | 四虎成人精品在永久免费 | 成人久久久久久久久久 | 91麻豆视频网站 | 国产精品免费av | www免费看片com | 国产一区二区精品 | 九九热1 | 国产一区二区在线影院 | 久在线观看视频 | 欧美91成人网 | 免费观看全黄做爰大片国产 | 日韩视频精品在线 | 国产精品日韩欧美 | 国产精品福利久久久 | 免费看的黄色 | 国产色小视频 | 亚洲乱码精品久久久久 | 91精品在线视频观看 | 亚州精品国产 | 免费亚洲视频在线观看 | 91av在线视频播放 | 一区二区三区在线免费播放 | 四虎在线免费观看视频 | 天天操天天干天天综合网 | 日韩激情一二三区 | 国产专区在线 | 午夜av免费观看 | 亚洲精品视频在线观看视频 | 国产精品久久久久久久久久久久冷 | 午夜黄色影院 | 欧美另类sm图片 | 开心激情婷婷 | 久久激情视频 | 色网站视频 | 美女黄频在线观看 | 亚洲成a人片77777kkkk1在线观看 | 亚洲jizzjizz日本少妇 | 男女啪啪免费网站 | 97国产大学生情侣酒店的特点 | 一区二区三区高清不卡 | 深爱开心激情 | 中文字幕丝袜美腿 | 波多野结衣在线视频一区 | 麻豆久久一区 | 国产精品免费在线视频 | 97在线观看视频国产 | 在线观看欧美成人 | 欧美成a人片在线观看久 | 欧美二区在线播放 | 中日韩欧美精彩视频 | 天天操夜夜摸 | 成人久久久久久久久 | 亚洲精品在线免费 | 视频在线99re | 国产小视频你懂的在线 | 成人在线视频免费观看 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 91亚洲精品国偷拍 | 美女久久99| 中文字幕国产一区 | 91精品国产成人 | 亚洲色图激情文学 | 国产原厂视频在线观看 | 亚洲国产精品免费 | 亚洲精品九九 |