|  | /* | 
|  | A simplistic test for OBUFTDS. Two of them are instanciated and their outpus | 
|  | are connected to LEDs. Data and tri-state inputs are controlled by switches. | 
|  |  | 
|  | Truth tables: | 
|  |  | 
|  | SW9  SW8  | LED3 LED2 | 
|  | 0    0   |  1    0 | 
|  | 0    1   |  0    1 | 
|  | 1    0   |  0    0 | 
|  | 1    1   |  0    0 | 
|  |  | 
|  | SW11 SW10 | LED8 LED7 | 
|  | 0    0   |  0    1 | 
|  | 0    1   |  1    0 | 
|  | 1    0   |  0    0 | 
|  | 1    1   |  0    0 | 
|  |  | 
|  | Couldn't use all switches and buttons at the same time as the differential | 
|  | IOs use different IOSTANDARD than the single ended ones and have to be in | 
|  | a separate bank. | 
|  |  | 
|  | */ | 
|  | `default_nettype none | 
|  |  | 
|  | // ============================================================================ | 
|  |  | 
|  | module top | 
|  | ( | 
|  | input  wire [11:8] sw, | 
|  |  | 
|  | output wire [1:0]  diff_p, | 
|  | output wire [1:0]  diff_n | 
|  | ); | 
|  |  | 
|  | // ============================================================================ | 
|  | // OBUFTDS | 
|  | wire [1:0] buf_i; | 
|  | wire [1:0] buf_t; | 
|  |  | 
|  | OBUFTDS # ( | 
|  | .IOSTANDARD("DIFF_SSTL135"), | 
|  | .SLEW("FAST") | 
|  | ) obuftds_0 ( | 
|  | .I(buf_i[0]), | 
|  | .T(buf_t[0]), | 
|  | .O(diff_p[0]), // LED2 | 
|  | .OB(diff_n[0]) // LED3 | 
|  | ); | 
|  |  | 
|  | OBUFTDS # ( | 
|  | .IOSTANDARD("DIFF_SSTL135"), | 
|  | .SLEW("FAST") | 
|  | ) obuftds_1 ( | 
|  | .I(buf_i[1]), | 
|  | .T(buf_t[1]), | 
|  | .O(diff_p[1]), // LED8 | 
|  | .OB(diff_n[1]) // LED7 | 
|  | ); | 
|  |  | 
|  | // ============================================================================ | 
|  |  | 
|  | assign buf_i[0] = sw[ 8]; | 
|  | assign buf_t[0] = sw[ 9]; | 
|  | assign buf_i[1] = sw[10]; | 
|  | assign buf_t[1] = sw[11]; | 
|  |  | 
|  | endmodule | 
|  |  |