You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Coq
		
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Coq
		
	
| // f20 f19 b20 c20 j16 k16 m18 m17 l17 l16 l15 l14 m15 m14
 | |
| //   7   8   9  10  11  12   6   5   4   3   2   1
 | |
| //   B  S3  S2   F   A  S1  S4   G   C  DP   D   E   
 | |
| module dt(
 | |
|     // input wire [7:0]data,  // en: 1, select:2, dp: 1, data: 4
 | |
|     output wire A, B, C, D, E, F, G, DP,
 | |
|     output wire S1, S2, S3, S4
 | |
| );
 | |
| 
 | |
| wire [7:0]data;
 | |
| assign data = 8'b1000_0010;
 | |
| 
 | |
| parameter _SELECT_1 = 4'b1110;
 | |
| parameter _SELECT_2 = 4'b1101;
 | |
| parameter _SELECT_3 = 4'b1011;
 | |
| parameter _SELECT_4 = 4'b0111;
 | |
| 
 | |
| parameter SELECTOR = {_SELECT_4, _SELECT_3, _SELECT_2, _SELECT_1};
 | |
| 
 | |
| 
 | |
| //                      ABCD_EFGP
 | |
| parameter _SHOW_0 = 8'B1111_1110;
 | |
| parameter _SHOW_1 = 8'B0110_0000;
 | |
| parameter _SHOW_2 = 8'B1101_1010;
 | |
| parameter _SHOW_3 = 8'B1111_0010;
 | |
| parameter _SHOW_4 = 8'B0110_0110;
 | |
| parameter _SHOW_5 = 8'B1111_1110;
 | |
| parameter _SHOW_6 = 8'B1111_1110;
 | |
| parameter _SHOW_7 = 8'B1111_1110;
 | |
| parameter _SHOW_8 = 8'B1111_1110;
 | |
| parameter _SHOW_9 = 8'B1111_1110;
 | |
| parameter _SHOW_A = 8'B1111_1110;
 | |
| parameter _SHOW_B = 8'B1111_1110;
 | |
| parameter _SHOW_C = 8'B1111_1110;
 | |
| parameter _SHOW_D = 8'B1111_1110;
 | |
| parameter _SHOW_E = 8'B1111_1110;
 | |
| parameter _SHOW_F = 8'B1111_1110;
 | |
| 
 | |
| parameter SHOW = {_SHOW_F, _SHOW_E, _SHOW_D, _SHOW_C, _SHOW_B, _SHOW_A, _SHOW_9, _SHOW_8, _SHOW_7, _SHOW_6, _SHOW_5, _SHOW_4, _SHOW_3, _SHOW_2, _SHOW_1, _SHOW_0};
 | |
| 
 | |
| 
 | |
| // always @(data) begin
 | |
| //     if (data[7]) begin
 | |
| //         {S4, S3, S2, S1} = SELECTOR >> (data[6:5] << 2);
 | |
| //         {A, B, C, D, E, F, G, DP} = {SHOW >> (data[3:0] << 3) >> 1, data[4]};
 | |
| //     end
 | |
| // end
 | |
| 
 | |
| assign {S4, S3, S2, S1} = 4'b0110;
 | |
| assign {A, B, C, D, E, F, G, DP} = _SHOW_2;
 | |
| endmodule |