系统Verilog开关不变

时间:2018-12-22 23:58:58

标签: verilog fpga system-verilog vhd

如果开关打开,则此代码用于打开LED。 这是最重要的模块。

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 :(得分:0)

正如Serge所说:为了使信号从FPGA发出,您的顶部模块应具有输出端口。您的工具没有给您警告或错误吗?因为您的约束无法实现!

第二,我将生​​成两个输出:一个高和一个低。这样可以确保至少一个LED点亮。

确保彻底检查端口到FPGA引脚的映射。除了编码错误外,它是I / O引脚不工作时最常见的错误源。

回到基本代码来测试I / O方面,您会非常擅长。这是正确的调试方式。您可能又走了一步,也省略了时钟。只是:assign led = 6'b101010;然后让他们开始工作,然后添加时钟。

最后的评论:您的输出k未使用且未定义。