这里以简单的3-8译码器和8-3编码器为例:

module decoder3_8(a,out);
input [:]a;
output [:]out;
assign out='b1<<a;/*把最低位的1左移in位(根据in口输入的值)并赋予out*/
endmodule

8-3编码器程序:

1)利用for循环

 module encoder8_3(a,out,none_on);
input [:]a;
output [:]out;
output none_on;
reg [:]out;
reg none_on; //要在always块中赋值,必须为reg型数据 always @(a)
begin:local //这里必须要有定义顺序块的名字,因为后面要定义局部变量,有可能被实例化调用
integer i;
out=;
none_on=;
for(i=;i<;i=i+) //这里代表返回输入信号a的8位中,为1的最高位数,即高位优先编码;
begin //如果需要低位优先编码,只需要改成 for(i=7;i>=0;i=i-1)
if(a[i])
begin
out=i;
none_on=;
end
end
end
endmodule

2)利用?:三目运算符

 module encoder8_3(a,b,c,d,e,f,g,h,out1,out2,out0,none_on);
input a,b,c,f,d,e,g,h;
output out0,out1,out2,none_on;
wire [:]outvec; assign outvec=h?'b0111:g?4'b0110:f?'b0101:e?4'b0100:d?'b0011:c?4'b0010:b?'b0001:a?4'b0000:'b1000;
assign out0=outvec[];
assign out1=outvec[];
assign out2=outvec[];
assign none_on=outvec[];
endmodule

3)利用条件语句

 module encoder8_3(a,b,c,d,e,f,g,h,out1,out2,out0,none_on);
input a,b,c,f,d,e,g,h;
output out0,out1,out2,none_on;
reg [:]outvec; always @(a or b or c or d or e or f or g or h)
begin
if(h) outvec='b0111;
else if(g) outvec='b0110;
else if(f) outvec='b0101;
else if(e) outvec='b0100;
else if(d) outvec='b0011;
else if(c) outvec='b0010;
else if(b) outvec='b0001;
else if(a) outvec='b0000;
else outvec='b1000;
end
assign out0=outvec[];
assign out1=outvec[];
assign out2=outvec[];
assign none_on=outvec[];
endmodule

Verilog学习笔记简单功能实现(四)...............译码器和编码器的更多相关文章

  1. Verilog学习笔记简单功能实现(八)...............同步FIFO

    Part 1,功能定义: 用16*8 RAM实现一个同步先进先出(FIFO)队列设计.由写使能端控制该数据流的写入FIFO,并由读使能控制FIFO中数据的读出.写入和读出的操作(高电平有效)由时钟的上 ...

  2. Verilog学习笔记简单功能实现(三)...............同步有限状态机

    在Verilog中可以采用多种方法来描述有限状态机最常见的方法就是用always和case语句.如下图所示的状态转移图就表示了一个简单的有限状态机: 图中:图表示了一个四状态的状态机,输入为A和Res ...

  3. Verilog学习笔记简单功能实现(二)...............全加器

    先以一位全加器为例:Xi.Yi代表两个加数,Cin是地位进位信号,Cout是向高位的进位信号.列表有:   Xi     Yi    Cin Sum Cout 0 0 0 0 0 0 0 1 1 0 ...

  4. Verilog学习笔记简单功能实现(六)...............计数分频电路

    在分频器电路中最重要的概念有两个:1)奇分频/偶分频:2)占空比. A)其中最简单的就是二分频电路,占空比为50%,其Verilog程序为 module half_clk(clr,clk_in,clk ...

  5. Verilog学习笔记简单功能实现(五)...............序列检测设计

    这里采用夏宇闻教授第十五章的序列检测为例来学习; 从以上的状态转换图可以写出状态机的程序: module seqdet(x,out,clk,rst); input x,clk,rst; output ...

  6. Verilog学习笔记简单功能实现(一)...............D触发器

    module D_flop(data,clk,clr,q,qb); input data,clk,clr; output q,qb; wire a,b,c,d,e,f,ndata,nclk; nand ...

  7. Verilog学习笔记简单功能实现(八)...............异步FIFO

    基本原理:       1.读写指针的工作原理 写指针:总是指向下一个将要被写入的单元,复位时,指向第1个单元(编号为0). 读指针:总是指向当前要被读出的数据,复位时,指向第1个单元(编号为0). ...

  8. Verilog学习笔记简单功能实现(七)...............接口设计(并行输入串行输出)

    利用状态机实现比较复杂的接口设计: 这是一个将并行数据转换为串行输出的变换器,利用双向总线输出.这是由EEPROM读写器的缩减得到的,首先对I2C总线特征介绍: I2C总线(inter integra ...

  9. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段 代码工程地址: https://github. ...

随机推荐

  1. Atiit 如何手写词法解析器

    Atiit 如何手写词法解析器 1.1. 通过编程直接从正则->nfa->dfa->表驱动词法解析一条龙自动生成.那是用程序自动生成是需要这样的,自己手写完全不必要这么复杂1 1.2 ...

  2. ASP.NET MVC3 模板页的使用

    占位符的使用: 下面是一个模板页 _Layout.cshtml <!DOCTYPE html> <html> <head> @RenderSection(" ...

  3. WPF自定义控件与样式(8)-ComboBox与自定义多选控件MultComboBox

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 下拉选 ...

  4. jxl写入excel实现数据导出功能

    @RequestMapping(params = "method=export", method = RequestMethod.GET) public void exportCo ...

  5. px 与 dp, sp换算公式?

    PPI = Pixels per inch,每英寸上的像素数,即 "像素密度" xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 (baseline) ldpi: 0. ...

  6. 编译原理 LL1文法First集算法实现

    import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import java.util.TreeMap ...

  7. poj 2528 Mayor's posters(线段树+离散化)

    /* poj 2528 Mayor's posters 线段树 + 离散化 离散化的理解: 给你一系列的正整数, 例如 1, 4 , 100, 1000000000, 如果利用线段树求解的话,很明显 ...

  8. Greenplum测试环境部署

    1.准备3台主机 本实例是部署实验环境,采用的是Citrix的虚拟化环境,分配了3台RHEL6.4的主机. |------|------| |Master|创建模板后,额外添加20G一块磁盘/dev/ ...

  9. [Java 进阶]异常

    异常:程序在运行过程中发生由于硬件设备问题.软件设计错误等导致的程序异常事件. 世上没有百分之百完美的程序.程序总难免存在各式各样的问题.所以,程序中添加对于错误的处理机制是十分有必要的.这就好比人多 ...

  10. jQuery 实现bootstrapValidator下的全局验证

    前置: 引入jQuery.bootstrap.bootstrapValidator 问题描述: 项目中要求所有的表单输入框中都不能输入&符号.没有在bootstrap中找到有方法可用,只能自己 ...