8 месяцев назад История
    README.md

    SOC Design Challenge 2024(Yadro)

    трек: Системное программирование

    команда: InnoSystemC

    место: 4

    О ЧЕМ ТРЕК

    Системные программисты решают много интересных и амбициозных задач в маршруте проектирования систем на кристалле (СнК). Современные СнК включают в себя большое количество разнообразных подсистем — от низкоскоростной периферии до всевозможных ускорителей. На ранних этапах проектирования основной вызов для команд — это проверка соответствия заявленным требованиям, то есть верификация цифровой аппаратуры. При этом системные программисты первыми начинают разрабатывать всевозможные пользовательские функциональные сценарии, которые будут использованы в СнК. С помощью функциональных эмуляторов и RTL-симуляторов они могут проводить исследования и запускать различные сценарии проверки.

    ЗАДАЧИ ТРЕКА

    Участники смогут проявить свои возможности и таланты для решения задач функциональной верификации со стороны software-разработки. На основе функциональной модели СнК необходимо разработать на языке С сценарии проверки блоков, входящих в прототип исследуемого СнК. Подключить в режиме косимуляции дополнительное оборудование и оценить полноту проверок путем сбора покрытия.

    КРИТЕРИИ ОЦЕНИВАНИЯ

    Успех в соревнования будет определяться:

    • полнотой проверок для каждого блока из состава СнК;
    • скоростью разработки функциональных сценариев;
    • знаниями языка SystemVerilog и С в разработке сценариев тестового окружения с использованием функциональных эмуляторов и RTL-симуляторов в режиме косимуляции;
    • архитектурным подходом в разработке библиотек и программ на языке С.
    • Кроме процессора, участникам доступно окружение для тестирования и оценки производительности.

    ТРЕБУЕМЫЙ ОПЫТ И НАВЫКИ

    • опыт разработка программ на С;
    • знакомство с языком описания аппаратуры SystemVerilog;
    • знакомство с Python для задач автоматизации проверок.

    Структура репозитория

    ├───apb_uart
    │   ├───cmake
    │   ├───rtl
    │   │   ├───sim.sv -  Top модуль. Здесь подключаются: renode, apb_uart, uart_requester и другие модули
    │   │	├───apb_uart.sv
    │   │	├───uart_interrupt.sv
    │   │	├───uart_rx.sv
    │   │	├───uart_rx.sv
    │   │	└───io_generic_fifo.sv
    │   └───sim
    ├───common
    │	├───irq.c irq.h - обработка прерываний.
    │	├───sc_print.c sc_print.h - реализация ввода/вывода в консоль
    │	└───mem.h - обращения к памяти.
    ├───renode
    │   ├───src
    │       ├───Plugins
    │           ├───VerilatorPlugin
    │               └───VerilatorIntegrationLibrary
    │                   ├───hdl
    │                   │   ├───renode.sv - Обработка входящих запросов по DPI
    │                   │   ├───imports
    │                   │   │   └───renode_pkg.sv - Реализация DPI функций для взаимодействия Renode и Verilator.
    │                   │   └───modules
    │                   │       ├───apb3
    │                   │       ├───axi
    │                   │       ├───uart
    │                   │       │   └───uart_requester.sv - Реализация коннектора DPI для UART, этот модуль предстоит реализовать!
    │                   │       └──renode_interrupts.sv - Передача сигналов прерываний между Renode и Verilator.
    │                   └───src
    │                       ├───buses
    │                       ├───communication
    │                       └───peripherals
    │
    │       
    │       
    ├───tests - Директория с тестами UART
    │   └───apb_uart_example
    │   	├───app.c - код теста
    │	└───Makefile - мейкфайл теста
    └───Makefile - Корневой мейкфайл проекта с таргетами для сборки и запуска тестов
    
    
    Описание

    Хакатан SOC design Challenge 2024 от компании Yadro. Трек "Системное программирование". Команда InnoSystemC - 4 место

    Конвейеры
    0 успешных
    0 с ошибкой