首页 > 其他分享 >HDLBits--Verilog习题记录3

HDLBits--Verilog习题记录3

时间:2022-12-30 15:55:13浏览次数:57  
标签:pedge temp -- always Verilog && input 习题 bit

3.Circuits---Sequential Logic---Latches and Flip-Flops----Detect an edge

问题描述

For each bit in an 8-bit vector, detect when the input signal changes from 0 in one clock cycle to 1 the next (similar to positive edge detection). The output bit should be set the cycle after a 0 to 1 transition occurs.

Here are some examples. For clarity, in[1] and pedge[1] are shown separately.

对于 8 位向量中的每一位,检测输入信号何时从一个时钟周期中的 0 变为下一个时钟周期中的 1(类似于上升沿检测)。 输出位应在 0 到 1 转换发生后的周期设置。

这里有些例子。 为清楚起见,in[1] 和 pedge[1] 分开显示。

 

 

问题分析:该题目中的pedge的功能是记录上一次的上升沿,为了区分两个不同的触发上升沿,可以使用两条always语句块。另外pedge每一位的结果的计算过程是0->1(上升沿),结果位为1,,即当某位的上一个状态是0,下一个状态为1,此时对应的pedge位为1。其余情况(0->0,1->1,1->0)对应的pedge位为0.通过简单观察知,计算表达式为:pedge=(pre_in)&~(now_in),或者用if来判断每一位也可。

代码解析:

module top_module (
    input clk,
    input [7:0] in,
    output [7:0] pedge
);
    reg [7:0]temp;

    always@(posedge clk)  temp=in;
       
    always@(posedge clk)   pedge = in&~temp;
    /*    
        begin
            pedge[0]=(temp[0]==0&&in[0]==1)?1:0; 
            pedge[1]=(temp[1]==0&&in[1]==1)?1:0;  
            pedge[2]=(temp[2]==0&&in[2]==1)?1:0;  
            pedge[3]=(temp[3]==0&&in[3]==1)?1:0;  
            pedge[4]=(temp[4]==0&&in[4]==1)?1:0;  
            pedge[5]=(temp[5]==0&&in[5]==1)?1:0;  
            pedge[6]=(temp[6]==0&&in[6]==1)?1:0;  
            pedge[7]=(temp[7]==0&&in[7]==1)?1:0;  
        end
        */
        
endmodule

 

标签:pedge,temp,--,always,Verilog,&&,input,习题,bit
From: https://www.cnblogs.com/yphasaki/p/17015089.html

相关文章

  • Java集合快速失败和安全失败机制
    快速失败机制是Java集合的一种错误检测机制,当遍历集合时,集合的结构进行了修改,可能会触发"fail-fast"机制Java.util包中所有集合都被设计为快速失败机制示例代码public......
  • ASEMI整流桥2W10,DB107S和KBP307封装参数对比
    编辑-ZASEMI整流桥2W10,DB107S和KBP307是很常见的型号,今天就把整流桥2W10,DB107S和KBP307的封装参数对比一小,以便大家在选型时有更好的参考。 2W10参数:型号:2W10封装:WOB......
  • 高并发应用设计
    一、高并发的说明和背景高并发解决的核心问题是在同一时间上有大量的请求过来,然后我们的系统要怎么抗住这些请求带来的压力。比如在线直播服务,同时有上百万甚至上千万......
  • 全文检索工具elasticsearch:第三章: Java程序中的应用
    搭建模块创建二个项目gmall-list-service的appliction.properties:server.port=8073spring.datasource.url=jdbc:mysql://localhost:3306/gmall?characterEncoding=......
  • pg_basebackup恢复:unrecognized configuration parameter "restore_command"
    问题描述:2022年最后一个工作日,时间过的真快,一晃又一年过去了,祝愿看到的各位元旦快乐。使用pg_basebackup进行pg的备份恢复,在恢复的过程中,配置文件添加恢复的参数,一直启动......
  • 13 刘欣晨 第十章实例+实战
    实验 一 项目名称:   创建并打开记录蚂蚁庄园动态的文件print("\n","="*10,"蚂蚁庄园动态","="*10)file=open('message.txt','w')print("\n即将显示···\n"......
  • 【转】自定义注解详细介绍
    原文:https://blog.csdn.net/xsp_happyboy/article/details/809874841注解的概念1.1注解的官方定义首先看看官方对注解的描述:Anannotationisaformofmetadata,......
  • 迭代(遍历数组)forEach
    1.forEach用法vararr=[13,2,2,5] varsum=0 //forEach用法:Array.forEach(function(数组当前项的值,数组当前项的索引值,数组本身){}) arr.forEach(function(valu......
  • 【spring-boot】配置基础目录与启动
    #POM.XML<!--继承父项目spring-boot-starter-parent的依赖管理--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starte......
  • 应用程序和桌面交付丨Parallels RAS功能简介
    简单、安全的混合远程办公解决方案,让用户能够通过任何设备或操作系统,远程访问应用程序和桌面。 1、创建理想的数字工作区,将您的应用和桌面从本地服务器集中到云......