本篇內容:
ip核開發例項
計數器級聯
使用ip核
後面具體的操作就可以跟著教程做了,在此就先不一一枚舉。
**檔案:
counter_tb.v
/*
#是延時
repet 迴圈
注意counter_tb和counter-tb,昨晚我因為這個地方沒有注意,一直報錯# optimization failed # error loading design
*/// 1.定義必須的變數
`timescale 1ns/1ns
`define clock_period 20 // 20ns 50mhz
// 2 新增module
module counter_tb;
// 4. 新增介面
// 激勵訊號
reg cin; // 進製輸入
reg clk; // 計數基準時鐘
// 觀測訊號
wire cout; // 進製輸出 只有當cin為1的時候有效
wire [3:0] q; // 4位的
// 3. 例化
counter counter0( // counter 模組就是ip核的計數器!
.cin(cin),
.clock(clk),
.cout(cout),
.q(q));
// 產生時鐘訊號
initial clk = 1;
always
#(`clock_period/2)
clk = ~clk; // 系統時鐘的一半 進行一次翻轉
// cin訊號的驅動
initial begin
repeat(20)begin // 重複5次 相當於迴圈
cin = 0;
#(`clock_period*5) cin=1;
#(`clock_period) cin=0;
end//
#(`clock_period*20)
$stop;
endendmodule
兩個定時器級聯
counter_top.v
// 用兩個4位的 組成乙個8位的
module counter_top(cin, clk, cout, q);
input cin;
input clk;
output cout;
output [7:0]q;
// 定義一條線,連線cout1和cin2
wire cout1;
counter counter1(
.cin(cin),
.clock(clk),
.cout(cout1),
.q(q[3:0]) // 第四位
); counter counter2(
.cin(cout1),
.clock(clk),
.cout(cout), // 最終的進製輸出
.q(q[7:4]) // 高四位
); endmodule
檢視rtl-viewer,可以看到兩個定時器級聯的效果:低位的進製輸出接到高位的訊號輸入
級聯的*/
// 1.定義必須的變數
`timescale 1ns/1ns
`define clock_period 20 // 20ns 50mhz
// 2 新增module
module counter_top_tb;
// 4. 新增介面
// 激勵訊號
reg cin; // 進製輸入
reg clk; // 計數基準時鐘
// 觀測訊號
wire cout; // 進製輸出 只有當cin為1的時候有效
wire [7:0] q; //
// 3. 例化
counter_top counter0(
.cin(cin),
.clk(clk),
.cout(cout),
.q(q));
// 產生時鐘訊號
initial clk = 1;
always
#(`clock_period/2)
clk = ~clk; // 系統時鐘的一半 進行一次翻轉
// cin訊號的驅動
initial begin
repeat(300)begin // 重複5次 相當於迴圈
cin = 0;
#(`clock_period*5) cin=1;
#(`clock_period) cin=0;
end//
#(`clock_period*20)
$stop;
endendmodule
可以看到級聯的輸出波形
參考小梅哥fpga
鋼琴第四課
因為此前每天都練琴,曲譜也都記住了,所以,週六,臨時被老師喊去時,非常自信。學到了很多知識。1.連貫性方面 連貫性要注意 其實,連貫性在於對曲目的熟練程度,手指的靈活程度,還有不同音之間的連貫跳躍 音要連續 不同音,要連續連線在一起 這個音落下,上個音才起來 2.節奏方面 四分音符要短快,彈到了,立...
學習Makefile第四課 使用變數
使用地方 目標,依賴目標,命令,其他地方 命名規則 字元,數字,下劃線 不應該有 大小寫敏感 推薦大小寫搭配 與自動變數不同 一 變數的基礎 宣告時需要給於初值,使用時需要在變數前加 符合,最好用 或 把變數包括起來,使用 用 例 objects program.o foo.o utils.o pr...
C 學習第四課 串
字串 兩種形式,一種是c模式,一種是c 模式 c模式 char a 6 char a hello 幾種函式 strcpy str1,str2 將str2的內容複製到str1上 strcat str1,str2 將str2連到str1的後面 strlen str1 求取字串str1的長度 strcmp...