Vivado學習筆記二

2021-10-08 22:05:47 字數 1466 閱讀 1270

編寫testbench的主要目的是為了對使用硬體描述語言(hdl)設計的電路進行**驗證,測試設計電路的功能、部分效能是否與預期的目標相符。

以以下源**為例

module test(

input [1:0]sw,

output [1:0]led

);assign led[1]=sw[1];

assign led[0]=sw[0];

endmodule

testbench測試**編寫步驟如下:

測試**模組命名

module tb_test(

);

定義變數型別

對於 testbench 而言,埠應當和被測試的 module 一一對應。

埠分為 input,output 和 inout 型別產生激勵訊號的時候,

input 對應的埠應當申明為 reg,

output 對應的埠申明為 wire。

reg [1:0]sw;

wire [1:0]led;

例化模組,並將輸入輸出的訊號和 2 中定義的變數進行關聯。

test uut(

.sw(sw),

.led(led));

直接賦值,一般用 initial 塊給訊號賦初值,initial 塊執行一次,always 或者 forever 表示由事件激發反覆執行。

`timescale 1ns / 1ps

module tb_test(

);reg [1:0]sw;

wire [1:0]led;

test uut(

.sw(sw),

.led(led));

initial

sw=0;

always

begin

#50sw=2'b00;

#50;

sw=2'b01;

#50;

sw=2'b10;

#50;

sw=2'b11;

endendmodule

其中#50指延遲相應的時間單位,該時間單位由 timscale 決定。

一般在 testbench 的開頭定義時間單位和**精度

timescale 1ns/1ps
前面乙個是代表時間單位,後面乙個代表**時間精度。

module test_bench()//一般簡單的測試檔案無輸入輸出

訊號或變數宣告定義

邏輯設計中輸入訊號在這裡對應reg型變數

邏輯設計中的輸出訊號在這裡對應wire型

使用initial或always語句塊產生激勵

例化猜測是模組ut

監控和比較輸出響應

endmodule

vivado學習第二 串列埠通訊

奇偶校驗位 奇偶校驗位分為奇數校驗位和偶數校驗位,奇數和偶數的判斷標準是依據傳送一串或者一幀資料中 1 的個數。奇數校驗 傳送的資料位 奇數校驗位中 1 的個數為奇數個,也就是說如果資料位的 1 的個數為奇數個,則奇數校驗位為數字0 如果資料位的 1 的個數為偶數個,則奇數校驗位為數字1。偶數校驗 ...

vivado學習第二 串列埠通訊

奇偶校驗位 奇偶校驗位分為奇數校驗位和偶數校驗位,奇數和偶數的判斷標準是依據傳送一串或者一幀資料中 1 的個數。奇數校驗 傳送的資料位 奇數校驗位中 1 的個數為奇數個,也就是說如果資料位的 1 的個數為奇數個,則奇數校驗位為數字0 如果資料位的 1 的個數為偶數個,則奇數校驗位為數字1。偶數校驗 ...

學習筆記二

1 算符運算子 1 5為1 1 5為 1 即只看被除數的符號。b a 先賦值後運算 a b 先運算後賦值。2 字串資料與任何資料使用 都是相連線,最終都會變成字串,例如 ad 2 結果為 ad2 3 轉義字元 通過 來裝便後面字母或符號的含義 n換行 linux b 退格 r 按下回車鍵,windo...