IC秋招RTL代码合集

一 全加器和半加器

全加器

module full_adder1(input    Ai, Bi, Ci,output   So, Co);assign So = Ai ^ Bi ^ Ci ;assign Co = (Ai & Bi) | (Ci & (Ai | Bi));
endmodule
module full_adder1(input    Ai, Bi, Cioutput   So, Co);assign {Co, So} = Ai + Bi + Ci ;
endmodule

半加器

解释

1 全加器:

(1)概念:考虑来自低位的进位

 

(2)信号:

描述信号位宽类型
加数1Ai1bitinput
加数2Bi1bitinput
来自低位的进位Ci1bitinput
相加和So1bitoutput
向高位进位Co1bitoutput

(3)真值表:穷尽所有输入的组合

(4)表达式

2 半加器:

(1)概念:不考虑来自低位的进位

(2)信号:

描述信号位宽类型
加数1Ai1bitinput
加数2Bi1bitinput
求和So1bitoutput
进位Co1bitoutput

(2)真值表和表达式:穷尽所有输入的组合-根据真值表为1的写表达式并化简

二 分频器:奇数、偶数

三 复位:同步复位、异步复位、异步复位同步释放

同步复位

module sync_reset(input       rst_n,  //同步复位信号input       clk,   //时钟input       din,   //输入数据output reg  dout   //输出数据);always @(posedge clk) begin   //复位信号不要加入到敏感列表中if(!rst_n)  dout <= 1'b0 ; //rstn 信号与时钟 clk 同步else       dout <= din ;endendmodule

异步复位

module async_reset(input rst_n,input clk,input din,output reg dout);always@(posedge clk or negedge rst_n)begin  //复位信号要加到敏感列表中if(rst_n)dout <= 1'b0;elsedout <= din;endendmodule 

异步复位同步释放

module asreset_srelease(input rst_n,input clk,input din,output reg dout);reg rst_n1,rst_n2;always@(posedge clk or negedge rst_n)beginif(!rst_n)beginrst_n1 <= 1'b0;    //异步复位rst_n2 <= 1'b0;endelse beginrst_n1 <= 1'b1;    //同步释放rst_n2 <= rst_n1;  //同步打拍,时序差可以多延迟几拍endend//使用 rstn_r2 做同步复位,复位信号可以加到敏感列表中   always@(posedge clk or negedge rst_n2)beginif(!rst_n2)dout <= 1'b1;elsedout <= din;end
endmodule

解释:

是否同步的判断:指的是复位信号是否受时钟信号干扰才能完成复位

同步复位:复位信号在时钟有效边沿到来时有效。如果没有时钟,无论复位信号怎样变化,电路也不执行复位操作。

异步复位:无论时钟到来与否,只要复位信号有效,电路就会执行复位操作。

异步复位同步释放:即复位信号到来时不受时钟信号的同步,复位信号释放时需要进行时钟信号的同步。为消除异步复位的缺陷,复位电路往往会采用"异步复位、同步释放"的设计方法。

信号位宽类型描述
rst_n1bitinput复位
clk1bitinput时钟
din1bitoutput输入数据
dout1bitoutput输出数据

写RTL思路:

1 想电路的基本原理

2 输入、输出信号设计:框图、表格(信号名、位宽、类型(input or output)、功能描述)

3 绘制真值表、理论波形图:根据输入信号组合绘制,全面覆盖所有输入情况

4 代码编写

5 波形分析

常见数字电路:

1 逻辑函数表示方法和相互转换

(1)

逻辑表达式:

真值表:将输入变量所有可能的取值与相应的函数值列成的表

逻辑图:用与、或、非等逻辑符号表示逻辑函数中各变量之间的逻辑关系所得到的图形

波形图:输入和输出关系按时间顺序依次排列得到的图形

卡诺图(表达式的化简):将此函数的最小项表达式中的各项最小项相应地填入一个特定的方格图内,此方格图为卡诺图

(2)表示方法的相互转换

仿真常见问题:

1 在使用vivado进行后方真时会出现所有波形均为高阻态,不定态的现象。

解决:
decoder3_8_tb文件set as top,设置为 顶层文件,在 vivado中需要 手动设置,在Quartusii中仅有一个待测试文件时会自动设置为顶层文件。设置完顶层文件后再进行综合后可以看到行为级仿真下多了两个选项:功能仿真,和时序仿真。现在点击 功能仿真查看波形:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wireshark过滤器,如何使用wireshark捕获指定域名的流量

过滤器比较高级&#xff0c;但是也很重要&#xff0c;我决定通过一个案例来学习过滤器的知识点。 比如&#xff0c;我现在访问 zhangdapeng.com 我希望能够捕获关于这个域名下的流量&#xff0c;该如何实现呢&#xff1f; 我选择了捕获以太网的流量&#xff0c;但是目前捕获到…

python-爬虫实例(4):获取b站的章若楠的视频

目录 前言 道路千万条&#xff0c;安全第一条 爬虫不谨慎&#xff0c;亲人两行泪 获取b站的章若楠的视频 一、话不多说&#xff0c;先上代码 二、爬虫四步走 1.UA伪装 2.获取url 3.发送请求 4.获取响应数据进行解析并保存 总结 前言 道路千万条&#xff0c;安全第一条 爬…

Redis和mysql如何保持数据一致?

1.先更新Mysql&#xff0c;再更新Redis&#xff0c;如果更新Redis失败&#xff0c;可能仍然不一致 2. 先删除Redis缓存数据&#xff0c;再更新Mysql&#xff0c;再次查询的时候在将数据添加到缓存中&#xff0c;这种方案能解决1方案的问题&#xff0c;但是在高并发 下性能较低…

技术速递|C# 13:探索最新的预览功能

作者&#xff1a;Kathleen Dollard 排版&#xff1a;Alan Wang C# 13 已初具雏形&#xff0c;其新特性侧重于灵活性、性能以及使您最喜欢的功能在日常中变得更容易使用。我们以公开的方式构建 C#&#xff0c;在今年的 Microsoft Build 大会上&#xff0c;我们会让您一睹 C# 13 …

基于vite + pnpm monorepo 实现一个UI组件库

基于vite pnpm monorepo的vue组件库 仓库地址 思路 好多文章都是直接咔咔咔的上代码。跟着做也没问题&#xff0c;但总觉得少了些什么。下次做的时候还要找文章参考。。 需求有三个模块&#xff0c;那么就需要三个包。使用monorepo进行分包管理。 a. 组件库 b. 组件库文档…

Linux C语言 54-目录操作

Linux C语言 54-目录操作 本节关键字&#xff1a;Linux、C语言、目录操作、遍历目录 相关C库函数&#xff1a;opendir、readdir、closedir 遍历目录 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <dirent.h> #include <…

如何在Linux上部署Django Web应用

在Linux上部署Django Web应用需要遵循以下步骤&#xff1a; 安装Python和虚拟环境&#xff1a; 首先&#xff0c;确保你的Linux系统已经安装了Python。可以使用以下命令检查Python版本&#xff1a; python --version如果没有安装Python&#xff0c;则可以使用包管理工具安装它&…

Java:114-Spring Boot的底层原理(上篇)

Spring Boot的底层原理 之前学习过了Spring Boot&#xff08;在88章博客&#xff09;&#xff0c;但是并没有很深入的了解&#xff0c;这里致力于在原来的基础上学习更多Spring Boot知识 回顾&#xff08;注意&#xff1a;只是回顾&#xff0c;所以更多细节在88章博客&#x…

MySQL零散拾遗(五)---- 对 GROUP BY 要点进行详细介绍

在GROUP BY的使用过程中&#xff0c;SELECT 中出现的非组函数的字段必须声明在 GROUP BY 中。 还记得 MySQL零散拾遗&#xff08;四&#xff09; 中&#xff0c;提到的 GROUP BY 的使用要点嘛&#xff1f; SELECT 中出现的非组函数的字段必须声明在 GROUP BY 中。反而&#x…

array.some() ==> 查找数组list中,是否有包含与当前currKey的值不一样的misId

需求&#xff1a; const list [ {misId: e, name: 小白}, {misId: e, name: 小白白}, {misId: r, name: 小王}, {misId: r, name: 小小王} ] let currKey r 查找数组list中&#xff0c;是否有包含与当前currKey的值不一样的misId 解决&#xff1a; 要查找数组lis…

【2】Spring Cloud 工程搭建

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;Spring Cloud实战&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 1.声明项目依赖和项目构建插件 2.完善子项目订单服务 2.1完善启动…

开源发票识别InvoiceNet项目Windows部署踩坑记(1)

今天安装在github上的InvoiceNet开源项目&#xff0c;准备对它进行测试&#xff0c;安装过程出现了一些问题&#xff0c;做个记录&#xff0c;给遇到兄弟爬坑。 第一个问题&#xff0c;conda的问题&#xff0c; 这是另外一个包管理器&#xff0c;不仅仅可以管理python的虚拟…

layui+thymeleaf+jquery实现多图片,多视频的上传、预览、放大、编辑功能

layuithymeleafjquery实现多图片&#xff0c;多视频的上传、预览、放大、编辑功能 html: <!--多图片上传--> <div class"layui-row layui-col-space10"><div class"layui-form-item"><div class"layui-form-item layui-form-te…

mybatis xml 文件中引用Java类的静态方法

MyBatis-Plus 支持在 XML 映射文件中使用 ${} 来直接嵌入字符串&#xff0c;以及使用 #{} 来引用传入参数。但是&#xff0c;$ 的使用需要小心&#xff0c;因为它会直接将参数内容嵌入到 SQL 语句中&#xff0c;这可能会导致 SQL 注入问题。 在 MyBatis-Plus 中&#xff0c;如果…

Android 防止重复点击

1.第一种方式&#xff1a; private static final int MIN_DELAY_TIME 2000; // 两次点击间隔不能少于2000ms private static long lastClickTime System.currentTimeMillis(); public static boolean isFastClick() { boolean flag true; long currentClickTime …

苹果电脑怎么清理缓存和垃圾 mac如何关闭正在运行的程序 苹果电脑怎么清理后台

苹果电脑以其出色的性能和用户友好的界面而广受好评&#xff0c;但在使用过程中&#xff0c;后台程序的堆积可能会影响到系统的运行效率。太多应用和进程在后台默默运行&#xff0c;就像是无形的背包&#xff0c;让你的Mac背负了太多不必要的重量。不过&#xff0c;别担心&…

08、Tomcat 部署及优化

8.1 Tomcat概述 8.1.1 Tomcat介绍 自从 JSP 发布之后,推出了各式各样的 JSP 引擎。Apache Group 在完成 GNUJSP1.0的开发以后&#xff0c;开始考虑在 SUN 的 JSWDK 基础上开发一个可以直接提供 Web 服务的 JSP服务器&#xff0c;当然同时也支持 Servlet, 这样 Tomcat 就诞生…

使用LSTM完成时间序列预测

c 在本教程中&#xff0c;我们将介绍一个简单的示例&#xff0c;旨在帮助初学者入门时间序列预测和 PyTorch 的使用。通过这个示例&#xff0c;你可以学习如何使用 LSTMCell 单元来处理时间序列数据。 我们将使用两个 LSTMCell 单元来学习从不同相位开始的正弦波信号。模型在…

Perl 哈希

Perl 哈希 Perl 哈希是一种强大的数据结构&#xff0c;用于存储键值对集合。它是 Perl 语言的核心特性之一&#xff0c;广泛应用于各种编程任务中。本文将详细介绍 Perl 哈希的概念、用法和最佳实践。 什么是 Perl 哈希&#xff1f; Perl 哈希是一种关联数组&#xff0c;其中…

MYSQL 七、mysql 日志与备份

一、其他数据库日志 千万不要小看日志。很多看似奇怪的问题&#xff0c;答案往往就藏在日志里。很多情况下&#xff0c;只有通过查看日志才 能发现问题的原因&#xff0c;真正解决问题。所以&#xff0c;一定要学会查看日志&#xff0c;养成检查日志的习惯&#xff0c;对提升你…