译码器设计

  • 任务描述
  • 相关知识
    • 3线-8线译码器的功能
    • always语句
    • 事件时序控制
    • case语句
  • 编程要求
  • 源代码

任务描述

设计一个3线-8线译码器。运用Verilog HDL进行设计,完善译码器的功能描述风格代码,具备组合逻辑电路的设计仿真和测试的能力。

相关知识

  1. 3线-8线译码器的功能;
  2. 如何用always语句、case语句进行逻辑功能的描述。

3线-8线译码器的功能

译码是编码的逆过程,3线-8线译码器可以将n位二进制代码可译成2n种电路状态。译码器框图如下所示。

always语句

通俗的理解,always就是:一直运行。
always过程从关键字always开始,可以连续多次运行,当过程的最后一行代码执行完成后,再次从第一行代码开始执行。
一个模块中可以包含多个过程,各个过程相互之间是并发执行的。不过,过程不能够嵌套使用。如果过程中有多个语句,则需要使用关键字begin、end或fork、join将它们组成一个代码块。这两种关键字组合代表着顺序代码块和并行代码块。

事件时序控制

事件时序控制的意思是,如果指定的事件发生,则代码被触发执行。它的关键字为@,后面可以加变量或者事件名称。例如:

@(a or b) y = ~a; //当a或b其中任意一个变量发生变化时,则将a非赋值给y
@(posedge clk) y = 1; //在变量clk的上升沿,将1赋值给y

case语句

case语句是一个多路条件分支形式,其语法如下:

case(case_expr)
case_item_expr{ ,case_item_expr} : procedural_statement
. . .
. . .
[default: procedural_statement]
endcase

case语句首先对条件表达式case_expr求值,然后依次对各分支项求值并进行比较,第一个与条件表达式值相匹配的分支中的语句被执行。可以在1个分支中定义多个分支项;这些值不需要互斥。缺省分支覆盖所有没有被分支表达式覆盖的其他分支。

编程要求

根据提示,设计具有一位使能端的3线-8线译码器。当使能端为0时,8位输出信号全为0;如果一位使能信号为1,则输出高电平有效的译码信号。该译码器真值表如下所示。

源代码

测试平台:EduCoder

//设计具有一位使能端的3线-8线译码器。当使能端为0时,8位输出信号全为0;
//如果一位使能信号为1,则输出高电平有效的译码信号。
module decoder3e_test(a,ena,y);input [2:0] a;input ena;output [7:0] y; reg [7:0] y;// 请在下面添加代码,完成设计任务
/* Begin */always @ (a or ena)beginif(ena == 1)case(a)3'b000: y = 8'b00000001; 3'b001: y = 8'b00000010; 3'b010: y = 8'b00000100; 3'b011: y = 8'b00001000; 3'b100: y = 8'b00010000; 3'b101: y = 8'b00100000; 3'b110: y = 8'b01000000; 3'b111: y = 8'b10000000; default: y = 8'b00000000;endcaseelsey = 8'b00000000;end
/* End */
endmodule

觉得有帮助的可以点个赞再走哦!!

译码器设计——Verilog HDL语言相关推荐

  1. 编码器设计——Verilog HDL语言

    编码器设计 任务描述 相关知识 3位二进制优先编码器的功能 always语句 事件时序控制 编程要求 源代码 任务描述 设计一个3位二进制优先编码器.运用Verilog HDL进行设计,完善3位二进制 ...

  2. 有限状态机设计实例之空调控制器(Verilog HDL语言描述)(仿真与综合)(附用Edraw(亿图)画状态转移图)

    目录 前言 空调控制器 简介 状态转移图如下: Verilog HDL语言描述 测试文件 仿真图 ISE综合 RTL Schematic Technology Schematic 前言 关于工具的使用 ...

  3. 模6计数器以及模10计数器(Verilog HDL语言设计)(Modelsim仿真与ISE综合)

    目录 前言 模6计数器 Verilog HDL语言描述 测试文件 仿真电路图 RTL Schematic Technology Schematic 模10计数器 Verilog HDL语言描述 测试文 ...

  4. spwm控制算法c语言实现,采用Verilog HDL语言与DDS技术实现SPWM控制算法的FPGA设计

    其部分程序代码如下: case(state1) A: //初始化状态 begin ADDRES1<=addr1; //时分复用第一路地址 READ_EN<=1′b1; //读使能开 NEX ...

  5. 模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)

    目录 前言 原理 Verilog HDL程序设计 测试代码 仿真波形图 ISE综合后 RTL Schematic Technology Schematic 前言 本博文用Verilog HDL语言描述 ...

  6. 级联模60计数器(Verilog HDL语言描述)(仿真与综合)

    目录 前言 模60计数器 Verilog HDL语言描述 测试文件 仿真波形 RTL Schematic Technology Schematic 前言 看这篇文章前,推荐先看看模10计数器和模6计数 ...

  7. 通过仿真和综合认识T触发器(Verilog HDL语言描述T触发器)

    这个系列的博文已经写过了两篇,分别是通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)和通过仿真和综合认识JK触发器(Verilog HDL语言描述JK触发器),分析的方法是完全并行 ...

  8. 通过仿真和综合认识JK触发器(Verilog HDL语言描述JK触发器)

    上篇博文写了用仿真和综合来认识D触发器(通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)),这篇博文采用完全并行的方式来认识JK触发器. 让我们迅速进入正题吧. J-K触发器的Ve ...

  9. Verilog HDL 语言基础语法

    模块的结构 (1)Verilog的基本设计单元是"模块"(block). (2)一个模块由两部分组成,一部分描述接口,另一部分描述逻辑功能. (3)每个Verilog程序包括4个主 ...

最新文章

  1. bzoj 2588 Spoj 10628. Count on a tree (可持久化线段树)
  2. 玩玩.net的ildasm與ilasm (转)
  3. 洛谷P1140 相似基因【线性dp】
  4. pytorch loss inf
  5. tcp http socket
  6. system函数_自学C++基础教程【函数】
  7. 蓝桥杯(java)基础练习 龟兔赛跑
  8. vs2012 出现 无法启动IIS express的解决方案
  9. 标题栏透明android,android改变标题栏的透明度
  10. oracle blob 限制大小_Oracle的INSTANCE CAGING在数据库资源池中的作用
  11. Myeclipse笔记
  12. c语言 统计素数并求和
  13. 基于KNN的离群点检测算法的Matlab版实现
  14. 汉语言文学专业需要学计算机吗,读个汉语言文学专业,学了有什么鬼用?
  15. 微分几何 Class 3 曲线,曲率与挠率
  16. 分析游戏设计中的色彩心理学
  17. 产品经理——java学习之路
  18. 常用测试用例设计方法总结
  19. 利用Javascript动态生成表格的小demo
  20. 记疫情无聊时对老师答题网站的一次渗透(1)

热门文章

  1. 201612-3-炉石传说
  2. 获取下拉框select上次选择的值
  3. 多WAN口宽带路由器到底几个口才算合理(转)
  4. sourcetree 回滚提交
  5. Java + OpenCV 实现图片修复(去水印)(JavaCV)
  6. 腾讯的这个框架火了!
  7. fedora 16 安装后的基本配置
  8. Mac电脑使用:隐藏苹果电脑桌面的硬盘图标
  9. 经典文献阅读之--SuMa++
  10. 比FFT还容易明白的NTT(快速数论变换)