常用数字器件的描述-组合逻辑器件

目录

基本逻辑门

编码器

译码器

数据选择器

数值比较器

三态缓冲器

奇偶校验器


   组合逻辑器件有逻辑门、编码器与译码器、数据选择器和数值比较器、加法器、三态器件和奇偶校验器等多种类型。

基本逻辑门

   Verilog HDL中定义了实现七种逻辑关系的基元,例化这些基元就可以描述门电路。同时,Verilog中定义了九类操作符,应用逻辑运算符或者位操作符,也可以很方便地描述门电路。

module Basic_Gates (a,b,Yand,Yor,Ynot,Ynand,Ynor,Yxor,Yxnor);input a,b;output wire Yand,Yor,Ynot,Ynand,Ynor,Yxor,Yxnor;assign Yand  = a & b;assign Yor   = a | b;assign Ynot  = ~a;assign Ynand = ~( a & b);assign Ynor  = ~(a | b);assign Yxor  = a ^ b;assign Yxnor = ~(a ^ b);
endmodule

编码器

   Verilog HDL中定义了实现七种逻辑关系的基元,例化这些基元就可以描述门电路。同时,Verilog中定义了九类操作符,应用逻辑运算符或者位操作符,也可以很方便地描述门电路。

 module HC148a (input s_n,                     // 控制端,低电平有效input [7:0] i_n,         // 高、低电平输入端,低电平有效output reg [2:0] y_n,        // 二进制反码输出端output wire       ys_n,      // 无编码信号指示,低电平有效output wire       yex_n     // 有编码输出指示,低电平有效);// 有无编码标志逻辑assign ys_n  = s_n ? 1'b1 : ( &i_n ? 1'b0 : 1'b1 );assign yex_n = s_n ? 1'b1 : ( &i_n ? 1'b1 : 1'b0 );// 编码逻辑,应用多重条件语句描述always @(s_n,i_n)   // 当控制信号或输入高、低电平发生变化时if  (!s_n) begin  // 当控制信号有效时if (!i_n[7])        y_n = 3'b000;  else if (!i_n[6])  y_n = 3'b001; else if (!i_n[5])  y_n = 3'b010; else if (!i_n[4])  y_n = 3'b011; else if (!i_n[3])  y_n = 3'b100;  else if (!i_n[2])  y_n = 3'b101;              

译码器

  74HC138是3线-8线译码器,能够将3位二进制码翻译成8个高/低电平信号,其逻辑功能如下表所示。

module HC138a(s1,s2_n,s3_n,bin_code,y_n);input s1,s2_n,s3_n;input [2:0] bin_code;output reg [7:0] y_n;wire en;  // 内部线网定义assign en = s1 && (!s2_n) && (!s3_n);always @(en,bin_code)if (en)  case (bin_code)3'b000 : y_n = 8'b11111110;3'b001 : y_n = 8'b11111101;3'b010 : y_n = 8'b11111011;3'b011 : y_n = 8'b11110111;3'b100 : y_n = 8'b11101111;3'b101 : y_n = 8'b11011111;3'b110 : y_n = 8'b10111111;3'b111 : y_n = 8'b01111111;default : y_n = 8'b11111111;endcaseelse   y_n = 8'b11111111;endmodule 

  译码器可以应用行为描述、数据流描述和结构描述三种方式进行描述。

  显示译码器用于将BCD/二进制码翻译成高/低电平信号,以驱动数码管显示数字信息。

  CD4511是常用的BCD显示译码器,输出高电平有效,同时具有灯测试、灭灯和锁存三种附加功能。CD4511的逻辑功能如表所示。

数据选择器

  数据选择器在地址信号的作用下,能够从多路输入数据中选择其中一路输出。      74HC151为8选一数据选择器,具有两个互补的输出端,其逻辑功能如表所示。

  module HC151(s_n,d,addr,y,w_n);input s_n;input [7:0] d;input [2:0] addr;output reg y;output wire w_n;// 逻辑定义assign w_n=~y;// 功能描述always @(s_n,d,addr)if (!s_n)case (addr)3'b000: y = d[0];3'b001: y = d[1];3'b010: y = d[2];3'b011: y = d[3];                 

  应用EDA技术设计数字系统时,不受具体器件的限制,可以根据需要用HDL描述任何功能电路。

数值比较器

   数值比较器用于比较数值的大小。    74HC85是4位数值比较器,用于比较两个4位二进制数的大小。同时,考虑到器件功能扩展的需要,74HC85还附加有三个来自低位比较结果的输入端。

 module HC85(a,b,ia_gt_b,ia_eq_b,ia_lt_b,ya_gt_b,ya_eq_b,ya_lt_b);// gt=greater than, eq=equal,lt=less than. input [3:0] a,b;input ia_gt_b,ia_eq_b,ia_lt_b; output reg ya_gt_b,ya_eq_b,ya_lt_b; // 内部线网定义   wire [2:0] iIN;// 拼接操作assign iIN={ia_gt_b,ia_eq_b,ia_lt_b}; always @(a,b,iIN)  // 组合过程,比较逻辑if (a > b)                   begin ya_gt_b = 1'b1; ya_eq_b = 1'b0; ya_lt_b = 1'b0; endelse if (a < b)            begin ya_gt_b = 1'b0; ya_eq_b = 1'b0; ya_lt_b = 1'b1; endelse if (iIN == 3'b100)  begin ya_gt_b = 1'b1; ya_eq_b = 1'b0; ya_lt_b = 1'b0; end  else if (iIN == 3'b001)  begin ya_gt_b = 1'b0; ya_eq_b = 1'b0; ya_lt_b = 1'b1; endelse                        begin ya_gt_b = 1'b0; ya_eq_b = 1'b1; ya_lt_b = 1'b0; endendmodule

三态缓冲器

  三态缓冲器有低电平、高电平和高阻三种输出状态,用于总线驱动或双向数据接口的构建。

   三态缓冲器有三态反相器和三态驱动器两种类型。当控制端有效时,三态反相器的输出与输入反相,三态驱动器的输出与输入同相。

   74HC240/244是双4位三态缓冲器,其中74HC240为三态反相器,74HC244为三态驱动器。     74HC240/244的逻辑功能如下表所示。

 module HC240(g1_n,a1,y1,g2_n,a2,y2);input g1_n,g2_n;     // 控制端input [3:0] a1,a2;    // 数据输入端 output wire [3:0] y1,y2;// 功能描述,应用条件操作符assign y1 = (!g1_n)? ~a1 : 4'bz;   assign y2 = (!g2_n)? ~a2 : 4'bz;   endmodule

奇偶校验器

奇偶校验是并行通信中最基本的检错方法,分为奇校验和偶校验两种。

reg sum=0; 
always @ (din) begininteger i;for ( i=8; i>=0; i=i-1;)if ( din[i] ) sum=sum+1;case (sum)0:begin ... end1:begin ... end default: begin ... endendcaseend 

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

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

相关文章

在Django中安装、配置、使用CKEditor5,并将CKEditor5录入的文章展现出来,实现一个简单博客网站的功能

在Django中可以使用CKEditor4和CKEditor5两个版本&#xff0c;分别对应软件包django-ckeditor和django-ckeditor-5。原来使用的是CKEditor4&#xff0c;python manager.py makemigrations时总是提示CKEditor4有安全风险&#xff0c;建议升级到CKEditor5。故卸载了CKEditor4&…

高效视觉方案:AR1335与i.MX8MP的完美结合

方案采用NXP i.MX8MP处理器和onsemi AR1335图像传感器&#xff0c;i.MX8MP集成四核Cortex-A53、NPU及双ISP技术。AR1335是一颗分辨率为13M的CMOS传感器。它使用了先进的BSI技术&#xff0c;提供了超高的分辨率和出色的低光性能&#xff0c;非常适合于需要高质量图像的应用。此外…

STM32软件SPI驱动BMP280(OLED显示)

STM32软件SPI驱动BMP280 OLED显示 BMP280简介寄存器简要说明SPI通讯代码逻辑代码展示 现象总结 BMP280简介 数字接口类型&#xff1a;IIC&#xff08;从模式3.4MHz&#xff09;或SPI&#xff08;3线或4线制从模式10MHz&#xff09; 气压测量范围&#xff1a;300&#xff5e;11…

基于Servlet实现MVC

目录 1.MVC相关概念 核心思想&#xff1a; 主要作用&#xff1a; 2.基于Servlet实现MVC 组成部分&#xff1a; 案例 实验步骤&#xff1a; 新建maven项目SpringMvcDemo 删除src目录并添加子模块MvcServlet ​编辑 导入相关依赖&#xff1a; 编写servlet 注册S…

剪辑师必备50多种擦拭转场/光效过渡效果Premiere Pro模板素材

项目特点&#xff1a; Premiere Pro的擦拭转场和光效闪烁过渡效果 Premiere Pro 2023及更高版本 适用于任何FPS和分辨率的照片和视频 易于使用 包含视频教程 无需插件 拖放方法 高品质 提高视频剪辑效率&#xff0c;节省时间&#xff0c;为视频创作添加独特且专业的转场风格。 …

数字化转型的架构蓝图构建指南:从理论到实践的系统实施路径

企业数字化转型的挑战与架构蓝图的重要性 在数字化浪潮的推动下&#xff0c;企业面临着前所未有的转型压力。传统业务模式和运营流程逐渐被更具弹性和敏捷性的数字化模式所取代&#xff0c;而企业架构蓝图作为战略转型的“导航仪”&#xff0c;能够为企业指明方向。企业架构治…

24.11.10

星期一&#xff1a; 补 23ICPC 合肥 G cf传送门 思路&#xff1a;由使第 k个最大这种条件易联想到二分&#xff0c;但是如何check是个问题 check使用dp&#xff0c;先想到个比较朴素的状态设定&#xff0c;dp【i】【j】…

Ubuntu 的 ROS 操作系统turtlebot3环境搭建

引言 本文介绍如何在Ubuntu系统中为TurtleBot3配置ROS环境&#xff0c;包括安装和配置ROS Noetic的步骤&#xff0c;为PC端控制TurtleBot3提供操作指南。 安装和配置的过程分为PC设置、系统安装、依赖安装等部分&#xff0c;并在最后进行网络配置&#xff0c;确保PC端能够顺利…

《深度学习图像分割》第3章:图像分割关键技术组件

《深度学习图像分割》这本书写写停停&#xff0c;历经三年多&#xff0c;目前在二稿修订中。正式出版之前&#xff0c;计划先在GitHub做逐步的内容和代码开源。 以下为本书第3章节选内容&#xff1a; 近年来&#xff0c;基于深度学习的图像分割技术发展迅猛&#xff0c;涌现出大…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-20

文件下载与邀请翻译者 学习英特尔开发手册&#xff0c;最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册&#xff0c;会是一件耗时费力的工作。如果有愿意和我一起来做这件事的&#xff0c;那么&#xff…

【论文复现】ChatGPT多模态命名实体识别

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ChatGPT ChatGPT辅助细化知识增强&#xff01;1. 研究背景2. 模型结构和代码3. 任务流程第一阶段&#xff1a;辅助精炼知识启发式生成第二阶段…

【拉箱子——模拟+DFS】

题目 代码 #include <bits/stdc.h> using namespace std; map<vector<vector<int>>, int> check; vector<vector<int>> mp; int n, m, ans; int dx[] {1, -1, 0, 0}; int dy[] {0, 0, 1, -1}; void dfs(vector<vector<int>>…

2024 年 Postman 进行 Websocket 接口测试的图文教程

Postman 进行 Websocket 接口测试的图文教程

绘制地理空间矢量场

用 Folium 绘制地理空间矢量场 地学和许多应用领域中&#xff0c;数据的视觉化非常重要。尤其是一些表示方向和速度的矢量数据&#xff0c;例如风速、海流、车速等&#xff0c;使用矢量图进行绘制能够更加直观地表达这些数据的特性。 示例数据集选择 为了便于说明矢量场的绘…

深度伪造检测(Deepfake Detection):识别真假影像的关键技术

随着人工智能技术的进步&#xff0c;深度伪造&#xff08;Deepfake&#xff09;技术迅速发展。深度伪造利用深度学习技术生成高仿真的人脸、声音、影像&#xff0c;使得虚假内容可以几乎以假乱真。这一技术最早用于娱乐和广告领域&#xff0c;但逐渐被不良分子用于制造虚假信息…

基于SSD模型的高压输电线障碍物检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示&#xff1a; 基于SSD模型的高压输电线障碍物检测系统&#xff0c;支持图像、视频和摄像实时检测【python源码、pytorch框架】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于SSD模型的高压输电线障碍物…

大数据技术与应用专业教学体系如何无缝对接职业技能需求

针对高职院校大数据技术应用专业人才培养与行业需求对接中存在的岗位适应性不足等问题&#xff0c;结合教育部职业技能等级证书要求&#xff0c;本文深入分析了高职院校人才培养对接职业技能等级证书标准的必要性和可行性&#xff0c;并探索了面向岗位职业技能的专业课程体系重…

OPC学习笔记

一. 解决使用milo读取OPC设备字符串类型时&#xff0c;出现中文和特殊符号乱码的情况 解决前&#xff0c;读取字符串&#xff1a;你好 2. 解决后&#xff0c;读取字符串&#xff1a;你好 3. 解决前&#xff0c;读取字符串&#xff1a;165℃ 解决后&#xff0c;读取字符串&am…

数据结构查找-B-树(C语言代码)

#include<stdio.h> #include<stdlib.h>typedef struct Node {int level;//树的阶数int keyNum;//关键字的数量int childNum;//孩子数量int* keys;//关键字数组struct Node** children;//孩子数组struct Node* parent;//父亲指针 }Node;//初始化 Node* initNode(int…

网页web无插件播放器EasyPlayer.js播放器返回错误 Incorrect response MIME type 的解决方式

在使用EasyPlayer.js播放器进行视频流播放时&#xff0c;尤其是在SpringBoot环境中部署静态资源时&#xff0c;可能会遇到“Incorrect response MIME type”的错误&#xff0c;这通常与WebAssembly&#xff08;WASM&#xff09;文件的MIME类型配置有关。 WASM是一种新的代码格式…