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

news/2024/9/20 17:59:19 标签: 学习, fpga开发

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

描述

某同步时序电路的状态转换图如下,→上表示“C/Y”,圆圈内现态,→指向次态

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

电路的接口如下图所示,C是单bit数据输入端。 

输入描述:

   input                C   ,
   input                clk ,
   input                rst_n

输出描述:

      output   wire        Y 

解题思路:

根据状态转换图画出功能表,如下所示:

其激励方程、状态方程和输出方程的判定方式与VL21一致;

代码如下:
`timescale 1ns/1ns

module seq_circuit(
   input                C   ,
   input                clk ,
   input                rst_n,
 
   output   wire        Y   
);
wire d0, d1, q0, q1;
//激励方程
assign d0 = q0&~C | ~q1&C;
assign d1 = q0&~C | q1&C;
//状态方程
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 | q1&C;

endmodule

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


http://www.niftyadmin.cn/n/5667450.html

相关文章

neo4j节点关联路径的表示、节点的增删改查

目录 核心概念节点的增删改查&#xff08;1&#xff09;增&#xff08;2&#xff09;查&#xff08;3&#xff09;删&#xff08;4&#xff09;改 neo4j文档&#xff1a;https://neo4j.com/docs/ https://neo4j.com/docs/cypher-manual/current/introduction/ 核心概念 节点 ne…

高等数学 3.5 函数的极值与最大值最小值

文章目录 一、函数的极值及其求法二、最大值最小值问题 一、函数的极值及其求法 定义 设函数 f ( x ) f(x) f(x) 在点 x 0 x_0 x0​ 的某邻域 U ( x 0 ) U(x_0) U(x0​) 内有定义&#xff0c;如果对于去心邻域 U ˚ ( x 0 ) \mathring{U}(x_0) U˚(x0​) 内的任一 x x x &…

初始c++:入门基础(完结)

打字不易&#xff0c;留个赞再走吧~~~ 目录 一函数重载二引用1 引⽤的概念和定义2引⽤的特性3引⽤的使⽤三inline四nullptr 一函数重载 C⽀持在同⼀作⽤域中出现同名函数&#xff0c;但是要求这些同名函数的形参不同&#xff0c;可以是参数个数不同或者 类型不同。这样C函数调⽤…

Prompt最佳实践|指定输出的长度

在OpenAI的官方文档中已经提供了[Prompt Enginerring]的最佳实践&#xff0c;目的就是帮助用户更好的使用ChatGPT 编写优秀的提示词我一共总结了9个分类&#xff0c;本文讲解第6个分类&#xff1a;指定输出长度 提供更多的细节要求模型扮演角色使用分隔符指定任务步骤提供样例…

什么品牌超声波清洗机质量好?四大绝佳超声波清洗机品牌推荐!

在快节奏的现代生活中&#xff0c;个人物品的清洁卫生显得至关重要。眼镜、珠宝饰品、手表乃至日常餐厨用具&#xff0c;这些频繁接触的物品极易累积污渍与细菌。拿眼镜为例&#xff0c;缺乏定期清洁会让油渍与尘埃积累&#xff0c;进而成为细菌的温床&#xff0c;靠近眼睛使用…

Redis实践之缓存:设置缓存过期策略

简介 DistributedCacheEntryOptions 是用于配置缓存项的过期策略和其他选项的类。在使用 IDistributedCache 接口时&#xff0c;可以通过这个类来设置缓存项的过期时间、滑动过期时间等。 以下是 DistributedCacheEntryOptions 类的主要属性及其说明&#xff1a; 属性 Absol…

面向对象程序设计之继承(C++)

1.继承的定义 1.1继承的概念 继承(inheritance)机制是⾯向对象程序设计使代码可以复⽤的最重要的⼿段&#xff0c;它允许我们在保持原有类特性的基础上进⾏扩展&#xff0c;增加⽅法(成员函数)和属性(成员变量)&#xff0c;这样产⽣新的类&#xff0c;称派⽣类。继承 呈现了⾯向…

Linux 中的 Screen 命令详解

目录 前言1. 什么是 Screen 命令2. Screen 命令的主要功能3. Screen 命令的安装4. Screen 的基础使用4.1 启动一个新的 Screen 会话4.2 恢复一个断开的 Screen 会话4.3 退出一个 Screen 会话 5. Screen 命令的常用参数5.1 -S&#xff1a;指定会话名称5.2 -r&#xff1a;恢复会话…