思辰FPGA学习:基于FPGA的分频器学习

这篇博客主要介绍了基于FPGA的分频器学习,包括分频器的基本概念和如何实现偶数分频,特别是当分频系数为2的整数次幂时,可以通过计数器的高位输出实现。文中提供了测试代码并展示了仿真结果。
摘要由CSDN通过智能技术生成

本博客内容同步微信公众号《FPGA的故事》,大家可以关注此公众号!

基于FPGA的分频器学习

分频器介绍

在数电系统设计中,分频器的应用非常的广泛,它的功能就是对高频率的信号进行分频。分频器的本质上是加法器的演变,其计数值由分频系N=fin/fout决定,分频器输出的不是普通的计数值,而是根据分频系数对输出信号高低电平进行控制。分频器常用于数字电路中的时钟分频,用以得到较低的时钟信号、选通信号、中断信号等。分频器在公司的笔试题是必考题,这里我们主要介绍几种分频器,偶数分频、奇数分频。

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如

偶数分频器

偶数分频器是指分频系数为偶数,分频系数为N=2n(n=1,2,3....)。例如,输入的时钟信号为f,那么偶数分频器输出的时钟信号为F=f/2n(n=1,2,3....)。

####分频系数为2的整数次幂的分频器
对于分频系数是2的整数次幂的分频器,我们可以把计数器的对应指数位输出即可。例如,对输入时钟信号进行4分频,计数器记录4个数据只需2bit,只要把计数器的最高输出就是4分频。
在这里插入图片描述

名称 方向 位宽 说明
clk input 1 工作时钟
reste input 1 复位信号
div output 1 输出分频信号
module clk_even_div(
										input 			clk,
										input 			reset,
										output reg 	clk_div=0
    								);
reg [2:0]cnt_div=0;
//实现计数器计数功能
always @(posedge clk)
	begin
		if(reset)begin
			cnt_div<=3'd0;
			clk_div<=1'b0;
		end
		else if(cnt_div==3'd6)begin
			cnt_div<=3'd0;
			clk_div<=~clk_div;
		end
		else begin
			cnt_div<=
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,尤其是通过Pygame库,你可以创建一个简单的2D游戏环境让小车按照预设的形状路径移动。通常,这涉及到路径规划、图形处理以及事件驱动编程。以下是一个基本步骤: 1. **安装Pygame**:首先需要安装Pygame库,可以使用pip命令 `pip install pygame`。 2. **设计小车和形状对象**:定义小车类和表示形状路径的类,比如矩形、圆形等。每个形状类可能有一个表示其边界的数据结构。 3. **创建形状数组**:为小车定义一个形状数组,存储各个形状对象,如形状列表或生成器,使得小车可以在它们之间切换路径。 4. **更新位置**:在游戏循环中,检查当前形状并更新小车的位置。如果下一个形状是在右侧,那么增加小车的x坐标;如果是向下,则增加y坐标,依此类推。 5. **绘图与碰撞检测**:绘制小车和路径形状,并检查是否碰到边界或新的形状。碰到新形状时,更新形状数组。 6. **用户输入与控制**:可以添加键盘控制,让用户手动改变形状顺序,或者设置自动切换形状的规则。 7. **事件处理**:处理像按键按下或释放这样的事件,用于控制小车的行为或切换路径。 **示例代码概要**: ```python import pygame class Car: def __init__(self, x, y): self.rect = pygame.Rect(x, y, 30, 30) def move(self, shape_path): next_shape = shape_path.pop(0) if shape_path else None # 根据下一个形状调整位置 class Shape: def get_bounds(self): # 返回形状的边界信息 # 初始化Pygame... shapes = [Rectangle(), Circle(), ...] # 创建各种形状 car = Car(0, 0) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False car.move(shapes) # 更新小车位置 # 渲染背景,小车和形状 # 检查碰撞,处理事件... pygame.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值