Verilog学习之触发器与modelsim仿真
创始人
2025-05-31 16:32:19

目录

一、前言

二、触发器介绍

三、测试文件代码


一、前言

    ​    ​本文将学习常见类型触发的verilog编写,结合仿真结果来熟悉。

二、触发器介绍

    ​    ​触发器在verilog中的作用主要是具有存储作用,由时钟信号来触发改变存储内容,较常见的触发从同步,异步角度来区分,可分为同步清零,同步置位,异步清零,异步置位。

具体实现与仿真如下

//同步清零

always@(posedge clk ,posedge rst )

begin

if(rst)

out_syn_clear<=1'b0;

else 

if (cls)

out_syn_clear<=1'b0;

else

out_syn_clear<=d;

end

波形如下,只有rst和cls信号都为0时,输出信号为输入信号,其余情况输出为0

同步清零

//同步置位

always@(posedge clk,posedge cls)

if(rst)

out_syn_set<=1'b1;

else if (cls)

out_syn_set<=1'b0;

else

out_syn_set<=d;

波形如下,只有rst和cls信号都为0时,输出信号为输入信号,其余情况输出为0,置位信号rst为1时输出为1。

同步置位

//异步清零

always@(posedge clk or posedge cls)

begin

if(cls)

out_asyn_clear<=1'b0;

else 

out_asyn_clear<=d;

end

波形如下,cls信号为0时,输出信号为输入信号,为1时进行清零操作,输出0。

异步清零

//异步置位

always@(posedge clk or posedge rst)

begin

if(rst)

out_asyn_set<=1'b1;

else 

out_asyn_set<=d;

波形如下,置位rst信号为0时,输出信号为输入信号,为1时进行置位操作,输出1。

异步置位

三、测试文件代码

module FF_SIM();

reg  d;

reg clk,rst,cls;

wire out_asyn_clear,out_asyn_set,out_syn_set,out_syn_clear;

initial

begin

clk=1'b0;

d=1'b0;

rst=1'b0;

cls=1'b0;

#150;

cls=1'b1;

rst=1'b1;

#150;

cls=1'b0;

rst=1'b1;

#150;

cls=1'b1;

rst=1'b0;

#150;

cls=1'b0;

rst=1'b0;

end

always

#2 clk=~clk;

always 

#10 d=~d;

FF FF_sim(.d(d),.clk(clk),.rst(rst),.cls(cls),.out_asyn_clear(out_asyn_clear),.out_asyn_set(out_asyn_set),.out_syn_set(out_syn_set),.out_syn_clear(out_syn_clear));

endmodule

相关内容

热门资讯

2026 CES 霞光社&qu... 合作伙伴 & 招募持续进行中无论您是希望登上Panel畅谈前沿观点的思想者,还是希望成为我们探展镜头...
快手开盘股价直线下跌,黑灰产攻... 12月23日,港股开盘,快手(1024.HK)股价直线下跌。截至发稿,股价62.9港元,跌5.7%。...
你们四川人的嘴太严了 你究竟还藏了多少秘密?听说斯基在乐山,波旁斯基张口就来:乐山美食经济三驾马车:甜皮鸭、跷脚牛肉和钵钵...
海南板块大幅高开 12月23日早盘,海南板块大幅高开,海峡股份、海汽集团、海南发展、海南瑞泽涨停,康芝药业、海南机场、...
化工品轮番涨价 高端产能有序扩... 近期MDI、碳酸锂等化工品轮番涨价,涨价潮驱动化工板块表现活跃。其中,在能源成本、运输成本与环保压力...