当前位置: 首页 > news >正文

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

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

描述

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

电路的接口如下图所示。

输入描述:

      input                A   ,
      input                clk ,
      input                rst_n

输出描述:

      output   wire        Y  

解题思路:

①首先根据题干中的状态转换表,给出次态Q_1^{n+1},Q_0^{n+1}和输出Y的卡诺图,如下所示:

表达式为Q_1^{n+1}=Q_1^{n+1}\oplus Q_0^n \oplus A,Q_0^{n+1}=\overset{-}{Q_0^n},其中:

输出方程Y=Q_0^nQ_1^n

由于题干中所使用的触发器为D触发器,根据D触发器的特征方程Q_1^{n+1} = D_1, Q_0^{n+1} = D_0,得到其状态方程;

因此,激励方程D_1=Q_1^{n+1}\oplus Q_0^n \oplus A,D_0=\overset{-}{Q_0^n};

代码:

下面给出两种代码:

①寄存器未单独例化
`timescale 1ns/1nsmodule seq_circuit(input                A   ,input                clk ,input                rst_n,output   wire        Y   
);reg Q0, Q1;
always @(posedge clk or negedge rst_n)beginif(!rst_n)Q0 <= 1'b0;elseQ0 <= ~Q0 ;
end always @(posedge clk or negedge rst_n)beginif(!rst_n)Q1 <= 1'b0;elseQ1 <= Q1 ^ Q0 ^ A;
endassign Y = Q1 & Q0;endmodule
②将寄存器单独例化
`timescale 1ns/1nsmodule 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) beginif (!rst_n) q<= 1'b0;else q<= d; end
endmodule

http://www.lryc.cn/news/444580.html

相关文章:

  • 【深度】为GPT-5而生的「草莓」模型!从快思考—慢思考到Self-play RL的强化学习框架
  • 【编程底层原理】Java常用读写锁的使用和原理
  • 自恢复保险丝SMD1206B005TF在电路中起什么作用
  • 2024年躺平,花大半年的时间,就弄了这一件事儿:《C++面试真题宝典》
  • PHP基础语法讲解
  • 【论文速看】DL最新进展20240923-长尾综述、人脸防伪、图像分割
  • device靶机详解
  • 十四、SOA(在企业中的应用场景)
  • 单片机与PIC的区别:多方面对比
  • python新手的五个练习题
  • Go语言并发编程之sync包详解
  • 函数题 6-10 阶乘计算升级版【PAT】
  • java项目之基于springboot的医院资源管理系统源码
  • Docker命令全解析:掌握容器化技术的基石
  • 2024.9.19
  • “跨链桥“的危害
  • GO CronGin
  • 手机在网状态查询接口如何用C#进行调用?
  • Java面向对象特性与泛型:深入理解与应用
  • Qwen2.5 本地部署的实战教程
  • Oracle数据库pl/sql显式抛出异常
  • Undet for sketchup 2023.3注册机 支持草图大师sketchup2021-2022-2023
  • Java详细学习路线:从入门到精通的全方位指南
  • Spark 性能优化高频面试题及答案
  • 【洛谷】AT_abc371_e [ABC371E] I Hate Sigma Problems 的题解
  • 【Go】Go 环境下载与安装教程(Windows系统)
  • 毕业设计选题:基于springboot+vue+uniapp的驾校报名小程序
  • 网页通知设计灵感:CSS 和 JS 的 8 大创意实现
  • 计算机毕业设计之:基于微信小程序的中药材科普系统(源码+文档+讲解)
  • C++速通LeetCode中等第6题-找到字符串中所有字母异位词(滑动窗口最详细代码注释)