My title page contents

基于FPGA的8选1数据选择器设计Verilog代码ISE仿真

名称:基于FPGA的8选1数据选择器设计Verilog代码ISE仿真

软件:ISE

语言:Verilog

代码功能:

分别使用f-else语句和case语句完成8选1数据选择器的设计并给出测试代码,以及功能仿真和时序仿真的波形图。

说明:使用下面给出的模块名和端口名完成设计代码

要求.jpg

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

设计源码(case)

//8选1数据选择器,使用CASE语句

module MUX_8_1(

input [7:0] I,//输入

input [2:0] S,//控制

output reg DATA   //输出

);

always@(S)

   case(S)//控制

       3'b000:DATA=I[0];

       3'b001:DATA=I[1];

       3'b010:DATA=I[2];

       3'b011:DATA=I[3];

       3'b100:DATA=I[4];

       3'b101:DATA=I[5];

       3'b110:DATA=I[6];

       3'b111:DATA=I[7];

       default:;

   endcase

endmodule

测试源码(case)

`timescale 1ns / 1ps

module test;

   // Inputs

   reg [7:0] I;

   reg [2:0] S;

   // Outputs

   wire DATA;

   // Instantiate the Unit Under Test (UUT)

   MUX_8_1 uut (

       .I(I),

       .S(S),

       .DATA(DATA)

   );

   initial begin

       // Initialize Inputs

       I = 8'b10100011;//输入

       //S为000~111共8种情况

       S = 3'b000;

       #100;

       S = 3'b001;

       #100;        

       S = 3'b010;

       #100;

       S = 3'b011;

       #100;        

       S = 3'b100;

       #100;        

       S = 3'b101;

       #100;

       S = 3'b110;

       #100;    

       S = 3'b111;

       #100;            

   end

     

endmodule

功能仿真

时序仿真

设计源码(if-else)

//8选1数据选择器,使用IF语句

module MUX_8_1(

input [7:0] I,//输入

input [2:0] S,//控制

output reg DATA   //输出

);

always@(S)

   if(S==3'b000)

       DATA=I[0];

   else if(S==3'b001)

       DATA=I[1];

   else if(S==3'b010)

       DATA=I[2];        

   else if(S==3'b011)

       DATA=I[3];        

   else if(S==3'b100)

       DATA=I[4];        

   else if(S==3'b101)

       DATA=I[5];        

   else if(S==3'b110)

       DATA=I[6];        

   else

       DATA=I[7];        

endmodule

测试源码(if-else)

`timescale 1ns / 1ps

module test;

   // Inputs

   reg [7:0] I;

   reg [2:0] S;

   // Outputs

   wire DATA;

   // Instantiate the Unit Under Test (UUT)

   MUX_8_1 uut (

       .I(I),

       .S(S),

       .DATA(DATA)

   );

   initial begin

       // Initialize Inputs

       I = 8'b10100011;//输入

       //S为000~111共8种情况

       S = 3'b000;

       #100;

       S = 3'b001;

       #100;        

       S = 3'b010;

       #100;

       S = 3'b011;

       #100;        

       S = 3'b100;

       #100;        

       S = 3'b101;

       #100;

       S = 3'b110;

       #100;    

       S = 3'b111;

       #100;            

   end

     

endmodule

功能仿真

时序仿真


部分代码展示:

//8选1数据选择器,使用CASE语句
module MUX_8_1(
input [7:0] I,//输入
input [2:0] S,//控制
output reg DATA   //输出
);
always@(S)
case(S)//控制
3'b000:DATA=I[0];
3'b001:DATA=I[1];
3'b010:DATA=I[2];
3'b011:DATA=I[3];
3'b100:DATA=I[4];
3'b101:DATA=I[5];

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 基于FPGA的8选1数据选择器设计Verilog代码ISE仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员