国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【IC設(shè)計】ZC706板卡點燈入門(含Verilog代碼,xdc約束,實驗截圖)

這篇具有很好參考價值的文章主要介紹了【IC設(shè)計】ZC706板卡點燈入門(含Verilog代碼,xdc約束,實驗截圖)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

這篇博客將針對AMD Zynq 7000 SoC ZC706 Evaluation Kit板卡(對應(yīng)Vivado創(chuàng)建工程時FPGA型號:XC7Z045ffg900-2)實現(xiàn)基本的點燈程序。

假定已知的前置知識

本文對以下內(nèi)容不再介紹,

  • 使用Vivado進行綜合、實現(xiàn)、生成比特流并燒錄FPGA
  • FPGA的概念、Verilog的基礎(chǔ)語法

zc706,ic設(shè)計,fpga開發(fā),IC設(shè)計,Zynq,Pynq,zc706,點燈

需求:

板卡時鐘為200MHz,讓板子上的一個LED燈保持0.5秒亮,0.5秒滅。

注意點:

①板卡使用JTAG接口燒錄時,必須將SW4撥為01,如圖所示:
zc706,ic設(shè)計,fpga開發(fā),IC設(shè)計,Zynq,Pynq,zc706,點燈
②ZC706的時鐘都是差分時鐘,必須使用Verilog原語將其轉(zhuǎn)換為單端時鐘才可以直接使用:

IBUFGDS IBUFGDS_inst(
    .O(single_clock),    //Clock buffer Output
    .I(clk_p),  //Diff_p clock buffer input (connect directly to top-level port)
    .IB(clk_n)  //Diff_n clock buffer input(connect directly to top-level port)
);

其中IBUFGDS是Xilinx的原語,不需要引入IP,可以直接使用。

③對于200MHz的時鐘,即每秒運行210^8個周期,想要每0.5s亮,0.5秒滅,就是要求每0.5秒將led取反一次,
那么應(yīng)當(dāng)讓計數(shù)器,計數(shù)到1
10^8個周期時對led取反。文章來源地址http://www.zghlxwxcb.cn/news/detail-830663.html

代碼實現(xiàn):

頂層模塊

`timescale 1ns / 1ps
module top_module(
    input clk_n,
    input clk_p,
    input rst_b,
    output led
);
    wire single_clock;
    IBUFGDS IBUFGDS_inst(
        .O(single_clock),    //Clock buffer Output
        .I(clk_p),           //Diff_p clock buffer input (connect directly to top-level port)
        .IB(clk_n)           //Diff_n clock buffer input(connect directly to top-level port)
    );
    Hello hello_inst(
        .clock(single_clock),
        .reset(rst_b),
        .io_led(led)    
    );
    
endmodule

led閃爍模塊

module Hello(
  input   clock,
  input   reset,
  output  io_led
);
  reg [31:0] cntReg; 
  reg  blkReg; 
  wire [31:0] _cntReg_T_1 = cntReg + 32'h1; 
  assign io_led = blkReg; 
  always @(posedge clock) begin
    if (reset) begin 
      cntReg <= 32'h0; 
    end else if (cntReg == 32'd100_000_000) begin 
      cntReg <= 32'h0; 
    end else begin
      cntReg <= _cntReg_T_1; 
    end
    if (reset) begin 
      blkReg <= 1'h0; 
    end else if (cntReg == 32'd100_000_000) begin 
      blkReg <= ~blkReg;
    end
  end
endmodule

xdc約束

#綁定復(fù)位按鈕
set_property PACKAGE_PIN AK25 [get_ports rst_b]

#設(shè)置復(fù)位按鈕的IO電壓為2.5V
set_property IOSTANDARD LVCMOS25 [get_ports rst_b]

#對Verilog中的led端口和板卡上的Y21燈進行綁定
set_property PACKAGE_PIN Y21 [get_ports led]

#設(shè)置IO電壓為2.5V
set_property IOSTANDARD LVCMOS25 [get_ports led]

#clk_p和clk_n是兩個差分時鐘信號,要通過IBUFGDS原語轉(zhuǎn)化到單端時鐘再使用
set_property PACKAGE_PIN H9 [get_ports clk_p]
set_property PACKAGE_PIN G9 [get_ports clk_n]
set_property IOSTANDARD LVDS [get_ports clk_p]
set_property IOSTANDARD LVDS [get_ports clk_n]

到了這里,關(guān)于【IC設(shè)計】ZC706板卡點燈入門(含Verilog代碼,xdc約束,實驗截圖)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包