實驗16:扭環形計數器
實驗目的
本文引用地址:http://www.104case.com/article/202310/451437.htm(1)熟悉和掌握FPGA開發流程和Lattice Diamond軟件使用方法;
(2)通過實驗理解和掌握扭環形計數器原理;
(3)學習用Verilog HDL行為級描述時序邏輯電路。
實驗任務
設計一個右移扭環形計數器。
實驗原理
將移位寄存器的輸出非q0連接到觸發器q3的輸入,這樣就構成了一個扭環形計數器。初始化復位時,給q0一個初值0000,則在循環過程中依次為:000010001100111011110111001100010000。
Verilog HDL建模描述
用行為級描述右移扭環形計數器
程序清單twist.v
module twist #
(
parameter CNT_SIZE = 8
)
(input 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]}; //右移循環計數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設計文件,并鍵入設計代碼。
根據仿真教程,實現對本工程的仿真,驗證仿真結果是否與預期相符。
仿真結果和實驗現象
評論