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

相关内容

热门资讯

李嘉诚港口交易再反转,中方要求... 李嘉诚港口交易再反转,中方明确表态,中国企业必须要拿下控股权!否则,贝莱德就别想买下这43个港口了,...
轻松健康港交所挂牌,打造“AI... 12月23日,中国领先的数字健康服务平台——轻松健康集团(股票代码:2661.HK)正式在香港联合交...
“吸金”超百亿、A500ETF... 独立 稀缺 穿透新起点、新挑战作者:闻道编辑:里尔风品:隆多来源:铑财——铑财研究院临近岁末,A50...
宁德时代供应商纳科诺尔签3.0... 新京报贝壳财经讯(记者黄鑫宇)12月22日,北交所上市公司邢台纳科诺尔精轧科技股份有限公司(即纳科诺...
罗永浩频繁威胁公布录音,华与华... 12月22日晚,读客文化发布《关于筹划控制权变更暨停牌的公告》称,公司于12月19日收到控股股东及实...