首页 > 其他分享 >简单组合逻辑电路

简单组合逻辑电路

时间:2022-11-25 22:04:35浏览次数:33  
标签:LED 组合 比特 seg 逻辑电路 信号 简单 1001 size

verilog中的数字表示

在 Verilog HDL 中一个信号可能有如下四种基本的值:i.0:逻辑 0 或假ii.1:逻辑 1 或真iii.x:未知iv.z:高阻态(三态)在门电路的输入端或是表达式中的 z 值通常会被译为一个 x 值(待确定)。通常情况下, Verilog HDL 是区分大小写的,但是作为值来表示时是不区分大小写的。

在 Verilog HDL 中有三种常量类型:(i)整型,(ii)实型,和(iii)字符串。在整型常量和实型常量中可以使用下划线(_)来增加可读性。但它不能出现在第一个和最后一个字符的位置上。

整数可以写成 (i) 简单的十进制数或者是 (ii) 带进制格式。一个写成简单十进制形式的整数由一个可省略的+或是一个-和一串数字组成。比如,15-32其中 15 可以被写成 5 比特格 式的二进制数 01111,-32 可以写成 6 比特格式的 100000。简单的十进制数在硬件中最终会占用 32 比特。

一个数也可以被表示为进制格式,语法格式如下: [size]’base value其中size 代表数的比特数,base(基)是 o 或者O(代表八进制 octal),b 或者 B(代表二进制 Binary),d 或者 D(代表十进制Decimal),h 或者 H(代表十六进制hexadecimal)中的一个。Value 是一个在该进制下有效的数字的序列。Value 必须是无符号的。比如, wire [4:0] 5’O37 //5 比特八进制表示reg [3:0] 4’B1x_01 //4 比特二进制wire [3:0] 4’d-4 //不合法,value 不能是负数wire [11:0] 7’Hx //7 比特 x 扩展到 xxxxxxx如果 size 设定得比设定的常数的值的大小要大,这个数会被用 0 扩展到左边,除非最左边的比特是x 或 z,此时也会相应地用x 或 z 扩展。如果 size 设定得更小,那左边的多余的位会被忽略。如果size 未设定,那么就会使用 32 比特。

设计一个BCD码到7段数码管的译码器

数码管原理

7段数码管显示器包含7段,编号从a到g,可以用来显示一个字符。根据不同的输入类型,可能需要做类型转换。如果需要显示4bit的BCD码,则需要一个BCD码到7段数码管的译码器。下表展示了你要显示一个数字的bit图样。(需要注意的是,你如果需要点亮某一段,则要输出逻辑0到这一段,并且这个显示器的阳极需要用板上的逻辑0驱动)。

简单组合逻辑电路_数码管

简单组合逻辑电路_八进制_02

Nexys4 DDR开发板包含两个4位7段数码管LED显示器。每个模块中4位的每1位都由7段组成,每一段都嵌入了一颗LED,顺序如下图。每段的LED可以被单独点亮。因而通过点亮特定的段,熄灭其他段,全部128种图样都可以在1位上实现。在这128种图样中,10种数字的图样最有用。

简单组合逻辑电路_八进制_03

简单组合逻辑电路_进制_04

组成每一位的7颗LED的阳极被连接在一起,称为“共阳极”的电路节点,但LED的阴极是独立的。共阳极节点的信号可以被获取作为4位显示器的使能信号。不同位,相同段的阴极信号分别接到7个电路节点,从CA 到CG (比如上图中4位的 “D” 笔画的阴极被连接到一起,连接到 “CD”这个电路节点)。这7个阴极节点信号可以被获取作为4位显示器的输入信号。这种信号连接的方案支持了多路复用的显示,虽然每个笔 画的阴极信号是4位共用的,但它们只能点亮阳极信号生效的位上的笔画。

简单组合逻辑电路_进制_05

扫描显示控制器电路可以用来控制这个显示器显示一个4位数。这个电路根据阴极图样,以高于人眼可分辨地频率,对每一位的阳极信号进行重复地、持续地、接连地驱动。如果它的更新或“刷新”率降到大约45 Hz时,大多数人能看出显示在闪烁。从Lab 8(体系结构向导和知识产权目录)开始你将设计和使用一个扫描电路。

参考代码

module lab2_1(
input [3:0]x,
output reg [7:0]seg,
output [7:0]an
);
assign an=8'b1111_1110;
always@(*)
case(x)
0: seg= 8'b 1100_0000;
1: seg= 8'b 1111_1001;
2:seg= 8'b 1010_0100;
3: seg= 8'b 1011_0000;
4: seg= 8'b 1001_1001;
5: seg= 8'b 1001_0010;
6: seg= 8'b 1000_0010;
7: seg= 8'b 1111_1000;
8: seg= 8'b 1000_0000;
9:seg= 8'b 1001_0000;
default seg=8'bxxxx_xxxx;
endcase
endmodule

标签:LED,组合,比特,seg,逻辑电路,信号,简单,1001,size
From: https://blog.51cto.com/u_15641375/5887821

相关文章

  • 简单正则设置
    1.字符串与正则的配合方法:1.search 字符串搜索返回出现的问题忽略大小写:i----ignore判断浏览器类型2.substring获取子字符串3.charAt获取某个字符4.split分割......
  • Quartz_简单编程式任务调度使用(SimpleTrigger)
    最近在工作中,要做定时任务的更能,最开始的时候,想到的是JavaSE中,自带Timer及TimerTask联合使用,完成定时任务。最后发现,随着业务的复杂,JDK中的Timer和TimerTask......
  • [Object-C语言随笔之四]创建视图并绘制简单图形
    ​​ 李华明Himi ​​​原创,转载务必在明显处注明这段时间N忙,没办法,创业公司,当然抽时间也仍然再自学ios~OK,基础的语言基础,我就不多说了,从今天开始直接写游戏开发部分......
  • 【iOS-Cocos2d游戏开发之二十】精灵的基础知识点总汇(位图操作/贴图更换/重排z轴等)以
    ​​ 李华明Himi ​​​原创,转载务必在明显处注明  最近写了不少Cocos2d的博文了,那么由于Himi介绍的一般都是比较容易出错的问题或者比较受到关注的知识点,所以不少......
  • 【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概
    本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明本章节分享Shell学习篇,那么对于Shell简单介绍下,对于Shell来说,大家可以理解Shell是一个命令解释器,类似于......
  • LeetCode 20.有效的括号(简单)
    题目描述:给定一个只包括​​'('​​​,​​')'​​​,​​'{'​​​,​​'}'​​​,​​'['​​​,​​']'​​​ 的字符串​​s​​,判断字符串是否有效。有效字符串需满足:......
  • LeetCode 155.最小栈(简单)
    题目描述:设计一个支持​​push​​​,​​pop​​​,​​top​​操作,并能在常数时间内检索到最小元素的栈。​​push(x)​​——将元素x推入栈中。​​pop()​​ —......
  • LeetCode 232.用栈实现队列(简单)
    题目描述:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(​​push​​​、​​pop​​​、​​peek​​​、​​empty​​):实现​​MyQueu......
  • LeetCode 448.找到所有数组中消失的数字(简单)
    题目描述:给你一个含​​n​​​个整数的数组​​nums​​​,其中​​nums[i]​​​在区间​​[1,n]​​​内。请你找出所有在​​[1,n]​​​范围内但没有出现......
  • LeetCode 476.数字的补数(简单)
    题目描述:给你一个正整数​​num​​,输出它的补数。补数是对该数的二进制表示取反。示例1:输入:num=5输出:2解释:5的二进制表示为101(没有前导零位),其补数为010。所以......