fpga生成pwm简单案例

  • 易灵思相关代码
clike 复制代码
`timescale 1ns/1ns

parameter CLOCK_FREQ = 100_000;
parameter LED_ON_PERIOD = 2*CLOCK_FREQ; // 1 秒对应的时钟周期数除以 10,即亮 1 秒
parameter LED_OFF_PERIOD = 18*CLOCK_FREQ; // 19 秒对应的时钟周期数除以 10

module motor
(
    input               pll_inst1_CLKOUT0,
    input               pll_inst1_LOCKED,
    output              led,
    output              pwm0,
    output              pwm1,
    output              pwm2,
    output              pwm3,
    output              pwm4,
    output              pwm5
);

wire    clk_ref = pll_inst1_CLKOUT0;        
wire    sys_rst_n = pll_inst1_LOCKED;

reg [31:0] counter;
reg led_state;

always @(posedge clk_ref or negedge sys_rst_n) begin
    if (!sys_rst_n) begin
        counter <= 0;
        led_state <= 0;
    end else begin
        counter <= counter + 1;
        if (counter < LED_ON_PERIOD) begin
            led_state <= 1;
        end else if (counter < LED_ON_PERIOD + LED_OFF_PERIOD) begin
            led_state <= 0;
        end else begin
            counter <= 0;
        end
    end
end

assign led = led_state;
assign pwm0 = led_state;
assign pwm1 = led_state;
assign pwm2 = led_state;
assign pwm3 = led_state;
assign pwm4 = led_state;
assign pwm5 = led_state;

endmodule
  • 直接分配占空比失败 改成了闪烁的逻辑
  • 尽量先用简单逻辑试一试 参考案例较少
  • 注意再xilinx里面 pwm等历程比较丰富 但是尽量少调用ip包 (那种黑箱太多的 尤其ai类)
  • fpga尽量verliog逻辑走 目前尽量不要复杂逻辑 尤其复杂通信算法(用了要确保时序 注意) 但是通信相关的数据吞吐非常好
相关推荐
9527华安4 小时前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈4 小时前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun5 小时前
【Verilog】第二章作业
fpga开发·verilog
碎碎思6 小时前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则
江山如画,佳人北望8 小时前
fpga-状态机的设计及应用
fpga开发
晓晓暮雨潇潇9 小时前
Xilinx IP核(3)XADC IP核
fpga开发·vivado·xadc·ip核
CWNULT9 小时前
AMD(Xilinx) FPGA配置Flash大小选择
fpga开发
碎碎思1 天前
很能体现FPGA硬件思维的一道面试题
fpga开发
9527华安1 天前
FPGA实现PCIE3.0视频采集转SFP光口千兆UDP网络输出,基于XDMA+GTH架构,提供2套工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0
ZxsLoves2 天前
【【简单systyem verilog 语言学习使用三--- 新新adder加法器-覆盖率测试】】
学习·fpga开发