(一)组合逻辑部分1、多路复用器设计:将SW17-SW15作为选择输入s2s1s0,SW14-SW0,作为输入A,B,C,D,E,每路3位并将拨动开关连接到红色的LED上,以显示选择状态和每路数据状态;绿色LED,LEDG2—LEDG0作为输出M,显示结果。
建立工程,编写代码,绑定管脚,下载到DE2板上,进行测试。
module test1(SW,LEDR,LEDG);input[17:0] SW;output[17:0] LEDR;output reg[7:0] LEDG;assign LEDR=SW;always@(SW)begincase(SW[17:15])3'b000:LEDG=SW[2:0];3'b001:LEDG=SW[5:3];3'b010:LEDG=SW[8:6];3'b011:LEDG=SW[11:9];3'b100:LEDG=SW[14:12];default:LEDG=8'B00000000;endcaseendendmodule2、7段管显示设计:SW14—SW0,分成3位宽的5路信号,通过SW17—SW15进行选择,在一个7段数码管上显示“H、E、L、O、空格(不亮)”中的某一字符。
将此应用扩展到5个数码管,实现循环显示5个字符。
SW17---SW15与显示内容对应如下。
module test2(SW,HEX0,HEX1,HEX2,HEX3,HEX4);input[17:0] SW;output reg [6:0] HEX0,HEX1,HEX2,HEX3,HEX4;always @(SW)begincase (SW[17:15])3'b000:{HEX4,HEX3,HEX2,HEX1,HEX0}=35'b0001001_0000110_1000111_1000111_1000000; 3'b001:{HEX4,HEX3,HEX2,HEX1,HEX0}=35'b0000110_1000111_1000111_1000000_0001001; 3'b010:{HEX4,HEX3,HEX2,HEX1,HEX0}=35'b1000111_1000111_1000000_0001001_0000110; 3'b011:{HEX4,HEX3,HEX2,HEX1,HEX0}=35'b1000111_1000000_0001001_0000110_1000111; 3'b100:{HEX4,HEX3,HEX2,HEX1,HEX0}=35'b1000000_0001001_0000110_1000111_1000111;default{HEX4,HEX3,HEX2,HEX1,HEX0}=35'b1111111_1111111_1111111_1111111_1111111; endcaseendendmodule3、然后将5个字符扩展到8个字符。