實驗15:環(huán)形計數器
實驗目的
本文引用地址:http://2s4d.com/article/202310/451365.htm(1)熟悉和掌握FPGA開發(fā)流程和Lattice Diamond軟件使用方法;
(2)通過實驗理解和掌握環(huán)形計數器原理;
(3)學習用Verilog HDL行為級描述時序邏輯電路。
實驗任務
設計一個4位右循環(huán)一個1的環(huán)形計數器。
實驗原理
將移位寄存器的輸出q0連接到觸發(fā)器q3的輸入,并且在這4個觸發(fā)器中只有一個輸出為1,另外3個為0,這樣就構成了一個環(huán)形計數器。初始化復位時,給q0一個置位信號,則唯一的1將在環(huán)形計數器中循環(huán)移位,每4個時鐘同期輸出一個高電平脈沖。
Verilog HDL建模描述
用行為級描述帶有復位的移位寄存器
用于Diamond仿真的程序清單 ring.v
module ring #
(
parameter CNT_SIZE = 8
)
(
input wire clk,rst, //時鐘和復位輸入
output reg [CNT_SIZE-1:0] cnt //計數器輸出);always@(posedge clk)
if(!rst)
cnt <= 8'b0000_0001; //復位初值
else
cnt <= {cnt[0],cnt[CNT_SIZE-1:1]}; //右移循環(huán)計數
endmodule
仿真文件ring_tb.v
`timescale 1ns/100ps //仿真時間單位/時間精度
module ring_tb;
reg clk,rst;
wire [7:0] q;
initial
begin
clk =0;
rst =0;
#20
rst =1;
end
always#10 clk =~clk;
ring u1 (
.clk (clk),
.rst (rst),
.cnt (q)
);
endmodule
實驗步驟
打開Lattice Diamond,建立工程。
新建Verilog HDL設計文件,并鍵入設計代碼。
根據仿真教程,實現對本工程的仿真,驗證仿真結果是否與預期相符。
仿真結果和實驗現象
評論