Важная информация

User Tag List

Страница 2 из 21 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 202

Тема: SQRUM 1M

  1. #11
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    можно чисто ради интереса - на этом конкретном примере написать код в ХДЛ и посмотреть что лучше скомпилируется - схема или ХДЛ )

  2. #12
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,403
    Спасибо Благодарностей отдано 
    313
    Спасибо Благодарностей получено 
    595
    Поблагодарили
    441 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну, моего опыта, например, хватает, чтобы в схемном вводе получить результат как минимум не хуже, чем в HDL. Более того, RTL потом будет практически 1:1, а ведь это именно то, что положится в ПЛИСину. Преимущества xHDL вижу лишь в том, что их гораздо легче редактировать. Но мне как инженеру схемотехнику гораздо привычнее смотреть схему устройства а не ее описание на xHDL.

  3. #13
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    EvgenRU, чёй-то у Вас вся схема арабской вязью выполнена - заблудился сразу на синхрогенераторе...
    Мда, более четверти Альтеры на задержку всего видеоряда крутовато... явно сигналы стробирования буферов (либо H/V синхронизация) выполнены невовремя. Подсмотрите формирование видео хотя бы на Ленинграде.
    Так это же я схему кворума взял, а там всё именно так, вот я и планирую её оптимизировать, понятно, что в 90-е это делалось в отсутствие информации и в сжатые сроки. Возможно еще поддержка CP/M тут каким-то боком замешана...
    Попробую из других клонов подсмотреть дельные блоки.

    Цитата Сообщение от omercury Посмотреть сообщение
    По поводу общей концепции:
    - Всё это безобразие в 128 ячеек всё равно не влезет, так что лучше перерисовать сразу;
    - Регистры #FE (клава, кемпстон, вход/выход tape, бипер и пр.) придётся сделать внешними - тупо не хватит ножек;
    - Разбейте схему на функциональные блоки (синхрогенератор, контроллер памяти, формирователь видеовыхода), оформите их отдельными модулями - в дальнейшем сильно упростит работу да и читабельности схеме в общем добавит сильно. От количества внутренних шин трассировка кристалла не изменится;
    - Квартус прекрасно понимает соединение по именам/псевдонимам, так что длинные соединения тащить через всю схему совсем не обязательно.
    Да, на блоки поделить это отличная идея, я просто сначала так сделал, чтобы было общее представление о схеме и ничего не потерять, т.к. сделано это из 3-х схем, но уже всё это реализовано в железе на мелкой логике и работает.


    Цитата Сообщение от omercury Посмотреть сообщение
    Контроллер памяти тоже. Не забывайте, что оперативка у Вас на мегабайт, а шина адреса для неё 8 бит вместо 10... Регенерация её хоть и выполняется сканированием видеопамяти, но адресная шина должна обежать все адреса A0-A9 иначе данные Вы потеряете. Битики придётся переставлять, но это уже по ходу оперы.
    Странно, но он работает и нормально регенерирует, схема взята от реального образца Quorum 1024
    Последний раз редактировалось EvgenRU; 06.03.2017 в 22:35.

  4. #14
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я думаю со всеми оптимизациями код и схема займут одинаковое кол-во ячеек.
    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Но мне как инженеру схемотехнику гораздо привычнее смотреть схему устройства а не ее описание на xHDL.
    на этот счёт у меня всё с точностью до наоборот.

  5. #15
    Master Аватар для s_kosorev
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Да, на блоки поделить это отличная идея, я просто сначала так сделал, чтобы было общее представление о схеме и ничего не потерять, т.к. сделано это из 3-х схем, но уже всё это реализовано в железе на мелкой логике и работает.
    на мелкой работает, на CPLD которые как минимум в разы быстрее может глючить, (например меркая логика не реагировала на коротки иголки, на которые CPLD уже ввиду более выского быстродействая среагирует) особенно критично в участках с счетчиками с самобросом итд, нужно внимательно оценить гонки сигналов, возможно где то придется добавить привязку к синхронизации

  6. #16
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Ага, и отпугнуть новичка, да?

    178 каналов ШИМ.

    Скрытый текст


    module PWM_10_Ch
    (
    input wire inclk, //Вход тактовой частоты (16MHz)
    input wire nSSIN, //Выбор чипа, по положительному перепаду запись по адресу в старших 8 битах SPI
    input wire SCKin, //Вход такта SPI
    input wire MOSIin, //Вход данных от МК
    output wire MISOout, //Выход данных на МК
    output wire [num_PWM-1:0] PWM //Выход 10 каналов ШИМ 50Гц
    );
    parameter SPI_Width = 16; //Ширина шины SPI, бит
    parameter CNT_Width = 8; //Ширина счётчиков PWM, бит
    parameter num_PWM = 178; //Количество каналов PWM
    parameter fCLK = 16000000; //Тактовая частота, Гц
    parameter fPWM = 50; //Частота ШИМ, Гц
    parameter fDiv = fCLK/fPWM/2**CNT_Width; //Коэффициент деления, вычисляемое
    parameter psc = $clog2(fDiv); //Ширина сччётчика прескалера, вычисляемое
    //**************************************************
    wire [SPI_Width - CNT_Width - 1:0] SPI_Addr; //Шина адреса модулей CCP
    wire [CNT_Width - 1:0] SPI_Data; //Шина данных модулей CCP
    wire [CNT_Width - 1:0] Cur_Cnt; //Текущее значение счётчика PWM
    wire [SPI_Width - 1:0] dataOUT;
    assign SPI_Addr = dataOUT[SPI_Width -1: CNT_Width];
    assign SPI_Data = dataOUT[CNT_Width - 1:0];
    //**************************************************
    // Предделитель на 1250
    //**************************************************
    reg [psc-1:0] f_cnt = 0; //Счетчик предделителя
    reg pulse = 0; //Такт предделителя
    always @ (posedge inclk) begin
    f_cnt <= f_cnt + 1;
    if (f_cnt == fDiv + 1) begin
    f_cnt <= 0;
    pulse <= 1;
    end else pulse <= 0;
    end
    //**************************************************
    // Дешифратор адреса CCP
    //**************************************************
    reg [CNT_Width - 1:0] CCP_Addr [num_PWM-1:0];

    always @ (posedge nSSIN) begin
    CCP_Addr[SPI_Addr] <= SPI_Data;
    end
    //**************************************************
    // Подключение модулей
    //**************************************************
    SPIslave #(SPI_Width) SPI_1(.SCK(SCKin), .MOSI(MOSIin), .MISO(MISOout), .data(dataOUT));
    Counter #(CNT_Width) CNT_1(.clock(pulse), .Cnt(Cur_Cnt));
    // Создание модулей CCP
    genvar y;
    generate
    for(y = 0; y < num_PWM; y = y + 1 ) begin : CCP_generation
    CCP #(CNT_Width) CCP_0(.clock(pulse), .CurCNT(Cur_Cnt), .CompareVal(CCP_Addr[y]), .PWM_out(PWM[y]));
    end
    endgenerate
    //**************************************************
    endmodule
    //**************************************************
    [свернуть]



    Страшно?

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Начал разбивать на модули, пока что делаю менеджер памяти, получилось как-то так


    Есть ли смысл делать чтение портов 7FFD и 1FFD ?


    Вот так его в схему засунул
    Последний раз редактировалось EvgenRU; 07.03.2017 в 00:06.

  9. #18
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    Нет в жизни щястья (
    ...и не предвидится...


    Цитата Сообщение от zebest Посмотреть сообщение
    Есть "волшебная" кнопочка в квартусе
    Глазками-ручками.
    Кнопочка только в обратную сторону работает.
    Впрочем Вы это и сами знаете.

    - - - Добавлено - - -

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    Есть ли смысл делать чтение портов 7FFD и 1FFD ?
    Наличие возможности чтения порта Вас ни к чему не обязывает - если какая-либо часть схемы в дальнейшем не используется, фиттер её просто выкинет при компиляции.
    Последний раз редактировалось omercury; 06.03.2017 в 21:16.

  10. #19
    Master
    Регистрация
    20.01.2016
    Адрес
    п. Власиха, Московская обл.
    Сообщений
    593
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пока что привел к такому виду, выкинул задержку видеовыхода, буду с ним разбираться когда отладочную плату сварганю.


    Получилось 95MC, так что можно еще и порты добавить.

    Пока что застрял на Wave симуляции, хочу посмотреть что на счетчиках получается, но не могу понять как это сделать может кто кинет ссылочкой на толковый материал по этому поводу?

    PS: добавил последнюю версию в первое сообщение
    Последний раз редактировалось EvgenRU; 08.03.2017 в 11:13.

  11. #20
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,668
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EvgenRU Посмотреть сообщение
    толковый материал по этому поводу
    http://marsohod.org/11-blog/118-modelsim
    http://marsohod.org/11-blog/207-ufmmodel
    http://marsohod.org/11-blog/342-modelsim-schematics
    например
    Profi v3.2 -=- Speccy2010,r2

Страница 2 из 21 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •