实验3 组合逻辑设计(编码器译码器设计)
发布时间:2024-11-17
发布时间:2024-11-17
低洼
实验三 组合逻辑设计(编码器/译码器设计)
一、实验目的
1. 进一步熟练EDA开发工具的使用
2. 学习组合逻辑设计方法
3. 掌握编码器/译码器设计方法。
二、实验内容
设计一个3-8线译码器, 输入信号为x[2:0],输出为y0,y1,y2,y3,y4,y5, y6,y7,输出信号为低电平有效。
设计一个8-3线编码器,输入信号为x0,x1,x2,x3,x4,x5,x6,x7,输出为y[2:0],且输入信号为低电平有效。
对设计进行时序仿真和硬件验证。
三、实验步骤:
1. 建立新文件夹;建立新工程;
2. 编写verilog设计程序;
3. 编译程序;
4. 时序仿真。
5. 按照试验箱硬件接口指定相应引脚,重新编译,下载执行。
6. 在实验箱上用按键、开关和LED灯指示编译码结果。
四、实验报告
根据以上的实验内容写出实验报告,包括程序设计、时序仿真结果,实验硬件验证结果等。
五、扩展部分
1 如何设计优8-3线优先编码器。
2 如何控制译码器,使输出存在全1的非译码状态。
参考程序:
编码器 input…….
output……
always @( *)
case ({x0,x1,x2,x3,x4,x5,x6,x7})
8’b0111_1111: y=3’b111;
8’b1011_1111: y=3’b110;
8’b1101_1111: y=3’b101;
8’b1110_1111: y=3’b100;
8’b1111_0111: y=3’b011;
8’b1111_1011: y=3’b010;
8’b1111_1101: y=3’b001;
8’b1111_1110: y=3’b000;
低洼
Default: y=3’bzzz endcase
译码器 always @( *)
case(x )
3’b000:y=8’b0111_1111; 3’b001:y=8’b1011_1111; 3’b010:y=8’b1101_1111: 3’b011:y=8’b1110_1111: 3’b100:y=8’b1111_0111:
3’b101:y=8’b1111_1011:
3’b110:y=8’b1111_1101:
3’b111:y=8’b1111_1110: endcase