Verilog实现常见电路(一)

本文介绍了使用Verilog语言实现常见电路,包括边沿检测(上升沿和下降沿)、串并转换(串转并和并转串)以及分频器。对于边沿检测,通过数据两拍比较实现;串并转换通过计数器或移位寄存器完成,而并转串则将8bit数据变为1bit输出。详细代码和仿真波形图提供辅助理解。
摘要由CSDN通过智能技术生成

计划将常见电路的verilog实现进行总结,如有不对的地方,欢迎大家批评指正,先放目录

一、边沿检测

二、串并转换

三、分频器

一、边沿检测

首先对数据打两拍,然后通过两拍数据之间的逻辑关系来判断出是上升沿还是下降沿

module edge_detect(
    input clk,
    input rst_n,
    input data,

    output pos_edge,
    output neg_edge
);

reg data_d0,data_d1;
always@(posedge clk or negedge rst_n)
    if(~rst_n)begin
        data_d0 <= 'h0;
        data_d1 <= 'h0;
    end
    else begin
        data_d0 <= data;
        data_d1 <= data_d0;
    end

assign pos_edge = data_d0 && ~data_d1;
assign neg_edge = ~data_d0 && data_d1;

endmodule

仿真代码

module tb_edge_detect();

parameter PERIOD = 10;

bit clk;
reg rst_n;
reg data;
wire pos_edge;
wire neg_edge;

always #(PERIOD/2) clk = ~clk;

initial begin
    rst_n=1'b1;
    #20;
    rst_n=1'b1;
    @(posedge clk);
    data=1'b1;
    #40;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值