如果开关打开,则此代码用于打开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]
但是无论如何,什么都没有改变。我还尝试了按钮,防抖器等。我在做什么错了?
答案 0 :(得分:0)
正如Serge所说:为了使信号从FPGA发出,您的顶部模块应具有输出端口。您的工具没有给您警告或错误吗?因为您的约束无法实现!
第二,我将生成两个输出:一个高和一个低。这样可以确保至少一个LED点亮。
确保彻底检查端口到FPGA引脚的映射。除了编码错误外,它是I / O引脚不工作时最常见的错误源。
回到基本代码来测试I / O方面,您会非常擅长。这是正确的调试方式。您可能又走了一步,也省略了时钟。只是:assign led = 6'b101010;
然后让他们开始工作,然后添加时钟。
最后的评论:您的输出k
未使用且未定义。