實驗16:扭環(huán)形計數(shù)器
實驗?zāi)康?/strong>
本文引用地址:http://www.ex-cimer.com/article/202310/451437.htm(1)熟悉和掌握FPGA開發(fā)流程和Lattice Diamond軟件使用方法;
(2)通過實驗理解和掌握扭環(huán)形計數(shù)器原理;
(3)學(xué)習(xí)用Verilog HDL行為級描述時序邏輯電路。
實驗任務(wù)
設(shè)計一個右移扭環(huán)形計數(shù)器。
實驗原理
將移位寄存器的輸出非q0連接到觸發(fā)器q3的輸入,這樣就構(gòu)成了一個扭環(huán)形計數(shù)器。初始化復(fù)位時,給q0一個初值0000,則在循環(huán)過程中依次為:000010001100111011110111001100010000。
Verilog HDL建模描述
用行為級描述右移扭環(huán)形計數(shù)器
程序清單twist.v
module twist #
(
parameter CNT_SIZE = 8
)
(input clk,rst, //時鐘和復(fù)位輸入output reg [CNT_SIZE-1:0] cnt //計數(shù)器輸出);always@(posedge clk)
if(!rst)
cnt <= 8'b0000_0001; //復(fù)位初值
else
cnt <= {~cnt[0],cnt[CNT_SIZE-1:1]}; //右移循環(huán)計數(shù)endmodule
仿真文件twist_tb.v
`timescale 1ns/100ps //仿真時間單位/時間精度module twist_tb;reg clk,rst;wire [7:0]q;initial
begin
clk =0;
rst =0;
#20
rst =1;
endalways#10 clk =~clk;twist u1 (
.clk(clk),
.rst(rst),
.cnt(q)
);endmodule
實驗步驟
打開Lattice Diamond,建立工程。
新建Verilog HDL設(shè)計文件,并鍵入設(shè)計代碼。
根據(jù)仿真教程,實現(xiàn)對本工程的仿真,驗證仿真結(jié)果是否與預(yù)期相符。
仿真結(jié)果和實驗現(xiàn)象
評論