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;安全第一条 爬…

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

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

【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 单元来学习从不同相位开始的正弦波信号。模型在…

MYSQL 七、mysql 日志与备份

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

重复图片查找:巧用Python和OpenCV进行图像哈希与汉明距离检测以从海量图片中找出重复图片

重复图片查找&#xff1a;巧用Python和OpenCV进行图像哈希与汉明距离检测以从海量图片中找出重复图片 1. 导言2. 环境准备3. 图像哈希&#xff08;pHash&#xff09;原理4. 汉明距离原理5. 代码实现导入必要的库图像哈希计算函数汉明距离计算函数查找重复图片函数示例使用 在处…

乐鑫AWS IoT ExpressLink方案,简化物联网设备连接AWS IoT服务

在现代科技迅速发展的今天&#xff0c;物联网&#xff08;IoT&#xff09;已经成为连接物理世界与数字世界的重要桥梁&#xff0c;越来越多的设备开始接入网络&#xff0c;实现智能化控制。 在这个大背景下&#xff0c;乐鑫携手亚马逊&#xff0c;推出了AWS IoT ExpressLink方…

Linux:Linux发展史

大家好&#xff01;此篇文章并非技术博文&#xff0c;而是简单了解Linux的时代背景和发展史&#xff0c;只有知其所以然才能让我们更好地让走进Liunx的世界&#xff01; 一、计算机的发展历史背景 首先我们要知道&#xff0c;早期大多数科技的进步都是以国家的对抗为历史背景的…

Java语言程序设计基础篇_编程练习题**15.17 (几何问题:寻找边界矩形)

**15.17 (几何问題:寻找边界矩形) 请编写一个程序&#xff0c;让用户可以在一个二维面板上动态地增加和移除点&#xff0c;如图15-29a所示。当点加入和移除的时候&#xff0c;一个最小的边界矩形更新显示。假设每个点的半径是 10 像素 解题思路&#xff1a; 这道题可以从编程…

数学建模(4)——支持向量机算法

一、代码示例 import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from sklearn.metrics import clas…

1-如何挑选Android编译服务器

前几天&#xff0c;我在我的星球发了一条动态&#xff1a;入手洋垃圾、重操老本行。没错&#xff0c;利用业余时间&#xff0c;我又重新捣鼓捣鼓代码了。在接下来一段时间&#xff0c;我会分享我从服务器的搭建到完成Android产品开发的整个过程。这些东西之前都是折腾过的&…

站在资本投资领域如何看待分布式光纤传感行业?

近年来&#xff0c;资本投资领域对于分布式光纤传感行业并不十分敏感。这主要是由于分布式光纤传感技术是一个专业且小众的领域&#xff0c;其生命周期相对较长&#xff0c;缺乏爆发性&#xff0c;与消费品或商业模式创新产业有所不同。此外&#xff0c;国内的投资环境也是影响…

谷粒商城实战笔记-42-前端基础-Vue-生命周期和钩子函数

下面是Vue官网关于生命周期及不同阶段的钩子函数的图示。 Vue 实例生命周期是指从一个组件被创建到最终被销毁的整个过程。 在这一过程中&#xff0c;Vue 提供了一系列的“钩子”函数&#xff0c;在生命周期的不同阶段执行自定义的代码。 以下是 Vue 对象生命周期的主要阶段…