Система Verilog Switch не меняется - PullRequest
0 голосов
/ 23 декабря 2018

Этот код используется для включения светодиода, если переключатель включен.Это верхний модуль.

module myb(
input clk,
input execute,
input switch,
output reg k

    );
    logic [5:0] led;
    always@(posedge clk)
    begin
   if(switch)
   led[0] = 1;
    end


endmodule

Это ограничение

set_property PACKAGE_PIN U16 [get_ports {led[0]}]                   
    set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property PACKAGE_PIN E19 [get_ports k]                  
    set_property IOSTANDARD LVCMOS33 [get_ports k]
set_property PACKAGE_PIN U19 [get_ports {led[2]}]                   
    set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
    set_property PACKAGE_PIN V19 [get_ports {led[3]}]                   
        set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]

 set_property PACKAGE_PIN T18 [get_ports execute]                        
         set_property IOSTANDARD LVCMOS33 [get_ports execute]

                        #------------------------------------------------------------
        #---------------------- Clock signal ------------------------
        #------------------------------------------------------------
        set_property PACKAGE_PIN W5 [get_ports clk]
        set_property IOSTANDARD LVCMOS33 [ get_ports clk]
        create_clock -period 10.000 -name sys_clk_pin -waveform {0.000 5.000} -add [get_ports clk]

set_property PACKAGE_PIN V17 [get_ports {switch]                    
    set_property IOSTANDARD LVCMOS33 [get_ports {switch]

Но как-то ничего не меняется.Я тоже пробовал с кнопками, дебоузерами и т. Д. Что я делаю не так?

1 Ответ

0 голосов
/ 23 декабря 2018

Как сказал Серж: для выхода сигнала из ПЛИС ваш верхний модуль должен иметь выходной порт.Ваш инструмент не дал вам никаких предупреждений или ошибок?Потому что ваши ограничения не могут быть выполнены!

Во-вторых, я бы сгенерировал два выхода: один высокий и один низкий.Это гарантирует, что хотя бы один из светодиодов загорится.

Обязательно тщательно проверьте соответствие портов на ПЛИС.Помимо ошибок кодирования, это наиболее распространенный источник ошибок, когда выводы ввода / вывода не работают.

Вы очень хорошо вернулись к основному коду для проверки ввода-вывода.Это правильный способ отладки.Вы могли бы сделать еще один шаг и опустить часы.Просто: assign led = 6'b101010; Затем, после того, как вы заставите их работать, добавьте часы.

Последнее замечание: ваш вывод k не используется и не определен.

...