设计一个1位的二选一多路选择器及其VHDL描述

电子说

1.2w人已加入

描述

  二选一多路选择器真值表

  二选一多路选择器逻辑表达式为:多路选择器

  根据逻辑表达式所列真值表如下图所示

多路选择器

  1位二选一多路选择器及其VHDL描述

  实验步骤:

  1、新建一个文件夹,打开Quartus2软件,选择FLE-》NEW菜单,在弹出的NEW对话框中选择DEVICE DESGIN FILE 页的原理图文件编辑器输入项VHDL FILE,按确定键打开VHDL 编辑器窗口;

  2、在VHDL 编辑器窗口输入2选1多路选择器的VHDL 描述;

  ENTITYmux21aIS

  PORT(ab:IN BIT:

  s:INBIT:

  y :OUT BIT):END ENITY mux2 1a:

  ARCHITECTURE one OF mux21a IS

  BEG IN

  y《=aWHEN s=‘0“ELSE b:ENDARCHITECTURE one;或者:

  ENTITYmux21a IS

  PORT(ab:IN BIT:

  s:INBIT:

  y:OUT BIT);END ENTITYmux2 1a;

  ARCHITECTURE one OF mux2 1a IS

  BEG IN

  y《=a WHEN s=”O“ELSE b;ENDARCHITECTURE one;

  3、打开波形编辑器,分别运行2 选1多路选择器,观察他们的输出波形:

多路选择器

  4、调出VHDL 描述产生的2 选1多路选择器的原理图。点击TOOLS-》NELIST

  VIEWERS-》RTLVIEWERS,即调出VHDL描述产生的2 选1多路选择器的RIL 电路图,如下所示

多路选择器

  实验小结:

  经过本次试验初步了解了Quartus2 软件的使用,及VHDL 表达和设计电路的方法。

  1位的二选一多路选择器的逻辑表达式实现

  设计来源

  `timescale 1ns / 1ps

  //////////////////////////////////////////////////////////////////////////////////

  // Company:

  // Engineer:

  //

  // Create Date: 2018/03/17 08:26:28

  // Design Name:

  // Module Name: disTwo2OneSelector

  // Project Name:

  // Target Devices:

  // Tool Versions:

  // Description:

  //

  // Dependencies:

  //

  // Revision:

  // Revision 0.01 - File Created

  // Additional Comments:

  //

  //////////////////////////////////////////////////////////////////////////////////

  module disTwo2OneSelector(

  input sl,

  input a,

  input b,

  output out

  );

  reg out;

  always @(sl or a or b)

  begin

  // “? :”表达式的返回值必须赋给一个变量。

  out=sl?b:a;

  end

  endmodule

  模拟源

  `timescale 1ns / 1ps

  //////////////////////////////////////////////////////////////////////////////////

  // Company:

  // Engineer:

  //

  // Create Date: 2018/03/17 08:45:19

  // Design Name:

  // Module Name: simTwo2OneSelector

  // Project Name:

  // Target Devices:

  // Tool Versions:

  // Description:

  //

  // Dependencies:

  //

  // Revision:

  // Revision 0.01 - File Created

  // Additional Comments:

  //

  //////////////////////////////////////////////////////////////////////////////////

  module simTwo2OneSelector(

  );

  reg simA,simB,simSl;

  wire simOut;

  initial

  begin

  simSl=0;

  simA=0;

  simB=0;

  // 在激励程序运行的瞬间,“simSl=0;simA=0;simB=0;”语句已经执行完了。

  // 在0-10个时间单位,激励程序的状态保持不变。

  #10

  simSl=0;

  simA=1;

  simB=0;

  #10

  simSl=1;

  simA=0;

  simB=0;

  #10

  simSl=1;

  simA=0;

  simB=1;

  end

  // 设计文件模块名 对象名 (。设计文件模块中的类中的参数(激励文件模块中的类中的参数))

  disTwo2OneSelector objTwo2OneSelector(.a(simA),.b(simB),.sl(simSl),.out(simOut));

  endmodule

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分