Verilog小练习- 看时序写代码(01--02)

简介: Verilog小练习- 看时序写代码(01--02)

写在前面


整理一些简单的根据时序图编写Verilog代码的实例,帮助新手学习,老手巩固。每次更新两题,根据难度会挑选一些进行讲解。

题目 01


image.png

题目 01 答案


always @(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        cnt <= 0;
    end
    else if(add_cnt)begin
        if(end_cnt)
            cnt <= 0;
        else
            cnt <= cnt + 1;
    end
end
assign add_cnt = dout == 1;       
assign end_cnt = add_cnt && cnt== 5-1;   
always  @(posedge clk or negedge rst_n)begin
    if(rst_n == 1'b0)begin
        dout<= 0;
    end
    else if(en==1)begin
        dout<= 1;
    end
    else if(end_cnt==1)begin
        dout<= 0;
    end
end

题目 02


image.png

题目 02 答案


本题和01类似,只不过需要切换计数器的时间

always @(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        cnt <= 0;
    end
    else if(add_cnt)begin
        if(end_cnt)
            cnt <= 0;
        else
            cnt <= cnt + 1;
    end
end
assign add_cnt = dout == 1;       
assign end_cnt = add_cnt && cnt== x-1;   
always  @(posedge clk or negedge rst_n)begin
    if(rst_n == 1'b0)begin
        dout<= 0;
    end
    else if(en1==1||en2==1)begin
        dout<= 1;
    end
    else if(end_cnt==1)begin
        dout<= 0;
    end
end
always  @(posedge clk or negedge rst_n)begin
    if(rst_n == 1'b0)begin
        x<=0;
    end
    else if (en1==1)begin
        x<=2;
    end
    else if(en2==1)begin
        x<=4;
    end
end


目录
相关文章
|
6月前
|
机器学习/深度学习 算法 异构计算
m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
本文介绍了使用VIVADO 2019.2仿真的多通道FIR滤波器设计。展示了系统RTL结构图,并简述了FIR滤波器的基本理论,包括单通道和多通道的概念、常见结构及设计方法,如窗函数法、频率采样法、优化算法和机器学习方法。此外,还提供了Verilog核心程序代码,用于实现4通道滤波器模块,包含时钟、复位信号及输入输出接口的定义。
177 7
|
6月前
|
存储 编译器 索引
Verilog基础【一】
Verilog基础【一】
206 0
|
6月前
|
算法 异构计算
m基于FPGA的Alamouti编码verilog实现,包含testbench测试文件
m基于FPGA的Alamouti编码verilog实现,包含testbench测试文件
79 5
|
芯片 异构计算
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
268 0
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
|
存储 算法 异构计算
m基于FPGA的数据串并并串转换系统verilog实现,包含testbench,可以配置并行数量
m基于FPGA的数据串并并串转换系统verilog实现,包含testbench,可以配置并行数量
373 0
|
算法 异构计算
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
310 0
基于FPGA的直接序列扩频通信verilog设计,包括汉明编译码,扩频解扩,同步模块以及testbench
|
开发工具 芯片 异构计算
Verilog 设计方法
Verilog 的设计多采用自上而下的设计方法(top-down)。即先定义顶层模块功能,进而分析要构成顶层模块的必要子模块;然后进一步对各个模块进行分解、设计,直到到达无法进一步分解的底层功能块。这样,可以把一个较大的系统,细化成多个小系统,从时间、工作量上分配给更多的人员去设计,从而提高了设计速度,缩短了开发周期。
163 1
|
算法 异构计算
Verilog HDL数据流建模与运算符
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
200 0
Verilog HDL数据流建模与运算符
|
算法 异构计算
Verilog HDL行为级建模
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
107 0
Verilog HDL行为级建模
Verilog 时序控制
Verilog 提供了 2 大类时序控制方法:时延控制和事件控制。事件控制主要分为边沿触发事件控制与电平敏感事件控制。
152 0