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

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

8-3编码器程序:

1)利用for循环

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

2)利用?:三目运算符

  1. module encoder8_3(a,b,c,d,e,f,g,h,out1,out2,out0,none_on);
  2. input a,b,c,f,d,e,g,h;
  3. output out0,out1,out2,none_on;
  4. wire [:]outvec;
  5.  
  6. assign outvec=h?'b0111:g?4'b0110:f?'b0101:e?4'b0100:d?'b0011:c?4'b0010:b?'b0001:a?4'b0000:'b1000;
  7. assign out0=outvec[];
  8. assign out1=outvec[];
  9. assign out2=outvec[];
  10. assign none_on=outvec[];
  11. endmodule

3)利用条件语句

  1. module encoder8_3(a,b,c,d,e,f,g,h,out1,out2,out0,none_on);
  2. input a,b,c,f,d,e,g,h;
  3. output out0,out1,out2,none_on;
  4. reg [:]outvec;
  5.  
  6. always @(a or b or c or d or e or f or g or h)
  7. begin
  8. if(h) outvec='b0111;
  9. else if(g) outvec='b0110;
  10. else if(f) outvec='b0101;
  11. else if(e) outvec='b0100;
  12. else if(d) outvec='b0011;
  13. else if(c) outvec='b0010;
  14. else if(b) outvec='b0001;
  15. else if(a) outvec='b0000;
  16. else outvec='b1000;
  17. end
  18. assign out0=outvec[];
  19. assign out1=outvec[];
  20. assign out2=outvec[];
  21. assign none_on=outvec[];
  22. 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. Atitit  J2EE平台相关规范--39个  3.J2SE平台相关规范--42个

    Atitit  J2EE平台相关规范--39个  3.J2SE平台相关规范--42个 2.J2EE平台相关规范--39个5 XML Parsing Specification16 J2EE Conne ...

  2. 学习ASP.NET MVC(六)——我的第一个ASP.NET MVC 编辑页面

    在上一文章中由Entity Framework(实体框架)去实现了对数据库的CURD操作.在本篇文章中,主要是调试修改自动生成的动作方法和视图,以及调试编辑功能与编辑功能的Book控制器. 首先,在V ...

  3. 编译原理(简单自动词法分析器LEX)

    编译原理(简单自动词法分析器LEX)源程序下载地址:  http://files.cnblogs.com/files/hujunzheng/%E6%B1%87%E7%BC%96%E5%8E%9F%E7 ...

  4. poj 3101Astronomy(圆周追击+分数最小公倍数)

    /* 本题属于圆周追击问题: 假设已知两个圆周运动的物体的周期分别是a ,b, 设每隔时间t就会在同一条直线上 在同一条直线上的条件是 角度之差为 PI ! 那么就有方程 (2PI/a - 2PI/b ...

  5. 在office2010的ppt中加入音乐

    Microsoft office Powerpoint,是微软公司设计的演示文稿软件.用户不仅可以在投影仪或者计算机上进行演示,也可以将演示文稿打印出来,制作成胶片,以便应用到更广泛的领域中.利用Mi ...

  6. Android基于mAppWidget实现手绘地图(十四)–在一个应用中使用多个地图

    使用切图工具创建不同名称的地图资源.然后将这些资源放置到assert文件夹内. 像下面这样: 在代码中,根据不同的地图名称,查找地图. map = new MapWidget(this, " ...

  7. Android 学习之路

    转载:http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/ 这篇博客背后的故事 一路走来很不容易,刚好知乎上被人邀请回 ...

  8. android调试输出

    测试时不想直接debug总要调试输出一些字符串信息,那以下方法可选: 1.用Log.i(TAG, "onCreate");日志输出. 先要引用 import android.uti ...

  9. Azure China (2) Azure China管理界面初探

    <Windows Azure Platform 系列文章目录> 首先是Q&A时间 1.我在Azure Global拥有测试账号或者免费的MSDN订阅账号,这个账号可以在国内Azur ...

  10. 14个HTML5实现的效果合集

    HTML5可不是什么虚幻的概念,与其高谈阔论的讨论HTML5未来的趋势和价值,不如一起研究一下现在的HTML5可以做出哪些成果,可以让我们做出出色的产品. Form Follows Function就 ...