硬體描述語言(hdl)編碼技術讓您:
•描述數字邏輯電路中最常見的功能。
•充分利用xilinx®器件的架構特性。
vivado綜合根據hdl**的編寫方式推斷出四種型別的暫存器原語:
•fdce:具有時鐘使能和非同步清除的d觸發器
•fdpe:具有時鐘使能和非同步預設的d觸發器
•fdse:具有時鐘使能和同步設定的d觸發器
•fdre:具有時鐘使能和同步復位的d觸發器
register with rising-edge coding example (verilog)
// 8-bit register with
// rising-edge clock
// active-high synchronous clear
// active-high clock enable
// file: registers_1.v
module registers_1(d_in,ce,clk,clr,dout);
input [7:0] d_in;
input ce;
input clk;
input clr;
output [7:0] dout;
reg [7:0] d_reg;
always @ (posedge clk)
begin
if(clr)
d_reg <= 8'b0;
else if(ce)
d_reg <= d_in;
endassign dout = d_reg;
endmodule
// latch with positive gate and asynchronous reset
// file: latches.v
module latches (
input g, input d, input clr, output reg q );
always @ *
begin
if(clr) q = 0; else if(g) q = d;
endendmodule
移位暫存器是一系列觸發器,允許跨固定(靜態)數量的延遲級傳播資料。 相反,在動態移位暫存器中,傳播鏈的長度在電路操作期間動態變化。
vivado綜合在srl類資源上實現了推斷的移位暫存器,例如:
•srl16e
•srlc32e
8-bit shift register coding example one (verilog)
// 8-bit shift register
// rising edge clock
// active high clock enable
// concatenation-based template
// file: shift_registers_0.v
module shift_registers_0 (clk, clken, si, so);
parameter width = 32;
input clk, clken, si;
output so;
reg [width-1:0] shreg;
always @(posedge clk)
begin if (clken) shreg <= ; end
assign so = shreg[width-1];
endmodule
32-bit shift register coding example two (verilog)
// 32-bit shift register
// rising edge clock
// active high clock enable
// for-loop based template
// file: shift_registers_1.v
module shift_registers_1 (clk, clken, si, so);
parameter width = 32;
input clk, clken, si;
output so;
reg [width-1:0] shreg;
integer i;
always @(posedge clk)
begin
if (clken) begin for (i = 0; i < width-1; i = i+1) shreg[i+1] <= shreg[i]; shreg[0] <= si; end
endassign so = shreg[width-1];
endmodule
dynamic shift registers
動態移位暫存器是移位暫存器,其長度可在電路操作期間動態變化。
動態移位暫存器可以看作:
•一系列觸發器,它們在電路工作期間可以接受的最大長度。
•多路復用器,在給定的時鐘週期內選擇從傳播鏈中提取資料的階段。
32-bit dynamic shift registers coding example (verilog)
// 32-bit dynamic shift register.
// download:
// file: dynamic_shift_registers_1.v
module dynamic_shift_register_1 (clk, ce, sel, si, do);
parameter selwidth = 5;
input clk, ce, si;
input [selwidth-1:0] sel;
output do;
localparam datawidth = 2**selwidth;
reg [datawidth-1:0] data;
assign do = data[sel];
always @(posedge clk)
begin if (ce == 1'b1) data <= ; end
endmodule
verilog常用語法一讓您的fpga設計更輕鬆
verilog常用語法二讓您的fpga設計更輕鬆
verilog常用語法三讓您的fpga設計更輕鬆
祝大家五一勞動節快樂
語法糖(糖衣語法)
今天看資料時,遇到乙個詞 語法糖,不是第一次遇到這個詞,之前覺得很簡單,沒有深究過,今天特意看了看,發現其並且應用廣泛,而且還挺有意思。首先來看百科的解釋 都大同小異,大致如下 語法糖 syntactic sugar 也譯為糖衣語法,指計算機語言中新增的某種語法,這種語法對語言的功能並沒有影響,但是...
語法 C 基本語法
標頭檔案 在程式設計競賽中,我們常見乙個標頭檔案 include 發現它是部分c 中支援的乙個幾乎萬能的標頭檔案,包含所有的可用到的c 庫函式,如 在程式設計競賽中,使用這個標頭檔案是乙個好的想法,特別是當你在選擇標頭檔案時想減少時間,我們更加專注於找到演算法解決問題而不是軟體工程。而從軟體工程的視...
jdbc mysql語法 JDBC SQL語法
結構化查詢語言 sql 是一種標準化語言,允許對資料庫執行操作,例如 建立資料記錄,讀取內容,更新內容和刪除資料記錄等。本教程中將概述sql,這是了解和學習jdbc概念的前提條件。經過本章後,您將能夠在資料庫中建立,建立,讀取,更新和刪除 通常稱為crud操作 資料。有關sql的詳細了解,可以閱讀我...