一、時序設(shè)計
方法1.通過狀態(tài)機來實現(xiàn),通過verilog控制FPGA,讓它該快的時候快,該慢的時候慢。
方法2.FPGA中運行CPU
把邏輯控制順序復(fù)雜的事情用C代碼來實現(xiàn),而實時處理部分用verilog實現(xiàn),并且verilog這部分可以被C代碼控制。Xilinx的FPGA目前支持的CPU有Microblaze,ARM9,POWERPC,其中Microblaze是軟核,其余的兩款是硬核。
(1)軟核就是用代碼實現(xiàn)的CPU核,配置靈活;
(2)硬核就是一塊電路,已經(jīng)做好了,不能再發(fā)生變化;
軟核靈活性好,但是要占用FPGA的資源。硬核不占用FPGA的資源,速度和性能更好。比如Xilinx的DDR內(nèi)存控制器,就是一種硬核,其運行速度很高。
二、基礎(chǔ)語法
1. always @(),括號里是*,表明是一直敏感的;
2. (1) <= ?非阻塞賦值,在一個always模塊中,所有語句一起更新
(2) = 阻塞賦值,或者給信號賦值,如果在always模塊中,這條語句被立刻執(zhí)行。
非阻塞賦值
always @(posedge clk)begin a <= b; ? ? ? ?c <= a; ? ? end
執(zhí)行結(jié)果是a的值是b,c的結(jié)果依舊是a
阻塞賦值
always @(posedge clk)begin
a = b;
c = a;
end
執(zhí)行結(jié)果a的值是b,c的結(jié)果也是b。
一般我們使用的都是非阻塞的賦值語句,這樣可以很好地控制同步性。
3、預(yù)處理命令
`include file1.v
`define X=1;
`define Y;
`ifdef Y
Z = 1;
`else
Z = 0;
`endid
有時候需要一些公共的宏參數(shù),我們可以放在一個文件中,比如文件名XXX.v,。那么我們就可以 `include XXX.v ,就可以包含文件中定義的宏參數(shù)
三、小練習(xí)
1.加法器的設(shè)計
module adder( input [3:0] a, input [3:0] b, input cin, output [3:0] sum, output cout ); assign {cout,sum} = a + b + cin; endmodule
RTL視圖

RTL 技術(shù)原理圖

仿真代碼
`timescale 1ns / 1ps //1ns的仿真刻度,1ps的仿真精度 ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2017/10/22 1058 // Design Name: // Module Name: simu // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module simu( ); reg [3:0] a; reg [3:0] b; reg cin; wire cout; wire [3:0] sum; reg [4:0] i,j; //中間變量 adder inst( .a(a), .b(b), .cin(cin), .cout(cout), .sum(sum) ); initial begin a =0; b=0; cin=0; for(i=1;i<16;i=i+1) #10 a = i; end initial begin for(j=1;j<16;j=j+1) #10 b = j; end initial begin $monitor($time,,,"%d + %d + %b = {%b,%d}",a,b,cin,cout,sum); #160 $finish; //160ns 后仿真結(jié)束 end endmodule
仿真波形

打印輸出結(jié)果

-
FPGA
+關(guān)注
關(guān)注
1655文章
22277瀏覽量
629948 -
Xilinx
+關(guān)注
關(guān)注
73文章
2192瀏覽量
129851 -
內(nèi)存
+關(guān)注
關(guān)注
9文章
3170瀏覽量
76094 -
Verilog
+關(guān)注
關(guān)注
30文章
1370瀏覽量
114089 -
狀態(tài)機
+關(guān)注
關(guān)注
2文章
497瀏覽量
28829
原文標(biāo)題:Xilinx FPGA 學(xué)習(xí)筆記
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
PLD每周焦點聚焦(11.19-11.25)
Xilinx學(xué)習(xí)資料
FPGA學(xué)習(xí)筆記匯總(7.13更新)
入門 Z-turn Board 學(xué)習(xí)筆記(匯總ing)
【Artix-7 50T FPGA申請】FPGA由Altera轉(zhuǎn)Xilinx系列筆記
Xilinx FPGA學(xué)習(xí)筆記(1):1602液晶IP核設(shè)計與實現(xiàn)
Xilinx_FPGA系列入門教程(一)—如何搭建Xilinx
Xilinx FPGA如何通過深度學(xué)習(xí)圖像分類加速機器學(xué)習(xí)
如何借助Xilinx FPGA和MATLAB技術(shù)加速機器學(xué)習(xí)應(yīng)用
FPGA學(xué)習(xí)教程之硬件設(shè)計基本概念
Altera FPGA CPLD學(xué)習(xí)筆記

Xilinx FPGA學(xué)習(xí)筆記
評論