【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL21

根据状态转移表实现时序电路

描述

某同步时序电路转换表如下,请使用D触发器和必要的逻辑门实现此同步时序电路,用Verilog语言描述。

电路的接口如下图所示。

输入描述:

input A ,

input clk ,

input rst_n

输出描述:

output wire Y

解题思路:

①首先根据题干中的状态转换表,给出次态和输出的卡诺图,如下所示:

表达式为,其中:

输出方程

由于题干中所使用的触发器为D触发器,根据D触发器的特征方程,得到其状态方程;

因此,激励方程;

代码:

下面给出两种代码:

①寄存器未单独例化
cpp 复制代码
`timescale 1ns/1ns

module seq_circuit(
      input                A   ,
      input                clk ,
      input                rst_n,
 
      output   wire        Y   
);

reg Q0, Q1;
always @(posedge clk or negedge rst_n)begin
   if(!rst_n)
      Q0 <= 1'b0;
   else
      Q0 <= ~Q0 ;
end 

always @(posedge clk or negedge rst_n)begin
   if(!rst_n)
      Q1 <= 1'b0;
   else
      Q1 <= Q1 ^ Q0 ^ A;
end

assign Y = Q1 & Q0;

endmodule
②将寄存器单独例化
java 复制代码
`timescale 1ns/1ns

module seq_circuit(
      input                A   ,
      input                clk ,
      input                rst_n,
 
      output   wire        Y   
);

//代码二
wire q0, q1, d0, d1;
//激励方程
assign d0 = ~q0;
assign d1 = A ^ q0 ^ q1;
//状态方程
DFF D0 (.d(d0), .clk(clk), .rst_n(rst_n), .q(q0));
DFF D1 (.d(d1), .clk(clk), .rst_n(rst_n), .q(q1));
//输出方程
assign Y = q0 & q1;

endmodule

//带复位端的D触发器
module DFF(input        d, 
           input        clk, 
           input        rst_n,
           output   reg q);
    always @(posedge clk or negedge rst_n) begin

        if (!rst_n) q<= 1'b0;
        else q<= d; 

    end
endmodule
相关推荐
武哥聊编程1 分钟前
【从0带做】基于Springboot3+Vue3的生态养殖管理系统
java·学习·vue·毕业设计·springboot
●VON7 分钟前
小V健身助手开发手记(一):启动即合规——实现隐私协议弹窗与用户授权状态管理
学习·华为·项目·openharmony·开源鸿蒙
YJlio8 分钟前
Active Directory 工具学习笔记(10.11):AdRestore 实战脚本与命令速查——从事故回滚到合规留痕
java·笔记·学习
whale fall15 分钟前
【雅思】王陆语料库11.3
笔记·学习
郭子涵本人22 分钟前
嘉立创eda学习
学习
d111111111d26 分钟前
什么是野指针,在STM32中如何避免野指针问题
笔记·stm32·单片机·嵌入式硬件·学习
诸葛思颖34 分钟前
Beta 分布学习笔记
笔记·学习·概率论
aprilaaaaa35 分钟前
(HaloOS 基于TC397学习笔记)一、环境搭建到编译demo成功
python·学习·dds·tc397
CodingCos35 分钟前
【PCIe 总线及设备入门学习专栏 9.1 -- PCIe AER 中的 aer_layer 与 aer_agent】
网络·学习
知识分享小能手39 分钟前
CentOS Stream 9入门学习教程,从入门到精通,CentOS Stream 9 使用 LNMP 架构部署网站 —— 语法详解与实战案例(12)
学习·架构·centos