https://jsproxy-demo.cf/-----https://www.google.com.tw/ 简单的Bin_to_BCD模组 8位Binary转化为12位BCD 原理图 {{:bin2bcd.png?200|}} \\ {{:我变秃了.jpg?200|}} \\ add3模组 ``` ////////////////////////////////////////////////////////////////////////////////// // Company: Cal Poly Pomona // Engineer: Yongyuan Zhang // Lab 3 part A, question 1 // Create Date: 2018/05/04 10:40:12 // Description: Code of add 3 functions ////////////////////////////////////////////////////////////////////////////////// `timescale 1ns / 1ps module add3( input [3:0]x, output reg [3:0]y ); always@(*) begin if(x < 5) y = x; else y = x +3; // y = x ^4'b0111; end endmodule ``` 8位Bin转化为BCD模组 ``` ////////////////////////////////////////////////////////////////////////////////// // Company: Cal Poly Pomona // Engineer: Yongyuan Zhang // Lab 3 part A, question 2 // Create Date: 2018/05/04 10:50:14 // Description: Code of binary to bcd ////////////////////////////////////////////////////////////////////////////////// `timescale 1ns / 1ps module bin2bcd( input[7:0] BIN, output [11:0] BCD ); wire [3:0] u0,u1,u2,u3,u5; add3 U0(.x( {1'b0,BIN[7:5]} ),.y(u0)); add3 U1(.x( {u0[2:0],BIN[4]} ),.y(u1)); add3 U2(.x( {u1[2:0],BIN[3]} ),.y(u2)); add3 U3(.x( {u2[2:0],BIN[2]} ),.y(u3)); add3 U4(.x( {u3[2:0],BIN[1]} ),.y(BCD[4:1])); add3 U5(.x( {1'b0,u0[3],u1[3],u2[3]} ), .y(u5)); add3 U6(.x( {u5[2:0],u3[3]}), . y(BCD[8:5])); assign BCD[0] = BIN[0]; assign BCD[11:9] = {2'b00,u5[3]}; endmodule ``` 模组TestBench ``` ////////////////////////////////////////////////////////////////////////////////// // Company: Cal Poly Pomona // Engineer: Yongyuan Zhang // Lab 3 part A, question 3 // Create Date: 2018/05/04 10:50:14 // Description: testbench for all possible conditions of the bin to bcd code ////////////////////////////////////////////////////////////////////////////////// module tb(); reg [7:0] BIN; wire [11:0] BCD; bin2bcd uut(.BIN(BIN),.BCD(BCD)); initial begin #2 BIN = 8'b0000_0000;//0 #2 BIN = 8'b0000_1010;//10 #2 BIN = 8'b0001_0100;//20 #2 BIN = 8'b0010_1000;//40 #2 BIN = 8'b0101_0000;//80 #2 BIN = 8'b1010_0000;//160 #2 BIN = 8'b0101_0010;//82 #2 BIN = 8'b1111_1111;//255 #2 BIN = 8'b0111_1010;//122 #2 BIN = 8'b1000_1100;//140 #2 BIN = 8'b1010_0011;//163 #2 BIN = 8'b1110_1100;//236 #2 BIN = 8'b1010_1111; //175 #2 $finish; end endmodule ``` \\ {{:ssskr.jpg?300|}} \\ 最炫民族风case\\ ``` always @(posedge clkout or negedge rst_n_in) begin if(!rst_n_in) begin tone <= 5'd6; timecnt <= 0; end else begin if(timecnt>=207) timecnt<=0; else begin timecnt <= timecnt + 1'b1; case(timecnt) //苍茫的天涯是 0: tone <= 5'd6; 1: tone <= 5'd6; 2: tone <= 5'd6; 3: tone <= 5'd5; 4: tone <= 5'd6; 5: tone <= 5'd6; 6: tone <= 5'd6; 7: tone <= 5'd8; //我的爱哎哎哎~ 8: tone <= 5'd8; 9: tone <= 5'd8; 10: tone <= 5'd9; 11: tone <= 5'd8; 12: tone <= 5'd6; 13: tone <= 5'd6; 14: tone <= 5'd6; 15: tone <= 5'd6; //绵绵的青山脚下 16: tone <= 5'd8; 17: tone <= 5'd8; 18: tone <= 5'd8; 19: tone <= 5'd5; 20: tone <= 5'd8; 21: tone <= 5'd9; 22: tone <= 5'd10; 23: tone <= 5'd12; //花正开 24: tone <= 5'd12; 25: tone <= 5'd10; 26: tone <= 5'd9; 27: tone <= 5'd9; 28: tone <= 5'd10; 29: tone <= 5'd10; 30: tone <= 5'd10; 31: tone <= 5'd10; //什么样的节奏是 32: tone <= 5'd13; 33: tone <= 5'd13; 34: tone <= 5'd13; 35: tone <= 5'd12; 36: tone <= 5'd10; 37: tone <= 5'd10; 38: tone <= 5'd10; 39: tone <= 5'd8; //最呀最摇摆 嘿! 40: tone <= 5'd6; 41: tone <= 5'd6; 42: tone <= 5'd6; 43: tone <= 5'd10; 44: tone <= 5'd9; 45: tone <= 5'd9; 46: tone <= 5'd9; 47: tone <= 5'd9; //什么样的歌声才是 48: tone <= 5'd10; 49: tone <= 5'd10; 50: tone <= 5'd12; 51: tone <= 5'd10; 52: tone <= 5'd9; 53: tone <= 5'd10; 54: tone <= 5'd9; 55: tone <= 5'd8; //最开怀~ 56: tone <= 5'd6; 57: tone <= 5'd6; 58: tone <= 5'd5; 59: tone <= 5'd5; 60: tone <= 5'd6; 61: tone <= 5'd6; 62: tone <= 5'd6; 63: tone <= 5'd6; //副歌 //我们要唱就要唱的最痛快 64: tone <= 5'd10; 65: tone <= 5'd10; 66: tone <= 5'd12; 67: tone <= 5'd10; 68: tone <= 5'd10; 69: tone <= 5'd12; 70: tone <= 5'd12; 71: tone <= 5'd13; 72: tone <= 5'd15; 73: tone <= 5'd13; 74: tone <= 5'd12; 75: tone <= 5'd12; 76: tone <= 5'd13; 77: tone <= 5'd13; 78: tone <= 5'd13; 79: tone <= 5'd13; //你是我天边 80: tone <= 5'd6; 81: tone <= 5'd6; 82: tone <= 5'd6; 83: tone <= 5'd5; 84: tone <= 5'd6; 85: tone <= 5'd6; 86: tone <= 5'd8; 87: tone <= 5'd8; //最美的云彩 88: tone <= 5'd9; 89: tone <= 5'd9; 90: tone <= 5'd8; 91: tone <= 5'd9; 92: tone <= 5'd10; 93: tone <= 5'd10; 94: tone <= 5'd10; 95: tone <= 5'd10; //让我用心把你留下 96: tone <= 5'd6; 97: tone <= 5'd13; 98: tone <= 5'd13; 99: tone <= 5'd12; 100: tone <= 5'd9; 101: tone <= 5'd9; 102: tone <= 5'd8; 103: tone <= 5'd9; //来,留下来! 104: tone <= 5'd10; 105: tone <= 5'd10; 106: tone <= 5'd10; 107: tone <= 5'd10; 108: tone <= 5'd10; 109: tone <= 5'd10; 110: tone <= 5'd10; 111: tone <= 5'd10; //悠悠的唱着最 112: tone <= 5'd8; 113: tone <= 5'd8; 114: tone <= 5'd6; 115: tone <= 5'd8; 116: tone <= 5'd9; 117: tone <= 5'd9; 118: tone <= 5'd5; 119: tone <= 5'd5; //炫的民族风 120: tone <= 5'd10; 121: tone <= 5'd12; 122: tone <= 5'd10; 123: tone <= 5'd9; 124: tone <= 5'd8; 125: tone <= 5'd8; 126: tone <= 5'd8; 127: tone <= 5'd8; //让爱卷走所有的尘 128: tone <= 5'd6; 129: tone <= 5'd8; 130: tone <= 5'd9; 131: tone <= 5'd10; 132: tone <= 5'd9; 133: tone <= 5'd8; 134: tone <= 5'd5; 135: tone <= 5'd3; //埃, 136: tone <= 5'd6; 137: tone <= 5'd6; 138: tone <= 5'd6; 139: tone <= 5'd6; 140: tone <= 5'd6; 141: tone <= 5'd6; 142: tone <= 5'd6; 143: tone <= 5'd6; //你是我心中 144: tone <= 5'd6; 145: tone <= 5'd6; 146: tone <= 5'd6; 147: tone <= 5'd5; 148: tone <= 5'd6; 149: tone <= 5'd6; 150: tone <= 5'd8; 151: tone <= 5'd8; //最美的云彩 152: tone <= 5'd9; 153: tone <= 5'd9; 154: tone <= 5'd8; 155: tone <= 5'd9; 156: tone <= 5'd10; 157: tone <= 5'd10; 158: tone <= 5'd10; 159: tone <= 5'd10; //斟满美酒让你留下 160: tone <= 5'd6; 161: tone <= 5'd13; 162: tone <= 5'd13; 162: tone <= 5'd12; 164: tone <= 5'd9; 165: tone <= 5'd9; 166: tone <= 5'd8; 167: tone <= 5'd9; //来,留下来! 168: tone <= 5'd10; 169: tone <= 5'd10; 170: tone <= 5'd10; 171: tone <= 5'd10; 172: tone <= 5'd10; 173: tone <= 5'd10; 174: tone <= 5'd10; 175: tone <= 5'd10; //永远都唱着最 176: tone <= 5'd8; 177: tone <= 5'd8; 178: tone <= 5'd6; 179: tone <= 5'd8; 180: tone <= 5'd9; 181: tone <= 5'd9; 182: tone <= 5'd5; 183: tone <= 5'd5; //炫的民族风,是 184: tone <= 5'd10; 185: tone <= 5'd12; 186: tone <= 5'd10; 187: tone <= 5'd9; 188: tone <= 5'd8; 189: tone <= 5'd8; 190: tone <= 5'd8; 191: tone <= 5'd8; //整片天空最美的姿 192: tone <= 5'd6; 193: tone <= 5'd8; 194: tone <= 5'd9; 195: tone <= 5'd10; 196: tone <= 5'd12; 197: tone <= 5'd10; 198: tone <= 5'd10; 199: tone <= 5'd12; //态!留下来! 200: tone <= 5'd13; 201: tone <= 5'd13; 202: tone <= 5'd13; 203: tone <= 5'd13; 204: tone <= 5'd13; 205: tone <= 5'd13; 206: tone <= 5'd13; 207: tone <= 5'd13; default: tone <= 5'd6; endcase end end end ``` Lemon 前半段 ``` always @(posedge clkout or negedge rst_n_in) begin if(!rst_n_in) begin tone <= 5'd0; timecnt <= 0; end else begin if(timecnt>=271) timecnt<=0; else begin timecnt <= timecnt + 1'b1; case(timecnt) //Lemon 0: tone <= 5'd0; 1: tone <= 5'd0; 2: tone <= 5'd0; 3: tone <= 5'd0; 4: tone <= 5'd0; 5: tone <= 5'd0; 6: tone <= 5'd15; 7: tone <= 5'd16; 8: tone <= 5'd17; 9: tone <= 5'd17; 10: tone <= 5'd15; 11: tone <= 5'd13; 12: tone <= 5'd13; 13: tone <= 5'd13; 14: tone <= 5'd16; 15: tone <= 5'd16; 16: tone <= 5'd14; 17: tone <= 5'd14; 18: tone <= 5'd12; 19: tone <= 5'd10; 20: tone <= 5'd10; 21: tone <= 5'd10; 22: tone <= 5'd14; 23: tone <= 5'd14; 24: tone <= 5'd13; 25: tone <= 5'd13; 26: tone <= 5'd12; 27: tone <= 5'd8; 28: tone <= 5'd8; 29: tone <= 5'd8; 30: tone <= 5'd12; 31: tone <= 5'd12; 32: tone <= 5'd10; 33: tone <= 5'd10; 34: tone <= 5'd10; 35: tone <= 5'd10; 36: tone <= 5'd0; 37: tone <= 5'd0; 38: tone <= 5'd9; 39: tone <= 5'd10; 40: tone <= 5'd11; 41: tone <= 5'd11; 42: tone <= 5'd11; 43: tone <= 5'd11; 44: tone <= 5'd15; 45: tone <= 5'd15; 46: tone <= 5'd14; 47: tone <= 5'd14; 48: tone <= 5'd12; 49: tone <= 5'd12; 50: tone <= 5'd12; 51: tone <= 5'd12; 52: tone <= 5'd11; 53: tone <= 5'd11; 54: tone <= 5'd10; 55: tone <= 5'd11; 56: tone <= 5'd11; 57: tone <= 5'd11; 58: tone <= 5'd11; 59: tone <= 5'd11; 60: tone <= 5'd15; 61: tone <= 5'd15; 62: tone <= 5'd14; 63: tone <= 5'd14; 64: tone <= 5'd12; 65: tone <= 5'd12; 66: tone <= 5'd12; 67: tone <= 5'd12; 68: tone <= 5'd0; 69: tone <= 5'd0; 70: tone <= 5'd15; 71: tone <= 5'd16; 72: tone <= 5'd17; 73: tone <= 5'd17; 74: tone <= 5'd15; 75: tone <= 5'd13; 76: tone <= 5'd13; 77: tone <= 5'd13; 78: tone <= 5'd16; 79: tone <= 5'd16; 80: tone <= 5'd14; 81: tone <= 5'd14; 82: tone <= 5'd12; 83: tone <= 5'd10; 84: tone <= 5'd10; 85: tone <= 5'd10; 86: tone <= 5'd14; 87: tone <= 5'd14; 88: tone <= 5'd13; 89: tone <= 5'd13; 90: tone <= 5'd12; 91: tone <= 5'd8; 92: tone <= 5'd8; 93: tone <= 5'd8; 94: tone <= 5'd12; 95: tone <= 5'd12; 96: tone <= 5'd10; 97: tone <= 5'd10; 98: tone <= 5'd10; 99: tone <= 5'd10; 100: tone <= 5'd10; 101: tone <= 5'd10; 102: tone <= 5'd9; 103: tone <= 5'd10; 104: tone <= 5'd11; 105: tone <= 5'd11; 106: tone <= 5'd11; 107: tone <= 5'd11; 108: tone <= 5'd12; 109: tone <= 5'd12; 110: tone <= 5'd11; 111: tone <= 5'd11; 112: tone <= 5'd10; 113: tone <= 5'd10; 114: tone <= 5'd12; 115: tone <= 5'd12; 116: tone <= 5'd15; 117: tone <= 5'd15; 118: tone <= 5'd17; 119: tone <= 5'd17; 120: tone <= 5'd16; 121: tone <= 5'd16; 122: tone <= 5'd16; 123: tone <= 5'd16; 124: tone <= 5'd16; 125: tone <= 5'd15; 126: tone <= 5'd15; 127: tone <= 5'd15; 128: tone <= 5'd15; 129: tone <= 5'd15; 130: tone <= 5'd15; 131: tone <= 5'd15; 132: tone <= 5'd0; 133: tone <= 5'd0; 134: tone <= 5'd0; 135: tone <= 5'd0; 136: tone <= 5'd0; 137: tone <= 5'd0; 138: tone <= 5'd0; 139: tone <= 5'd0; 140: tone <= 5'd0; 141: tone <= 5'd0; 142: tone <= 5'd15; 143: tone <= 5'd16; 144: tone <= 5'd17; 145: tone <= 5'd17; 146: tone <= 5'd15; 147: tone <= 5'd13; 148: tone <= 5'd13; 149: tone <= 5'd13; 150: tone <= 5'd16; 151: tone <= 5'd16; 152: tone <= 5'd14; 153: tone <= 5'd14; 154: tone <= 5'd12; 155: tone <= 5'd10; 156: tone <= 5'd10; 157: tone <= 5'd10; 158: tone <= 5'd14; 159: tone <= 5'd14; 160: tone <= 5'd13; 161: tone <= 5'd13; 162: tone <= 5'd12; 162: tone <= 5'd8; 164: tone <= 5'd8; 165: tone <= 5'd8; 166: tone <= 5'd12; 167: tone <= 5'd12; 168: tone <= 5'd10; 169: tone <= 5'd10; 170: tone <= 5'd10; 171: tone <= 5'd10; 172: tone <= 5'd0; 173: tone <= 5'd0; 174: tone <= 5'd9; 175: tone <= 5'd10; 176: tone <= 5'd11; 177: tone <= 5'd11; 178: tone <= 5'd11; 179: tone <= 5'd11; 180: tone <= 5'd15; 181: tone <= 5'd15; 182: tone <= 5'd14; 183: tone <= 5'd15; 184: tone <= 5'd12; 185: tone <= 5'd12; 186: tone <= 5'd12; 187: tone <= 5'd12; 188: tone <= 5'd11; 189: tone <= 5'd11; 190: tone <= 5'd10; 191: tone <= 5'd11; 192: tone <= 5'd11; 193: tone <= 5'd11; 194: tone <= 5'd11; 195: tone <= 5'd11; 196: tone <= 5'd8; 197: tone <= 5'd8; 198: tone <= 5'd7; 199: tone <= 5'd6; 200: tone <= 5'd12; 201: tone <= 5'd12; 202: tone <= 5'd12; 203: tone <= 5'd12; 204: tone <= 5'd0; 205: tone <= 5'd0; 206: tone <= 5'd15; 207: tone <= 5'd16; 208: tone <= 5'd17; 209: tone <= 5'd17; 210: tone <= 5'd15; 211: tone <= 5'd13; 212: tone <= 5'd13; 213: tone <= 5'd13; 214: tone <= 5'd16; 215: tone <= 5'd16; 216: tone <= 5'd14; 217: tone <= 5'd14; 218: tone <= 5'd12; 219: tone <= 5'd10; 220: tone <= 5'd10; 221: tone <= 5'd10; 222: tone <= 5'd14; 223: tone <= 5'd14; 224: tone <= 5'd13; 225: tone <= 5'd13; 226: tone <= 5'd12; 227: tone <= 5'd8; 228: tone <= 5'd8; 229: tone <= 5'd8; 230: tone <= 5'd12; 231: tone <= 5'd12; 232: tone <= 5'd10; 233: tone <= 5'd10; 234: tone <= 5'd10; 235: tone <= 5'd10; 236: tone <= 5'd0; 237: tone <= 5'd0; 238: tone <= 5'd9; 239: tone <= 5'd10; 240: tone <= 5'd11; 241: tone <= 5'd11; 242: tone <= 5'd11; 243: tone <= 5'd11; 244: tone <= 5'd12; 245: tone <= 5'd12; 246: tone <= 5'd11; 247: tone <= 5'd12; 248: tone <= 5'd10; 249: tone <= 5'd10; 250: tone <= 5'd12; 251: tone <= 5'd12; 252: tone <= 5'd15; 253: tone <= 5'd15; 254: tone <= 5'd17; 255: tone <= 5'd17; 256: tone <= 5'd16; 257: tone <= 5'd16; 258: tone <= 5'd16; 259: tone <= 5'd16; 260: tone <= 5'd16; 261: tone <= 5'd15; 262: tone <= 5'd15; 263: tone <= 5'd15; 264: tone <= 5'd15; 265: tone <= 5'd15; 266: tone <= 5'd15; 267: tone <= 5'd15; 268: tone <= 5'd0; 269: tone <= 5'd0; 270: tone <= 5'd0; 271: tone <= 5'd0; default: tone <= 5'd6; endcase end end end ``` 念诗之王(改革春风吹满地) ``` always @(posedge clkout or negedge rst_n_in) begin if(!rst_n_in) begin tone <= 5'd0; timecnt <= 0; end else begin if(timecnt>=63) timecnt<=0; else begin timecnt <= timecnt + 1'b1; case(timecnt) //改革春风吹满地~ 0: tone <= 5'd6; 1: tone <= 5'd10; 2: tone <= 5'd10; 3: tone <= 5'd9; 4: tone <= 5'd10; 5: tone <= 5'd10; 6: tone <= 5'd5; 7: tone <= 5'd5; 8: tone <= 5'd8; 9: tone <= 5'd6; 10: tone <= 5'd6; 11: tone <= 5'd6; 12: tone <= 5'd0; 13: tone <= 5'd0; 14: tone <= 5'd0; 15: tone <= 5'd0; 16: tone <= 5'd10; 17: tone <= 5'd6; 18: tone <= 5'd8; 19: tone <= 5'd8; 20: tone <= 5'd10; 21: tone <= 5'd10; 22: tone <= 5'd8; 23: tone <= 5'd8; 24: tone <= 5'd6; 25: tone <= 5'd6; 26: tone <= 5'd0; 27: tone <= 5'd0; 28: tone <= 5'd0; 29: tone <= 5'd0; 30: tone <= 5'd0; 31: tone <= 5'd10; 32: tone <= 5'd10; 33: tone <= 5'd10; 34: tone <= 5'd12; 35: tone <= 5'd10; 36: tone <= 5'd6; 37: tone <= 5'd8; 38: tone <= 5'd12; 39: tone <= 5'd10; 40: tone <= 5'd10; 41: tone <= 5'd10; 42: tone <= 5'd10; 43: tone <= 5'd10; 44: tone <= 5'd6; 45: tone <= 5'd0; 46: tone <= 5'd8; 47: tone <= 5'd8; 48: tone <= 5'd8; 49: tone <= 5'd8; 50: tone <= 5'd8; 51: tone <= 5'd10; 52: tone <= 5'd6; 53: tone <= 5'd6; 54: tone <= 5'd0; 55: tone <= 5'd0; 56: tone <= 5'd8; 57: tone <= 5'd9; 58: tone <= 5'd8; 59: tone <= 5'd8; 60: tone <= 5'd8; 61: tone <= 5'd9; 62: tone <= 5'd6; 63: tone <= 5'd6; default: tone <= 5'd0; endcase end end end ```