Python에서 FPGA/테스트 벤치는 무엇입니까?
테스트 벤치는 무엇입니까?
Polyphony는 테스트 프로그램을 FPGA 세계의 전통에 따라 테스트 벤치로 표현합니다. L 치카의 예는 실제 프로그램과 테스트 벤치를 보여줍니다.
테스트 프로그램 보기
테스트 벤치@testbench
def test(dut):
for i in range(4):
wait_value(1, dut.led)
wait_value(0, dut.led)
device_under_test = Blink(10000)
test(device_under_test)
@testbench 및 test 함수
@testbench
라는 데코레이터로 규정된 함수가 테스트용 함수입니다. 여기에서는 test 라는 이름으로 하고 있습니다만, 다른 이름이어도 상관없습니다.
test 함수 내에서는 인수 dut 에 대상이 되는 테스트의 객체가 들어옵니다. dut은 사실 L 치카 프로그램입니다. L치카만 dut의 led 포트는 1(점등) 0(소등)을 반복합니다. Polyphony 가 제공하는 wait_value 함수로 그 변화를 기다리게 되어 있습니다. 그것을 4회 반복하면 종료입니다.
객체 생성 및 테스트 벤치 실행
Blink 클래스(L치카였습니다)의 객체를 생성해, 글로벌 변수 device_under_test 에 넣어, 테스트 함수를 호출합니다.
객체 생성device_under_test = Blink(10000)
test(device_under_test)
파이썬에서 실행
Python (버전 3입니다)에서 실행해 보겠습니다. 잘하면 아무 일도 없었던 것처럼 끝납니다.
파이썬에서 실행shell$ python blink.py
또는 Windows의 경우
Windows cmd에서 실행> py -3.6 blink.py
위의 -3.6 인수는 Windows에서 여러 Python이 설치된 경우 지정하는 Python 버전입니다. 만약 하나만 설치하고 있다면 필요 없습니다.
오류입니다.
Polyphony가 설치되어 있지 않으면 다음 오류가 발생합니다. 내 환경에서는 Python 3.5에 설치하지 않았기 때문에 오류가 발생했습니다.
오류입니다.>py -3.5 blink.py
File "blink.py", line 14
led_bit:bit = 1
^
SyntaxError: invalid syntax
print 추가
잘해도 아무 것도 표시하지 않으므로 print를 추가해 보겠습니다.
test@testbench
def test(dut):
v = 0
for i in range(4):
print("loop:", i)
wait_value(1, dut.led)
wait_value(0, dut.led)
print("finished")
실행하면
실행 및 표시> python blink.py
loop: 0
loop: 1
loop: 2
loop: 3
finished
수수한 느낌이 표시되었습니다.
Reference
이 문제에 관하여(Python에서 FPGA/테스트 벤치는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryos36/items/050e8a3c4a620ff4ef95
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@testbench
def test(dut):
for i in range(4):
wait_value(1, dut.led)
wait_value(0, dut.led)
device_under_test = Blink(10000)
test(device_under_test)
device_under_test = Blink(10000)
test(device_under_test)
shell$ python blink.py
> py -3.6 blink.py
>py -3.5 blink.py
File "blink.py", line 14
led_bit:bit = 1
^
SyntaxError: invalid syntax
@testbench
def test(dut):
v = 0
for i in range(4):
print("loop:", i)
wait_value(1, dut.led)
wait_value(0, dut.led)
print("finished")
> python blink.py
loop: 0
loop: 1
loop: 2
loop: 3
finished
Reference
이 문제에 관하여(Python에서 FPGA/테스트 벤치는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryos36/items/050e8a3c4a620ff4ef95텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)