コード例 #1
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def test_pattern_start(self):
     result = to_statements(sync_header())
     expected = to_statements([
         PatternVector(['1', 'X', '0', 'X', 'X']),
         PatternVector(['1', 'X', '1', 'X', 'X'],
                       opcode='repeat(5)',
                       comment='Sync header'),
     ])
     self.assertEqual(result, expected)
コード例 #2
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_read_value_cmd(self):
     result = to_statements(read_value_cmd())
     expected = to_statements([
         PatternVector(['0', '0', 'X', '1'], comment='Read Value Command'),
         PatternVector(['0', '1', 'X', '1'], comment='Read Value Command'),
         PatternVector(['0', '0', 'X', '1'], comment='Read Value Command'),
         PatternVector(['0', '0', 'X', '1'], comment='Read Value Command'),
         PatternVector(['0', '0', 'X', '1'], comment='Read Value Command'),
     ])
     self.assertEqual(result, expected)
コード例 #3
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_write_cmd(self):
     result = to_statements(write_cmd())
     expected = to_statements([
         PatternVector(['0', '0', 'X', '1'], comment='Write Command'),
         PatternVector(['0', '1', 'X', '1'], comment='Write Command'),
         PatternVector(['0', '0', 'X', '1'], comment='Write Command'),
         PatternVector(['0', '0', 'X', '1'], comment='Write Command'),
         PatternVector(['0', '0', 'X', '1'], comment='Write Command'),
     ])
     self.assertEqual(result, expected)
コード例 #4
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def test_wait(self):
     result = to_statements(wait(3))
     expected_result = PatternVector(
         ['1', 'X', '0', 'X', 'X'],
         opcode=f'repeat(3)',
         comment=f'Wait for 3 Timesets').get_statement()
     self.assertEqual(result, expected_result)
コード例 #5
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def test_data_frame(self):
     result = to_statements(data_frame('0xab;0xcd'))
     expected_result = '\n'.join([
         self._expect_writing_bits('0110100101', 'Data 0xab'),
         self._expect_writing_bits('0101100011', 'Data 0xcd')
     ])
     self.maxDiff = None
     self.assertEqual(result, expected_result)
コード例 #6
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_write_address(self):
     result = to_statements(write_address('0x3cd'))
     # 0x3cd = 011 1100 1101 b
     expected = to_statements([
         PatternVector(['0', '0', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '1', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '1', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '1', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '1', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '0', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '0', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '1', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '1', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '0', 'X', '1'], comment='Address 0x3cd'),
         PatternVector(['0', '1', 'X', '1'], comment='Address 0x3cd'),
     ])
     self.assertEqual(result, expected)
コード例 #7
0
 def test_to_statements(self):
     vectors = [
         PatternVector(['1', 'X'], 'this is a comment', 'opcode1'),
         PatternVector(['V', '0'], 'another comment', 'opcode2'),
     ]
     expected_statement = '\n'.join([
         'opcode1        	-              	1	X; // this is a comment',
         'opcode2        	-              	V	0; // another comment'
     ])
     self.assertEqual(to_statements(vectors), expected_statement)
コード例 #8
0
 def test_generate_ok(self):
     contents = [
         {
             'OM': '1',
             'Burst Length': '2',
             'FSN': '0',
             'Start Address': '0x0100',
             'Data': '0xFF;0xFF',
             'R/W': 'W',
             'ChipID': '1'
         },
         # {'R/W':'R', 'Address':'0x102'}
     ]
     result = to_statements(self.dpg.generate(contents))
     expected = to_statements(bml_vectors.sync_header() +
                              bml_vectors.chip_select('1') +
                              bml_vectors.operation_mode('1', 'W') +
                              bml_vectors.burst_length('2') +
                              bml_vectors.fast_switch_number('0') +
                              bml_vectors.addr_frame('0x0100') +
                              bml_vectors.data_frame('0xFF;0xFF'))
     self.maxDiff = None
     self.assertEqual(result, expected)
コード例 #9
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_write_data(self):
     result = to_statements(write_data('0xabcd'))
     # 0xabcd = 1010 1011 1100 1101 b
     expected = to_statements([
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '0', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '0', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '0', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '0', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '0', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '0', 'X', '1'], comment='Data 0xabcd'),
         PatternVector(['0', '1', 'X', '1'], comment='Data 0xabcd'),
     ])
     self.maxDiff = None
     self.assertEqual(result, expected)
コード例 #10
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def test_burst_length(self):
     test_cases = [
         #len, expected result
         ('0', self._expect_writing_bits('000', 'BurstLength 0')),
         ('2', self._expect_writing_bits('100', 'BurstLength 2')),
         ('3', self._expect_writing_bits('010', 'BurstLength 3')),
         ('4', self._expect_writing_bits('110', 'BurstLength 4')),
         ('5', self._expect_writing_bits('001', 'BurstLength 5')),
         ('8', self._expect_writing_bits('101', 'BurstLength 8')),
         ('16', self._expect_writing_bits('011', 'BurstLength 16')),
         ('32', self._expect_writing_bits('111', 'BurstLength 32')),
     ]
     for (len, expected_result) in test_cases:
         with self.subTest(f'Burst Length={len}'):
             result = to_statements(burst_length(len))
             self.assertEqual(result, expected_result)
コード例 #11
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def test_operation_mode(self):
     test_cases = [
         #Input:           Expected Ouput:
         #op_mode, r_w,    op_bits, op comment,    r_w bit, r_w comment
         ('0', 'r', '00', 'Normal', '1', 'Read'),
         ('0', 'w', '00', 'Normal', '0', 'Write'),
         ('1', 'w', '10', 'ImmeEffect', '0', 'Write'),
         ('2', 'w', '01', 'InitSlaveID', '0', 'Write'),
         ('3', 'r', '11', 'LoadData', '1', 'Read')
     ]
     for (op_mode, r_w, exp_op_bits, exp_op_comment, exp_rw_bit,
          exp_rw_comment) in test_cases:
         with self.subTest(f'Operation Mode={op_mode}, R/W={r_w}'):
             result = to_statements(operation_mode(op_mode, r_w))
             expected_result = '\n'.join([
                 self._expect_writing_bits(exp_op_bits, exp_op_comment),
                 self._expect_writing_bits(exp_rw_bit, exp_rw_comment)
             ])
             self.assertEqual(result, expected_result)
コード例 #12
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def _expect_writing_bits(self, bits_str, comment):
     return to_statements([
         PatternVector(['1', 'X', bit, 'X', 'X'], comment=comment)
         for bit in bits_str
     ])
コード例 #13
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def test_chip_select(self):
     result = to_statements(chip_select('30'))
     expected = self._expect_writing_bits('0011101', 'ChipID 30')
     self.assertEqual(result, expected)
コード例 #14
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_pattern_end(self):
     result = to_statements(pattern_end())
     expected = PatternVector(['X', 'X', 'X', 'X'], comment='End of the pattern', opcode='halt').get_statement()
     self.assertEqual(result, expected)
コード例 #15
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_frame_end(self):
     result = to_statements(frame_end())
     expected = PatternVector(['1', '0', 'X', '0'], comment='End of SPI 4W Frame', opcode='repeat(5)').get_statement()
     self.assertEqual(result, expected)
コード例 #16
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_capture_stop(self):
     result = to_statements(capture_stop())
     expected = PatternVector(['1', '0', 'X', '1'], opcode='capture_stop').get_statement()
     self.assertEqual(result, expected)
コード例 #17
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def test_addr_frame(self):
     result = to_statements(addr_frame('0xabcd'))
     expected_result = self._expect_writing_bits('01011000110110100101',
                                                 'Addr 0xabcd')
     self.maxDiff = None
     self.assertEqual(result, expected_result)
コード例 #18
0
ファイル: test_bml_vectors.py プロジェクト: ysomebody/dpg
 def test_fast_switch_number(self):
     result = to_statements(fast_switch_number('6'))
     expected_result = self._expect_writing_bits('00110', 'FSN 6')
     self.assertEqual(result, expected_result)
コード例 #19
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_read_data(self):
     result = to_statements(read_data())
     expected = to_statements([PatternVector(['0', 'X', 'V', '1'], comment='Read', opcode='capture')] * 16)
     self.assertEqual(result, expected)
コード例 #20
0
ファイル: test_spi_4w_vectors.py プロジェクト: ysomebody/dpg
 def test_pattern_start(self):
     result = to_statements(pattern_start('Test_Timeset'))
     expected = PatternVector(['1', '0', 'X', '0'], comment='Start of the pattern', timeset='Test_Timeset').get_statement()
     self.assertEqual(result, expected)