精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vivado使用技巧-HDL編寫

FPGA設(shè)計(jì)論壇 ? 來源:未知 ? 2022-12-28 17:05 ? 次閱讀

Vivado中進(jìn)行HDL代碼設(shè)計(jì),不僅需要描述數(shù)字邏輯電路中的常用功能,還要考慮如何發(fā)揮Xilinx器件的架構(gòu)優(yōu)勢。目前常用的HDL語言有三種。

(1)VHDL語言的優(yōu)勢有:

  • 語法規(guī)則更加嚴(yán)格;

  • 在HDL源代碼中初始化RAM組件更容易;

  • 支持package;

  • 自定義類型;

  • 枚舉類型;

  • 沒有reg和wire之間的混淆。

(2)Verilog語言的優(yōu)勢有:

  • C語言類似的語法;

  • 代碼結(jié)構(gòu)更緊湊;

  • 支持塊注釋(老版VHDL不支持);

  • 沒有像VHDL一樣的重組件實(shí)例化。

(3)SystemVerilog語言的優(yōu)勢有:

  • 與Verilog相比代碼結(jié)構(gòu)更加緊湊;

  • 結(jié)構(gòu)體和枚舉類型有更好的擴(kuò)展性;

  • 更高抽象級別的接口

  • Vivado綜合支持SystemVerilog 2012

以博主接觸的情況看,目前使用最廣泛的應(yīng)該是Verilog語言,替代VHDL成為國內(nèi)大學(xué)教學(xué)的主流。SystemVerilog其實(shí)有更高級別的描述能力,無論是設(shè)計(jì)還是仿真性能也更強(qiáng)大,目前很多國外大學(xué)都使用SystemVerilog作為教學(xué)語言。本文以Verilog語言為基礎(chǔ)講述HDL代碼編寫技巧。

1.觸發(fā)器、寄存器和鎖存器

Vivado綜合可以識別出帶有如下控制信號的觸發(fā)器(Flip-Flop)和寄存器(register):上升沿或下降沿時鐘、異步置位或復(fù)位信號、同步置位或復(fù)位信號、時鐘使能信號。Verilog中對應(yīng)著always塊,其敏感列表中應(yīng)該包含時鐘信號和所有異步控制信號。

使用HDL代碼設(shè)計(jì)觸發(fā)器、寄存器時注意如下基本規(guī)則:

  • 寄存器不要異步置位/復(fù)位,否則在FPGA內(nèi)找不到對應(yīng)的資源來實(shí)現(xiàn)此功能,會被優(yōu)化為其它方式實(shí)現(xiàn)。

  • 觸發(fā)器不要同時置位和復(fù)位。Xilinx的觸發(fā)器原語不會同時帶有置位和復(fù)位信號,這樣做會對面積和性能產(chǎn)生不利影響。

  • 盡量避免使用置位/復(fù)位邏輯。可以采用其它方法以更少的代價達(dá)到同樣 的效果,比如利用電路全局復(fù)位來定義初始化內(nèi)容。

  • 觸發(fā)器控制信號的輸入應(yīng)總是高電平有效。如果設(shè)置為低電平有效,會插入一個反相器,對電路性能會產(chǎn)生不利影響。

Vivado綜合工具根據(jù)HDL代碼會選擇4種寄存器原語:

  • FDCE:帶有時鐘使能和異步清0的D觸發(fā)器;

  • FDPE:帶有時鐘使能和異步預(yù)置(Preset)的D觸發(fā)器;

  • FDSE:帶有時鐘使能和同步置位的D觸發(fā)器;

  • FDRE:帶有時鐘使能和同步復(fù)位的D觸發(fā)器;

寄存器的內(nèi)容會在電路上電時初始化,因此在申明信號時最好設(shè)定一個默認(rèn)值。綜合后,報告中可以看到寄存器的使用情況。下面給出一個寄存器的代碼實(shí)例:

  1. //上升沿時鐘、高電平有效同步清0、高電平有效時鐘使能8Bits寄存器

  2. module registers_1(

  3. input [7:0] d_in,

  4. input ce, clk, clr,

  5. output [7:0] dout

  6. );


  7. reg [7:0] d_reg;

  8. always @ (posedge clk)

  9. if(clr) d_reg <= 8'b0;

  10. else if(ce) d_reg <= d_in;


  11. assign dout = d_reg;

  12. endmodule

Vivado綜合還會報告檢測出的鎖存器(Latches),通常這些鎖存器是由HDL代碼設(shè)計(jì)錯誤引起的,比如if或case狀態(tài)不完整。綜合會為檢測出的鎖存器報告一個WARNING(Synth 8-327)。下面給出一個鎖存器的代碼示例:

  1. //帶有Postive Gate和異步復(fù)位的鎖存器

  2. module latches (

  3. input G,

  4. input D,

  5. input CLR,

  6. output reg Q

  7. );


  8. always @ *

  9. if(CLR) Q = 0;

  10. else if(G) Q = D;


  11. endmodule

2.三態(tài)緩沖器

三態(tài)緩沖器(Three-state buffer),又稱為三態(tài)門、三態(tài)驅(qū)動器,其三態(tài)輸出受到使能輸出端的控制,當(dāng)使能輸出有效時,器件實(shí)現(xiàn)正常邏輯狀態(tài)輸出(邏輯0、邏輯1),當(dāng)使能輸出無效時,輸出處于高阻狀態(tài),即等效于與所連的電路斷開。

三態(tài)緩沖器(Tristate buffer)通常由一個信號或一個if-else結(jié)構(gòu)來建模,緩沖器可以用來驅(qū)動內(nèi)部總線,也可以驅(qū)動外部板子上的總線。如果使用if-else結(jié)構(gòu),其中一個分支需要給信號賦值為高阻狀態(tài)

當(dāng)三態(tài)緩沖器通過管腳驅(qū)動外部總線時,使用OBUFT原語實(shí)現(xiàn);當(dāng)驅(qū)動內(nèi)部總線時,使用BUFT原語,綜合工具會將其轉(zhuǎn)換為用LUT實(shí)現(xiàn)的邏輯電路。下面給出處理三態(tài)緩沖器的代碼示例:

  1. //使用always塊描述三態(tài)

  2. module tristates_1 (

  3. input T, I,

  4. output reg O

  5. );


  6. always @(T or I)

  7. if (~T) O = I;

  8. else O = 1'bZ;


  9. endmodule


  10. //使用并行賦值描述三態(tài)

  11. module tristates_2 (

  12. input T, I,

  13. output O);


  14. assign O = (~T) ? I: 1'bZ;


  15. endmodule

3.移位寄存器

一個移位寄存器(Shift Register)就是一個觸發(fā)器鏈,允許數(shù)據(jù)在一個固定的延遲段之間傳遞,也叫靜態(tài)移位寄存器。其通常包括:時鐘信號、可選的時鐘使能信號、串行數(shù)據(jù)輸入和輸出。

Vivado綜合可以用SRL類型的資源實(shí)現(xiàn)移位寄存器,如SRL16ESRLC32E。根據(jù)移位寄存器的長度,綜合時會選擇采用一個SRL類型原語實(shí)現(xiàn),或采用級聯(lián) 的SRLC類型原語實(shí)現(xiàn)。下面給出移位寄存器的代碼示例:

  1. // 32Bits移位寄存器,上升沿時鐘,高電平有效時鐘使能信號

  2. // 使用連接運(yùn)算符{}實(shí)現(xiàn)

  3. module shift_registers_0 (

  4. input clk, clken, SI,

  5. output SO

  6. );


  7. parameter WIDTH = 32;

  8. reg [WIDTH-1:0] shreg;


  9. always @(posedge clk)

  10. if (clken) shreg = {shreg[WIDTH-2:0], SI};


  11. assign SO = shreg[WIDTH-1];


  12. endmodule


  13. // 使用for循環(huán)實(shí)現(xiàn)

  14. module shift_registers_0 (

  15. input clk, clken, SI,

  16. output SO

  17. );


  18. parameter WIDTH = 32;

  19. reg [WIDTH-1:0] shreg;


  20. integer i;

  21. always @(posedge clk)

  22. if (clken) begin

  23. for (i = 0; i < WIDTH-1; i = i+1)

  24. shreg[i+1] <= shreg[i];

  25. shreg[0] <= SI;

  26. end


  27. assign SO = shreg[WIDTH-1];


  28. endmodule

4.動態(tài)移位寄存器

動態(tài)移位寄存器(Dynamic Shift register)是指電路操作期間移位寄存器的長度可以改變。可以采用如下兩種結(jié)構(gòu)實(shí)現(xiàn):

  • 一組觸發(fā)器鏈,最大長度可以改變;

  • 一個多路選擇器,在給定時鐘周期選擇從傳遞鏈中提取數(shù)據(jù)的某一段。結(jié)構(gòu)框圖如下圖所示:

Verilog示例代碼如下所示:

  1. // 32-bit 動態(tài)移位寄存器

  2. module dynamic_shift_register_1 (CLK, CE, SEL, SI, DO);


  3. parameter SELWIDTH = 5;

  4. input CLK, CE, SI;

  5. input [SELWIDTH-1:0] SEL;

  6. output DO;


  7. localparam DATAWIDTH = 2**SELWIDTH;

  8. reg [DATAWIDTH-1:0] data;


  9. always @(posedge CLK)

  10. if (CE == 1'b1) data <= {data[DATAWIDTH-2:0], SI};


  11. assign DO = data[SEL];


  12. endmodule

5.乘法器

綜合工具從源代碼中的乘法運(yùn)算符來推測是否使用乘法器。乘法運(yùn)算結(jié)果的位寬為兩個操作數(shù)位寬之和。比如16Bits的信號乘以8Bits的信號,結(jié)果為24Bits。乘法器可以用Slice單元或DSP塊實(shí)現(xiàn),選擇依據(jù)有兩點(diǎn):(1).操作數(shù)的大小;(2).是否需要最佳性能。通過第25篇介紹過的USE_DSP屬性可以強(qiáng)制設(shè)定乘法器的實(shí)現(xiàn)方式,設(shè)置為no用slice實(shí)現(xiàn);設(shè)置為yes用DSP塊實(shí)現(xiàn)。

當(dāng)使用DSP塊實(shí)現(xiàn)乘法器時,Vivado綜合可以發(fā)揮DSP塊流水線能力的最大優(yōu)勢,綜合時會在乘法操作數(shù)和乘法器后插入兩級寄存器。當(dāng)乘法器無法用一個DSP塊實(shí)現(xiàn)時,綜合時會拆分乘法運(yùn)算,采用幾個DSP塊DSP塊加slice的方案實(shí)現(xiàn)。下面給出代碼示例:

  1. // 16*24-bit乘法器,操作數(shù)一級延遲,輸出三級延遲

  2. module mult_unsigned (

  3. input clk,

  4. input [15:0]A,

  5. input [23:0]B,

  6. output [39:0]RES

  7. );


  8. reg [15:0] rA;

  9. reg [23:0] rB;

  10. reg [39:0] M [3:0];


  11. integer i;

  12. always @(posedge clk)

  13. begin

  14. rA <= A;

  15. rB <= B;

  16. M[0] <= rA * rB;

  17. for (i = 0; i < 3; i = i+1)

  18. M[i+1] <= M[i];

  19. end


  20. assign RES = M[3];


  21. endmodule

除了乘法器,綜合工具還可以通過乘法器、加法器/減法器、寄存器的使用,推斷出乘加結(jié)構(gòu)(Multiply-Add)、乘減結(jié)構(gòu)(Multiply-Sub)、乘加減結(jié)構(gòu)(Multiply-Add/Sub)和乘累加結(jié)構(gòu)(Multiply-Accumulate)。

5.復(fù)數(shù)乘法器

下面給出一個復(fù)數(shù)乘法器的代碼示例,該設(shè)計(jì)會使用三個DSP48單元:

  1. // 復(fù)數(shù)乘法器(pr+i.pi) = (ar+i.ai)*(br+i.bi)

  2. module cmult # (parameter AWIDTH = 16, BWIDTH = 18)

  3. (

  4. input clk,

  5. input signed [AWIDTH-1:0] ar, ai,

  6. input signed [BWIDTH-1:0] br, bi,

  7. output signed [AWIDTH+BWIDTH:0] pr, pi

  8. );


  9. reg signed [AWIDTH-1:0] ai_d, ai_dd, ai_ddd, ai_dddd ;

  10. reg signed [AWIDTH-1:0] ar_d, ar_dd, ar_ddd, ar_dddd ;

  11. reg signed [BWIDTH-1:0] bi_d, bi_dd, bi_ddd, br_d, br_dd, br_ddd ;

  12. reg signed [AWIDTH:0] addcommon ;

  13. reg signed [BWIDTH:0] addr, addi ;

  14. reg signed [AWIDTH+BWIDTH:0] mult0, multr, multi, pr_int, pi_int ;

  15. reg signed [AWIDTH+BWIDTH:0] common, commonr1, commonr2 ;


  16. always @(posedge clk)

  17. begin

  18. ar_d <= ar;

  19. ar_dd <= ar_d;

  20. ai_d <= ai;

  21. ai_dd <= ai_d;

  22. br_d <= br;

  23. br_dd <= br_d;

  24. br_ddd <= br_dd;

  25. bi_d <= bi;

  26. bi_dd <= bi_d;

  27. bi_ddd <= bi_dd;

  28. end


  29. final products

  30. //

  31. always @(posedge clk)

  32. begin

  33. addcommon <= ar_d - ai_d;

  34. mult0 <= addcommon * bi_dd;

  35. common <= mult0;

  36. end

  37. // Real product

  38. //

  39. always @(posedge clk)

  40. begin

  41. ar_ddd <= ar_dd;

  42. ar_dddd <= ar_ddd;

  43. addr <= br_ddd - bi_ddd;

  44. multr <= addr * ar_dddd;

  45. commonr1 <= common;

  46. pr_int <= multr + commonr1;

  47. end

  48. // Imaginary product

  49. //

  50. always @(posedge clk)

  51. begin

  52. ai_ddd <= ai_dd;

  53. ai_dddd <= ai_ddd;

  54. addi <= br_ddd + bi_ddd;

  55. multi <= addi * ai_dddd;

  56. commonr2 <= common;

  57. pi_int <= multi + commonr2;

  58. end


  59. assign pr = pr_int;

  60. assign pi = pi_int;


  61. endmodule

6.DSP塊中的預(yù)加器

當(dāng)使用DSP塊時,設(shè)計(jì)代碼最好使用帶符號數(shù)(signed)運(yùn)算,這樣需要一個額外的bit位寬來存儲預(yù)加器(pre-adder)結(jié)果,這一位也可以封裝在DSP塊中。一個動態(tài)配置預(yù)加器(后面帶一個乘法器和加法器)的Veirlog示例如下:

  1. // 控制信號動態(tài)選擇預(yù)加或預(yù)減

  2. module dynpreaddmultadd # (parameter SIZEIN = 16)

  3. (

  4. input clk, ce, rst, subadd,

  5. input signed [SIZEIN-1:0] a, b, c, d,

  6. output signed [2*SIZEIN:0] dynpreaddmultadd_out

  7. );


  8. reg signed [SIZEIN-1:0] a_reg, b_reg, c_reg;

  9. reg signed [SIZEIN:0] add_reg;

  10. reg signed [2*SIZEIN:0] d_reg, m_reg, p_reg;


  11. always @(posedge clk)

  12. if (rst) begin

  13. a_reg <= 0; b_reg <= 0;

  14. c_reg <= 0; d_reg <= 0;

  15. add_reg <= 0;

  16. m_reg <= 0; p_reg <= 0;

  17. end


  18. else if (ce) begin

  19. a_reg <= a; b_reg <= b;

  20. c_reg <= c; d_reg <= d;

  21. if (subadd)

  22. add_reg <= a - b;

  23. else

  24. add_reg <= a + b;

  25. m_reg <= add_reg * c_reg;

  26. p_reg <= m_reg + d_reg;

  27. end


  28. // 輸出累加結(jié)果

  29. assign dynpreaddmultadd_out = p_reg;


  30. endmodule

7.UltraScale DSP塊中的平方電路

UltraScale DSP塊的原語DSP48E2支持計(jì)算輸入或預(yù)加器輸出的平方。下面的示例代碼計(jì)算了差值的平方根,該設(shè)計(jì)會使用一個DSP塊實(shí)現(xiàn),且有最佳的時序性能:

  1. // DSP48E2支持平方運(yùn)算,預(yù)加器配置為減法器

  2. module squarediffmult # (parameter SIZEIN = 16)

  3. (

  4. input clk, ce, rst,

  5. input signed [SIZEIN-1:0] a, b,

  6. output signed [2*SIZEIN+1:0] square_out

  7. );


  8. reg signed [SIZEIN-1:0] a_reg, b_reg;

  9. reg signed [SIZEIN:0] diff_reg;

  10. reg signed [2*SIZEIN+1:0] m_reg, p_reg;


  11. always @(posedge clk)

  12. if (rst) begin

  13. a_reg <= 0;

  14. b_reg <= 0;

  15. diff_reg <= 0;

  16. m_reg <= 0;

  17. p_reg <= 0;

  18. end

  19. else if (ce) begin

  20. a_reg <= a;

  21. b_reg <= b;

  22. diff_reg <= a_reg - b_reg;

  23. m_reg <= diff_reg * diff_reg;

  24. p_reg <= m_reg;

  25. end


  26. assign square_out = p_reg;


  27. endmodule

8.黑盒子

FPGA設(shè)計(jì)可以包含EDIF網(wǎng)表,這些網(wǎng)表必須通過實(shí)例化與其它設(shè)計(jì)部分連接在一起。在HDL源代碼中使用BLACK_BOX屬性完成實(shí)例化,這部分實(shí)例化還可以使用一些特定的約束。使用BLACK_BOX屬性后,該實(shí)例將被視作黑盒子。下面給出示例代碼:

  1. //模塊定義

  2. (* black_box *) module black_box1

  3. (

  4. input in1, in2,

  5. output dout

  6. );


  7. endmodule


  8. //模塊實(shí)例化

  9. module black_box_1

  10. (

  11. input DI_1, DI_2,

  12. output DOUT

  13. );


  14. black_box1 U1 (

  15. .in1(DI_1),

  16. .in2(DI_2),

  17. .dout(DOUT)

  18. );


  19. endmodule

9.FSM狀態(tài)機(jī)

默認(rèn)情況下,Vivado綜合可以從RTL設(shè)計(jì)中提取出有限狀態(tài)機(jī)(FSM),使用-fsm_extraction off可以關(guān)閉該功能。通常需要設(shè)計(jì)者設(shè)置FSM的編碼方式,便于綜合時根據(jù)設(shè)置調(diào)整優(yōu)化目標(biāo)。

Vivado綜合支持Moore和Mealy型狀態(tài)機(jī)。一個狀態(tài)機(jī)由狀態(tài)寄存器、下一個狀態(tài)功能、輸出功能三部分組成,可用如下框圖表示:

Mealy狀態(tài)機(jī)需要從輸出到輸入的反饋路徑。盡管狀態(tài)寄存器也支持異步復(fù)位,但最好還是使用同步復(fù)位方式。設(shè)置一個復(fù)位或上電狀態(tài),綜合工具即可識別出FSM。默認(rèn)狀態(tài)編碼為auto,綜合時會選擇最佳的編碼方式:

  • 獨(dú)熱碼(One-Hot):最多支持32個狀態(tài),有最快的速度和較低的功耗,每個狀態(tài)由一個獨(dú)立的bit(對應(yīng)一個觸發(fā)器)表示,狀態(tài)間轉(zhuǎn)換時只需要改變兩個bit的狀態(tài)。

  • 格雷碼(Gray):兩個連續(xù)狀態(tài)之間轉(zhuǎn)換時只需要改變一個Bit的狀態(tài),可以最小化冒險和毛刺現(xiàn)象,有最低的功耗表現(xiàn)。

  • Johnson編碼:適用于包含沒有分支的長路徑的狀態(tài)機(jī);

  • 順序編碼:使用連續(xù)的基數(shù)值表示狀態(tài),跳轉(zhuǎn)到下一個狀態(tài)的狀態(tài)方程最簡單。

下面給出一個FSM的Verilog示例:

  1. // 順序編碼的FSM

  2. module fsm_1(

  3. input clk, reset, flag,

  4. output reg sm_out

  5. );


  6. parameter s1 = 3'b000;

  7. parameter s2 = 3'b001;

  8. parameter s3 = 3'b010;

  9. parameter s4 = 3'b011;

  10. parameter s5 = 3'b111;


  11. reg [2:0] state; //狀態(tài)寄存器


  12. always@(posedge clk)

  13. if(reset) begin

  14. state <= s1;

  15. sm_out <= 1'b1;

  16. end

  17. else begin

  18. case(state)

  19. s1: if(flag) begin

  20. state <= s2;

  21. sm_out <= 1'b1;

  22. end

  23. else begin

  24. state <= s3;

  25. sm_out <= 1'b0;

  26. end

  27. s2: begin state <= s4; sm_out <= 1'b0; end

  28. s3: begin state <= s4; sm_out <= 1'b0; end

  29. s4: begin state <= s5; sm_out <= 1'b1; end

  30. s5: begin state <= s1; sm_out <= 1'b1; end

  31. endcase

  32. end


  33. endmodule

10.ROM設(shè)計(jì)方法

Read-only memory(ROM)使用HDL模型實(shí)現(xiàn)與RAM非常相似。使用ROM_STYLE屬性選擇使用寄存器或塊RAM資源來實(shí)現(xiàn)ROM。使用塊RAM資源實(shí)現(xiàn)ROM的示例代碼如下:

  1. //使用塊RAM資源實(shí)現(xiàn)ROM

  2. module rams_sp_rom_1 (

  3. input clk, en,

  4. input [5:0] addr,

  5. output [19:0] dout

  6. );


  7. (*rom_style = "block" *) reg [19:0] data;


  8. always @(posedge clk)

  9. if (en)

  10. case(addr)

  11. 6'b000000: data <= 20'h0200A; 6'b100000: data <= 20'h02222;

  12. 6'b000001: data <= 20'h00300; 6'b100001: data <= 20'h04001;

  13. 6'b000010: data <= 20'h08101; 6'b100010: data <= 20'h00342;

  14. ......

  15. 6'b011110: data <= 20'h00301; 6'b111110: data <= 20'h08201;

  16. 6'b011111: data <= 20'h00102; 6'b111111: data <= 20'h0400D;

  17. endcase



  18. assign dout = data;


  19. endmodule






精彩推薦



至芯科技12年不忘初心、再度起航12月17日北京中心FPGA工程師就業(yè)班開課、線上線下多維教學(xué)、歡迎咨詢!
EDA技術(shù)演變里看芯片創(chuàng)新之未來
Xilinx SRL16E 使用詳解
掃碼加微信邀請您加入FPGA學(xué)習(xí)交流群




歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!


點(diǎn)個在看你最好看




原文標(biāo)題:Vivado使用技巧-HDL編寫

文章出處:【微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1626

    文章

    21666

    瀏覽量

    601837

原文標(biāo)題:Vivado使用技巧-HDL編寫

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Xilinx_Vivado_SDK的安裝教程

    I Agree,然后點(diǎn)擊 Next: 選擇 Vivado HL System Edition(一般選擇這個設(shè)計(jì)套件比較完整,它比 Vivado HL Design Edition 多了一個 System Generator for DSP with Mat
    的頭像 發(fā)表于 11-16 09:53 ?343次閱讀
    Xilinx_<b class='flag-5'>Vivado</b>_SDK的安裝教程

    每次Vivado編譯的結(jié)果都一樣嗎

    很多FPGA工程師都有這種困惑,Vivado每次編譯的結(jié)果都一樣嗎? 在AMD官網(wǎng)上,有這樣一個帖子: Are Vivado results repeatable for identical
    的頭像 發(fā)表于 11-11 11:23 ?191次閱讀
    每次<b class='flag-5'>Vivado</b>編譯的結(jié)果都一樣嗎

    Vivado使用小技巧

    有時我們對時序約束進(jìn)行了一些調(diào)整,希望能夠快速看到對應(yīng)的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序約束。如果調(diào)整
    的頭像 發(fā)表于 10-24 15:08 ?212次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    Verilog HDL的基礎(chǔ)知識

    本文繼續(xù)介紹Verilog HDL基礎(chǔ)知識,重點(diǎn)介紹賦值語句、阻塞與非阻塞、循環(huán)語句、同步與異步、函數(shù)與任務(wù)語法知識。
    的頭像 發(fā)表于 10-24 15:00 ?182次閱讀
    Verilog <b class='flag-5'>HDL</b>的基礎(chǔ)知識

    Vivado 2024.1版本的新特性(2)

    從綜合角度看,Vivado 2024.1對SystemVerilog和VHDL-2019的一些特性開始支持。先看SystemVerilog。
    的頭像 發(fā)表于 09-18 10:34 ?649次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式發(fā)布,今天我們就來看看新版本帶來了哪些新特性。
    的頭像 發(fā)表于 09-18 10:30 ?962次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)

    FPGA設(shè)計(jì)中 Verilog HDL實(shí)現(xiàn)基本的圖像濾波處理仿真

    今天給大俠帶來FPGA設(shè)計(jì)中用Verilog HDL實(shí)現(xiàn)基本的圖像濾波處理仿真,話不多說,上貨。 1、用matlab代碼,準(zhǔn)備好把圖片轉(zhuǎn)化成Vivado Simulator識別的格式,即每行一
    發(fā)表于 05-20 16:44

    FPGA入門必備:Testbench仿真文件編寫實(shí)例詳解

    編寫HDL代碼后,往往需要通過仿真軟件Modelsim或者Vivadao自帶的仿真功能對HDL代碼功能進(jìn)行驗(yàn)證,此時我們需要編寫Testbench文件對
    發(fā)表于 04-29 10:43 ?1820次閱讀

    有什么好用的verilog HDL編輯工具可用?

    有什么好用的verilog HDL編輯工具可用?最好能集成實(shí)時的verilog HDL語法檢測、自定義模塊識別觸發(fā)等功能,最好能夠免費(fèi);
    發(fā)表于 04-28 11:00

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

    vivado工程 System Generator提供了幾種導(dǎo)入方法: 1、直接生成hdl網(wǎng)表文件。 生成的.v或.vhd文件直接例化dsp的IP核,用戶可直接將代碼文件添加至自己的工程內(nèi)
    發(fā)表于 04-17 17:29

    Vivado編譯常見錯誤與關(guān)鍵警告梳理與解析

    Xilinx Vivado開發(fā)環(huán)境編譯HDL時,對時鐘信號設(shè)置了編譯規(guī)則,如果時鐘由于硬件設(shè)計(jì)原因分配到了普通IO上,而非_SRCC或者_(dá)MRCC專用時鐘管腳上時,編譯器就會提示錯誤。
    的頭像 發(fā)表于 04-15 11:38 ?4776次閱讀

    如何禁止vivado自動生成 bufg

    Vivado中禁止自動生成BUFG(Buffered Clock Gate)可以通過以下步驟實(shí)現(xiàn)。 首先,讓我們簡要了解一下什么是BUFG。BUFG是一個時鐘緩沖器,用于緩沖輸入時鐘信號,使其更穩(wěn)
    的頭像 發(fā)表于 01-05 14:31 ?1972次閱讀

    Vivado時序問題分析

    有些時候在寫完代碼之后呢,Vivado時序報紅,Timing一欄有很多時序問題。
    的頭像 發(fā)表于 01-05 10:18 ?1921次閱讀

    VIVADO安裝問題解決

    vivado出現(xiàn)安裝問題剛開始還以為是安裝路徑包含中文空格了,重裝的注意了一下,發(fā)現(xiàn)還是這個問題。。。。后來又一頓操作猛如虎,終于發(fā)現(xiàn)了問題。出這個問題的原因是vivado壓縮包解壓的路徑包含中文了把解壓文件放到不含中文的地方,再重新安裝,安裝路徑也不能含中文。然后。。。
    發(fā)表于 12-22 10:56 ?0次下載

    VIVADO軟件使用問題總結(jié)

    【關(guān)鍵問題!!!!重要!!!】VIVADO會在MESSAGE窗口出提示很多錯誤和警告信息!
    的頭像 發(fā)表于 12-15 10:11 ?1789次閱讀
    <b class='flag-5'>VIVADO</b>軟件使用問題總結(jié)