• 4-16译码器学习记录

模块文件

 1 module decoder_4_16(
2 a,
3 b,
4 c,
5 d,
6 out,
7 );
8 input a;
9 input b;
10 input c;
11 input d;
12 output reg [15:0]out;//同时定义了out的长度,输入输出类型和数据类型,注意【15:0】长度放在名字前面,且从大到小。
13
14 always@(*)begin//等价于always({a,b,c,d}) *号表示所有输入信号,不包括输出信号
15 case({a,b,c,d}) //case和endcase是固定搭配,但有多种情况的时候使用,十分方便
16 4'b0000:out=16'b0000_0000_0000_0001;
17 4'b0001:out=16'b0000_0000_0000_0010; // 位宽度'进制 数值 :赋值语句
18 4'b0010:out=16'b0000_0000_0000_0100; // 注意’是引号,不同了tinmescale。中间是用冒号连接赋值语句
19 4'b0011:out=16'b0000_0000_0000_1000;
20 4'b0100:out=16'b0000_0000_0001_0000;
21 4'b0101:out=16'b0000_0000_0010_0000;
22 4'b0110:out=16'b0000_0000_0100_0000;
23 4'b0111:out=16'b0000_0000_1000_0000;
24 4'b1000:out=16'b0000_0001_0000_0000;
25 4'b1001:out=16'b0000_0010_0000_0000;
26 4'b1010:out=16'b0000_0100_0000_0000;
27 4'b1011:out=16'b0000_1000_0000_0000;
28 4'b1100:out=16'b0001_0000_0000_0000;
29 4'b1101:out=16'b0010_0000_0000_0000;
30 4'b1110:out=16'b0100_0000_0000_0000;
31 4'b1111:out=16'b1000_0000_0000_0000;
32 endcase
33 end
34
35 endmodule

仿真激励代码

`timescale 1ns/1ns

module decoder_4_16_tb();
reg s_a;
reg s_b;
reg s_c;
reg s_d;
wire [15:0]s_out; decoder_4_16 decoder_4_16_simulation(
.a(s_a),
.b(s_b),
.c(s_c),
.d(s_d),
.out(s_out)
); initial begin
s_a=0;s_b=0;s_c=0;s_d=0;
#100;
s_a=0;s_b=0;s_c=0;s_d=1;
#100;
s_a=0;s_b=0;s_c=1;s_d=0;
#100;
s_a=0;s_b=0;s_c=1;s_d=1;
#100;
s_a=0;s_b=1;s_c=0;s_d=0;
#100;
s_a=0;s_b=1;s_c=0;s_d=1;
#100;
s_a=0;s_b=1;s_c=1;s_d=0;
#100;
s_a=0;s_b=1;s_c=1;s_d=1;
#100;
s_a=1;s_b=0;s_c=0;s_d=0;
#100;
s_a=1;s_b=0;s_c=0;s_d=1;
#100;
s_a=1;s_b=0;s_c=1;s_d=0;
#100;
s_a=1;s_b=0;s_c=1;s_d=1;
#100;
s_a=1;s_b=1;s_c=0;s_d=0;
#100;
s_a=1;s_b=1;s_c=0;s_d=1;
#100;
s_a=1;s_b=1;s_c=1;s_d=0;
#100;
s_a=1;s_b=1;s_c=1;s_d=1;
#100;
$stop;
end endmodule
  • 注意

1.always的用法

格式:always @(敏感信号)。可以直接用(*)代表所有输入信号,也可以是某一组特定信号({a,b,c}),也可以是某几个信号(a or b or c)。

always@(*)是所有变量都是敏感列表,*代替了敏感变量。

用处:在时序电路中,always @(posedge Clk)表示上升沿触发,下降沿用negedge。如果需要加异步功能,写成always @(posedge Clk or posedge Reset)。用or连接。如果异步信号高电平有效,则Reset用上升沿posedge修饰,反之。同时把if(Reset==1)改为if(Reset==0),此外,异步判断语句必须在always第一句,首先判断。

注意事项:别在不同always块内为同一变量赋值。?别在同一always同时阻塞非阻塞赋值?描述组合用阻塞(电平敏感),描述时序用非阻塞(边沿敏感)。=或《=左边须为reg型。@()内不能同时含电平和边沿,不同同时含一个信号的上升下降?

2.case的用法

case-endcase 中加入并行判断结构和赋值语句。它的判断条件一般是互斥的,且没有优先级。

casez不考虑高阻态z。casex不考虑高阻态z和不定态x。注意case里面语句的格式和结构,见上面代码。

2022-05-09 16:13:11             

4-16译码器(always,case用法)的更多相关文章

  1. sql case 用法总结

    快下班了,抽点时间总结一下sql 的 case 用法. sql 里的case的作用: 用于计算条件列表的表达式,并返回可能的结果之一.sql 的case 类型于编程语言里的 if-esle if-el ...

  2. SQL进阶随笔--case用法(一)

    SQL进阶一整个是根据我看了pdf版本的整理以及自己的见解整理.后期也方便我自己查看和复习. CASE 表达式 CASE 表达式是从 SQL-92 标准开始被引入的.可能因为它是相对较新的技术,所以尽 ...

  3. shell脚本学习之case用法及实例

    case语句和判断语句[if...elif...else]功能类似;当在逻辑判断比较简单的情况下,比后者的代码量要少许多.case用法,用变量来匹配某值,如果匹配成功则执行它下面的命令,直到 ;;为止 ...

  4. Linux上case用法

    Linux上case用法示例: #!/bin/bash # This is a script for test case ASK_COUNT=$ #从参数获取该变量的值 # if [ -z " ...

  5. shell脚本之case用法

    你会经常发现自己在尝试计算一个变量的值,在一组可能的值中寻找特定值.在这种情形下, 你不得不写出很长的if-then-else语句,就像下面这样. $ cat test25.sh #!/bin/bas ...

  6. SQL进阶随笔--case用法(二)

    ---恢复内容开始--- 用 CHECK 约束定义多个列的条件关系 今天来说下check和case的用法.其实,CASE 表达式和 CHECK 约束是很般配的一对组合.也许有很多数据库工程师不怎么用 ...

  7. shell的case用法

    今天给大家简单介绍一下结构条件语句的用法,实际上就是规范的多分支if语句,如下: case语法: case "字符串变量" in 值1)指令1... ;; 值2)指令2... ;; ...

  8. 9.14.16 Django ORM进阶用法

    2018-9-14 14:26:45 ORM 练习题   : http://www.cnblogs.com/liwenzhou/articles/8337352.html 2018-9-14 21:1 ...

  9. Case用法

    SELECT <myColumnSpec> = CASE WHEN <A> THEN <somethingA> WHEN <B> THEN <so ...

随机推荐

  1. Hadoop(四)C#操作Hbase

    Hbase Hbase是一种NoSql模式的数据库,采用了列式存储.而采用了列存储天然具备以下优势: 可只查涉及的列,且列可作为索引,相对高效 针对某一列的聚合及其方便 同一列的数据类型一致,方便压缩 ...

  2. 干货|给小白的 Nginx 10分钟入门指南

    一个执着于技术的公众号 前言 今天主要对Nginx Web服务软件进行介绍,作为HTTP服务软件的后起之秀,Nginx与它的老大哥Apache相比有很多改进之处,比如,在性能上,Nginx占用的系统资 ...

  3. SpringBoot从0到0.7——序言

    SpringBoot从0到0.7-- 序言 最近做java代码审计发现很多地方看不懂,所以就开始学框架,自己做网站来了解网站的运行原理.函数.接口.参数等等,通过学习SpringBoot框架来从点到面 ...

  4. 组织:IEEE

    电气和电子工程师协会(IEEE,全称是Institute of Electrical and Electronics Engineers)是一个美国的电子技术与信息科学工程师的协会,是世界上最大的非营 ...

  5. 206. Reverse Linked List - LeetCode

    Question 206. Reverse Linked List Solution 题目大意:对一个链表进行反转 思路: Java实现: public ListNode reverseList(Li ...

  6. ASCII&Base64

    ASCII https://zh.wikipedia.org/wiki/ASCII American Standard Code for Information Interchange,美国信息交换标 ...

  7. .net6.0 中一个接口多个实现的服务注册与注入

    1.现有一个数据库操作接口 如下   它有两个数据操作实现 Sqlserver 和MySql的数据库操作实现类 现在我们需要 将这个两个类 注册到MVC中 注意这里注册的服务类型都是 IDataBas ...

  8. C++primer第二章

    第二章 :变量和基本类型 2.1 基本内置类型 C++定义了一套包含算术类型(arithmetic type)和空类型(void)在内的基本数据类型 2.1.1 算术类型 算术类型的分类: 整型(in ...

  9. R数据分析:如何简洁高效地展示统计结果

    之前给大家写过一篇数据清洗的文章,解决的问题是你拿到原始数据后如何快速地对数据进行处理,处理到你基本上可以拿来分析的地步,其中介绍了如何选变量如何筛选个案,变量重新编码,如何去重,如何替换缺失值,如何 ...

  10. 2021.04.24【NOIP提高B组】模拟 总结

    2021.04.24[NOIP提高B组]模拟 总结 T1 题意:有一圈数.两两之间有加法或乘法操作, 问你开始断掉那条边使得剩下的序列经过某种操作后的值最大 看上去是个区间 dp .然后直接断环成列, ...