【USTC】verilog 习题练习 46-50

2024-01-25 01:12
文章标签 练习 习题 50 46 verilog ustc

本文主要是介绍【USTC】verilog 习题练习 46-50,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

46 上升沿检测

题目描述

在实际应用中,我们经常需要对某个信号的边沿进行检测,并以此作为后续动作的触发信号(例如电脑键盘的某个按键被按下或者被松开,在电路中则对应的是电平的变化)。
设计一个电路,包含clk信号、1bit输入信号in和1bit输出信号out,当in信号从0变为1时(相对于clk,该信号变化频率很慢),out信号在in信号上升沿附近输出1个时钟周期的高电平脉冲,其余时刻都为0,如下图所示

提示:如果在top_module中定义了reg,且out的结果与reg相关,可以想象,在仿真的开始阶段,reg的值是未定义的,那么out的波形也是未定义的,为了避免此情况的error, 可以使用initial初始化这些reg, 使初始的out 为0

输入格式

时钟clk, 被检测信号1bit in

输出格式

检测结果 1bit out

module top_module(input clk,input in,output out);reg q1,q2;
assign out = q1 & ~q2;
initialbeginq1 =0;q2 =0;endalways @(posedge clk) beginq2 <= q1;q1 <= in;
end
endmodule

47 双边沿检测

题目描述

根据上升沿检测的思路,设计一双边沿检测电路,即在输入信号的上升沿和下降沿附近时刻,各输出一个高电平脉冲,如下图所示

输入格式

1位时钟信号clk和1位输入信号in

输出格式

一位信号out

module top_module (input clk,input in,output out
);reg q1,q2;assign out = (q1&~q2)|(~q1&q2);always @(posedge clk) beginq2 <= q1;q1 <= in;end
endmodule

48 计数器

题目描述

计数器是一种比较简单且常用的时序逻辑电路,下面电路图是一个从0到15循环计数的累加计数器,每个时钟的上升沿计数值加一,采用异步复位方式,高电平有效,复位值为0,该电路是由一个4bit加法器和一个4bit寄存器构成,波形如下所示。

试编写Verilog代码,完成上述电路功能。

输入格式

时钟clk,异步复位信号reset

输出格式

4位的计时器q

注意:这题需要clk和reset判断

module top_module (input clk,input reset,      // 异步复位,高电平有效,复位值为0output reg [3:0] q);// your codealways @(posedge clk or posedge reset) beginif(reset)q <= 0;elseq <= q+1;endendmodule

49 十进制计数器

题目描述

设计一个十进制计数器电路,从1到10循环计数,采用同步复位方式,高电平有效,复位值为1,如下面波形图所示

输入格式

一位线网型变量clk,时钟信号; 一位线网型变量rst,复位信号

输出格式

三位寄存器信号q, 计数器结果

module top_module (input 				clk		,	//时钟信号input 				reset	,   //同步高电平有效复位信号output reg 	[3:0] 	q			//计数结果
);
// 请用户在下方编辑代码always @(posedge clk) beginif(reset)q <= 1;else if( q==4'd10)q <= 1;elseq <= q+1;end//用户编辑到此为止 
endmodule

50 带使能的计数器

题目描述

创建一带有使能信号的递减计数器,当使能信号有效(高电平)时,从15到5循环递减计数,每个周期减1,使能信号无效时,计数值保持不变,电路采用同步复位方式,高电平有效,复位值为5,电路结构如下图所示

输入格式

时钟信号clk, 同步复位信号reset, 使能信号en

输出格式

4bit计数信号q

module top_module(input clk,input reset,input en,output reg [3:0]q);always @(posedge clk) beginif(reset)q <= 5; //高电平有效,复位值为5else if(en)if( q <= 5)  // q=5 时q <= 15;   // q重新赋值15elseq <= q - 1;   //否则,每次q减1else q <= q;end
endmodule

这篇关于【USTC】verilog 习题练习 46-50的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/641633

相关文章

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

RabbitMQ练习(AMQP 0-9-1 Overview)

1、What is AMQP 0-9-1 AMQP 0-9-1(高级消息队列协议)是一种网络协议,它允许遵从该协议的客户端(Publisher或者Consumer)应用程序与遵从该协议的消息中间件代理(Broker,如RabbitMQ)进行通信。 AMQP 0-9-1模型的核心概念包括消息发布者(producers/publisher)、消息(messages)、交换机(exchanges)、

【Rust练习】12.枚举

练习题来自:https://practice-zh.course.rs/compound-types/enum.html 1 // 修复错误enum Number {Zero,One,Two,}enum Number1 {Zero = 0,One,Two,}// C语言风格的枚举定义enum Number2 {Zero = 0.0,One = 1.0,Two = 2.0,}fn m

MySql 事务练习

事务(transaction) -- 事务 transaction-- 事务是一组操作的集合,是一个不可分割的工作单位,事务会将所有的操作作为一个整体一起向系统提交或撤销请求-- 事务的操作要么同时成功,要么同时失败-- MySql的事务默认是自动提交的,当执行一个DML语句,MySql会立即自动隐式提交事务-- 常见案例:银行转账-- 逻辑:A给B转账1000:1.查询

html css jquery选项卡 代码练习小项目

在学习 html 和 css jquery 结合使用的时候 做好是能尝试做一些简单的小功能,来提高自己的 逻辑能力,熟悉代码的编写语法 下面分享一段代码 使用html css jquery选项卡 代码练习 <div class="box"><dl class="tab"><dd class="active">手机</dd><dd>家电</dd><dd>服装</dd><dd>数码</dd><dd

【附答案】C/C++ 最常见50道面试题

文章目录 面试题 1:深入探讨变量的声明与定义的区别面试题 2:编写比较“零值”的`if`语句面试题 3:深入理解`sizeof`与`strlen`的差异面试题 4:解析C与C++中`static`关键字的不同用途面试题 5:比较C语言的`malloc`与C++的`new`面试题 6:实现一个“标准”的`MIN`宏面试题 7:指针是否可以是`volatile`面试题 8:探讨`a`和`&a`

day-50 求出最长好子序列 I

思路 二维dp,dp[i][h]表示nums[i] 结尾,且有不超过 h 个下标满足条件的最长好子序列的长度(0<=h<=k),二维数组dp初始值全为1 解题过程 状态转换方程: 1.nums[i]==nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h]+1) 2.nums[i]!=nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h-1

014.Python爬虫系列_解析练习

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

第六章习题11.输出以下图形

🌏个人博客:尹蓝锐的博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 1、题目要求: 输出以下图形

【C++ Primer Plus习题】12.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "String.h"using namespace std;int main(){String s1(" and I am a