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://xiahunao.cn/news/3266859.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

常见CSS属性(二)——浮动

一、浮动简述 浏览器在解析html文档时&#xff0c;正常的顺序是从上往下、从左往右解析。这个正常的解析过程&#xff0c;叫做正常文档流(标准文档流)&#xff0c;而浮动就是使得元素脱离文档流&#xff0c;“浮”在浏览器上。 浮动会使元素脱离文档流&#xff0c;不占位置&…

切换数据失败0x1671分析

1、问题背景 切换双卡数据开关&#xff0c;无法切换成功&#xff0c;且单机必现该问题 2、问题分析 搜索Log发现相关拨号无法建立成功&#xff0c;返回0x1671&#xff0c;无法建立PDN连接。 相关拨号上层未下发相关AT命令&#xff0c;属于上层报错&#xff0c;并非网络问题&…

leetcode日记(53)有效数字

一看题目就感觉好复杂&#xff01;试着写了一下&#xff0c;因为题目描述不清晰所以中途按照错误示例反复修改了很多次&#xff1a; class Solution { public:bool isNumber(string s) {if(s.size()0) return 0;if(s[0]||s[0]-){string sss.substr(1);if(s[1]!&&s[1]!…

【微软蓝屏】微软Windows蓝屏问题汇总与应对解决策略

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

全方位数据管理:一站式爬虫服务解决方案

摘要 面对互联网信息爆炸的时代&#xff0c;如何高效地收集、整理并分析海量数据&#xff0c;成为企业与开发者面临的一大挑战。本文将深入探讨一站式爬虫服务解决方案&#xff0c;揭示如何通过全方位数据管理策略&#xff0c;助力企业轻松驾驭大数据海洋&#xff0c;实现数据…

【教程】微信扫描二维码进入小程序指定页面并携带参数

功能描述 打开微信扫一扫&#xff0c;扫描产品上的二维码&#xff0c;弹出小程序&#xff0c;跳到“邀请用户”页面。解析二维码中的参数&#xff0c;自动填充到页面中的“邀请码”输入框。 操作步骤 首先&#xff0c;要到微信公众平台对扫普通链接二维码打开小程序功能进行配…

在WPF中使用WebView2详解

Microsoft Edge WebView2 Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge 作为绘制引擎&#xff0c;以在本机应用中显示 web 内容。 使用 WebView2 可以在本机应用的不同部分嵌入 Web 代码&…

加拿大云手机:进入加拿大市场的最佳工具

随着全球电商和社交媒体的迅猛发展&#xff0c;越来越多的卖家希望进入国际市场&#xff0c;以扩大其业务版图。加拿大作为北美市场的重要一环&#xff0c;具有巨大的商业潜力。然而&#xff0c;对于想要进入加拿大市场的卖家而言&#xff0c;面临的挑战也不少。加拿大云手机作…

数据中台 | 快速了解数据治理的关键要素-元数据

01.什么是元数据&#xff1f; 元数据(Metadata)又称中介数据、中继数据&#xff0c;是描述数据的数据(data about data)&#xff0c;主要是描述数据属性的信息&#xff0c;用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。 概念通常是专业且难懂的&#xff0c;…

神经网络拟合任何函数的数学原理

神经网络拟合任何函数的数学原理 神经网络拟合能力的数学表达 神经网络之所以理论上可以拟合任何函数&#xff0c;其核心在于其多层的结构和非线性的激活函数。通过增加层数和神经元数量&#xff0c;神经网络可以逼近复杂的函数关系。这一过程可以通过万能近似定理&#xff08…

深入分析 Android ContentProvider (四)

文章目录 深入分析 Android ContentProvider (四)ContentProvider 的最佳实践和注意事项1. 最佳实践1.1. 合理选择 ContentProvider 的使用场景1.2. 高效的 URI 匹配示例&#xff1a;使用 UriMatcher 1.3. 合理使用批量操作和事务示例&#xff1a;批量更新数据 1.4. 使用异步查…

Spark实时(五):InputSource数据源案例演示

文章目录 InputSource数据源案例演示 一、​​​​​​​File Source 1、读取text文件 2、读取csv文件 3、读取json文件 二、Socket Source 三、Rate Source InputSource数据源案例演示 在Spark2.0版本之后&#xff0c;DataFrame和Dataset可以表示静态有边界的数据&am…

Pytest-基本使用

概念 pytest 是 python 的一种单元测试框架&#xff0c;同自带的 Unittest 测试框架类似&#xff0c;相比于 Unittest 框架使用起来更简洁&#xff0c; 效率更高。 特点 1. 非常容易上手&#xff0c;入门简单&#xff0c;文档丰富&#xff0c;文档中有很多实例可以参考 2. 支…

算法-----递归~~搜索~~回溯(宏观认识)

目录 1.什么是递归 1.1二叉树的遍历 1.2快速排序 1.3归并排序 2.为什么会用到递归 3.如何理解递归 4.如何写好一个递归 5.什么是搜索 5.1深度&#xff08;dfs&#xff09;优先遍历&优先搜索 5.2宽度&#xff08;bfs&#xff09;优先遍历&优先搜索 6.回溯 1.什…

《Redis设计与实现》读书笔记-数据结构(SDS)

目录 SDS定义 SDS结构 SDS与C字符串结构差异 SDS优点 SDS扩容策略 SDS惰性空间回收 SDS定义 SDS&#xff08;简单动态字符串&#xff09;&#xff0c;用于代替C语言自身的字符串&#xff08;字符容量与字符数组强相关&#xff09;。 SDS结构 sdshdr{int free //sds 中…

一下午连续故障两次,谁把我们接口堵死了?!

唉。。。 大家好&#xff0c;我是程序员鱼皮。又来跟着鱼皮学习线上事故的处理经验了喔&#xff01; 事故现场 周一下午&#xff0c;我们的 编程导航网站 连续出现了两次故障&#xff0c;每次持续半小时左右&#xff0c;现象是用户无法正常加载网站&#xff0c;一直转圈圈。 …

Golang | 腾讯一面

go的调度 Golang的调度器采用M:N调度模型&#xff0c;其中M代表用户级别的线程(也就是goroutine)&#xff0c;而N代表的事内核级别的线程。Go调度器的主要任务就是N个OS线程上调度M个goroutine。这种模型允许在少量的OS线程上运行大量的goroutine。 Go调度器使用了三种队列来…

Lua脚本简单理解

目录 1.安装 2.语法 2.1Lua数据类型 2.2变量 2.3lua循环 2.4流程控制 2.5函数 2.6运算符 2.7关系运算符 3.lua脚本在redis中的使用 3.1lua脚本再redis简单编写 3.2普通锁Lua脚本 3.3可重入锁lua脚本 1.安装 centos安装 安装指令&#xff1a; yum -y update yum i…

mysql面试(六)

前言 本章节详细讲解了一下mysql执行计划相关的属性释义&#xff0c;以及不同sql所出现的不同效果 执行计划 一条查询语句经过mysql查询优化器的各种基于成本和各种规则优化之后&#xff0c;会生成一个所谓的 执行计划&#xff0c;这个执行计划展示了这条查询语句具体查询方…

解决zabbix-server7 中文乱码问题

系统使用centos9 安装中文支持 yum install -y fontconfig langpacks-zh_CN.noarch 检查是否已有中文字体&#xff1a; fc-list :langzh 看到 直接使用GOOGLE的字体 ln -fs /usr/share/fonts/google-noto-cjk/NotoSansCJK-DemiLight.ttc /etc/alternatives/zabbix-web-fo…