自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 基于EP4CE10F17C8的以太网数据回环(UDP)

目录一、理论知识(部分来自野火、正点原子资料)(一)TCP/IP五层模型(二)以太网(自底向上描述)1.物理层2.MAC子层3.网络层(IP、ICMP、ARP)4.传输层(TCP、UDP)二、编程实现(一)思路(二)设计(自顶向下)1. 顶层2. 接收模块3. 发送模块3. CRC校验模块(三)注意事项一、理论知识(部分来自野火、正点原子资料)(一)TCP/IP五层模型TCP/IP(Transmission Control Protocol/Internet Protocol),供已连接网络的计算机进

2022-04-07 11:11:20 5778 6

原创 RS锁存器和RS触发器(个人理解)

目录一、RS锁存器二、RS触发器三、两者总结和区一、RS锁存器RS锁存器,电平触发,随输入随时变化,可由 或非门组成 或 与非门组成。这是数电教材上的或非门组成的RS锁存器如图可见输出是随输入随时变化的,和时钟无关真值表RSQ00Q11X011100可以看到(一)当R端可S端都为0时,它是保持上次输出不变的,这也是它的锁存特性(二)当R端和S端都为1时,就会让电路进入一个危险的状态,推导可知,此时输出 Q 和 Q非 均为0,但

2022-01-24 11:06:32 26666 6

原创 Quartus Timing Analyzer简单使用

目录前言正题Timing Analyzer基础知识使用前言首先得有建立时间Tsetup和保持时间Thold的概念还要有两者和Clock Skew(时钟偏移)Tco(寄存器发送数据时需要的“最小持续(更新)时间”,个人理解为寄存器入口到出口的连线和逻辑延时)Tdata(两级寄存器之间的逻辑延时)的关系借用大神的图(两级寄存器余量示意图)建立余量保持余量实际就是几个时间的组成和逻辑关系式,细看还是容易看懂的,就是有时候可能会忘,但看一次明白一次。正题Timing Analyzer基础知

2021-12-29 10:07:15 2956 1

原创 状态机实现售货机 fpga

目录原理实现原理售货机:就像平常在宿舍楼看到的那种售货机,展示着各种商品,一个屏幕上可以点击购买,然后你给钱,最后售货机出货。我这里用的板子有6个数码管,4个key,4个led,1个蜂鸣器我的想法:一共2个商品初始状态下显示商品名和价格,如下A 1.5 B 2.0按下key0时进入选择状态,该状态下,按一次key2表示购买一个A,按下一次key1表示购买一个B,并且数码管会显示你购买商品的总金额在选择状态下再次按下key0进入支付状态,此时数码管显示你购买商品的总金额和你已经支付的金额,当你

2021-10-14 19:34:59 732

原创 状态机实现数字时钟 fpga

目录原理实现原理数字时钟:我这里实现的是数码管显示,外加设置时间功能和闹钟功能,闹钟就是蜂鸣器,没有其他的功能。状态机:这里就不具体介绍了,上一篇已经介绍过了。实现设计:1)按键消抖模块2)控制模块(实现状态机,产生数码管显示数据,输出蜂鸣器信号,主要模块)3)数码管驱动模块4)蜂鸣器驱动模块按键消抖就不粘贴复制了,上一篇博客很清楚了,驱动控制模块别看代码多,大部分粘贴复制再改下信号名我认为逻辑还是比较清晰了分三个功能,正常显示时间(时间计数器),设置时间(再定义一组寄存器,结

2021-10-14 19:13:33 1236 11

原创 状态机实现按键消抖 fpga

目录状态机按键消抖实现状态机意义:硬件设计中讲究并行设计,verilog描述的电路大多也都是并行的,但在实际的工程应用中,我们往往需要让硬件实现一定顺序的工作。这就需要用到状态机。状态机:Finite State Machine 有限状态机,简称FSM状态机使用场景:简单的顺序执行,如计时等功能,用计数器即可,如果控制流程复杂,且每个状态的跳转是乱序的,使用状态机有利于设计出高可靠性的系统。状态机四要素:现态、次态、输入、输出(意思请顾名思义)状态机模型:1)摩尔型:输出仅依赖

2021-10-14 17:35:49 1807

原创 uart串口通信 fpga实现

目录原理实现原理将接收的串行数据转换为并行数据,缓存起来,需要的时候将并行数据转化为串行数据输出。大概就是三个部分:接收、缓存、输出uart数据格式起始位 0数据位 通常6/7/8位停止位 1实现三个模块接收模块控制模块(缓存模块)发送模块另外有个波特率文件 cfg.v1、接收模块接收模块输入串行数据,输出并行数据和输出标志给控制模块代码注释很清楚,这里就不解释了。`include "cfg.v"module uart_rx ( input

2021-10-12 20:29:22 592 2

原创 dds信号发生器 fpga实现

目录原理实现原理dds信号发生器:以rom为核心,外围控制输出地址,达到输出不同频率和相位或者幅度的结构。(这里不考虑ad转换和滤波)这里以正弦信号为例,用专用软件或者matlab生成一组正弦信号值的文件,这里使用quartus自带的ip核,将文件读入rom。剩下的就是控制输出地址来达到改变频率、相位和幅度的目的。实现这里分为3个模块一个模块实现按键消抖一个模块实现dds具体功能一个模块为rom例化按键消抖模块使用2个按键,模块消抖后输出高电平有效module key_debounc

2021-10-12 20:03:47 836

原创 分频器 fpga

目录原理实现原理将输入时钟进行分频,如输入50M时钟,分频为50/5M时钟或50/4时钟。利用计数器,计满预定时钟则翻转输出,达到分频效果。实现1)偶数分频这里给出两种方法计数分频系数module divider #(parameter DIV = 4) ( input clk , input rst_n , output dout );reg [7:0] cnt;//分频计数器wire add_cnt;wire end_cnt;//

2021-10-11 19:55:56 527

原创 异步fifo fpga实现

目录原理实现原理异步fifo:先进先出的存储单元,读写使用不同的时钟不同于ram,fifo不能指定地址读写两个难点:1)读写时钟同步可能产生亚稳态,如果不加以处理,可能让亚稳态在整个fifo系统中传递,导致严重的错误。2)空满标志的确定解决:1)二级寄存加格雷码转换2)由格雷码的特性确定空满标志读写指针的定义在考虑空满状态的情况下,需比地址多定义一位,用以判断空满实现代码参考的网上大佬的代码个人感觉代码非常精简module my_fifo #(parameter DATA_WI

2021-10-08 14:42:26 274

原创 呼吸灯 fpga实现

目录原理实现原理呼吸灯:让led灯在固定时间由暗变亮,再由亮变暗,循环往复原理:假定使led灯在2s内由暗变亮,再由亮变暗,这里采用的办法就是设置占空比,将2s分为100份,每份20ms,在每一个20ms到来,就将占空比加大或缩小1/100,达到呼吸的效果。实现代码这里定义2个计数器一个20ms计数器,一个2s计数器20ms计数器周期为100_000次,1/100就是1000次,则每20ms到来,占空比preset_duty加或减100,定义一个flag,每2s翻转一次,由flag控制占空比

2021-10-08 14:29:51 796

原创 数码管时钟显示按键控制 fpga实现

目录原理实现原理数码管原理并且该数码管是共阳极,所以段选低电平有效,片选低电平有效段选共用8个引脚实现思路:分三个模块实现:1)按键消抖 :按键消抖2)计数器模块:产生需要的时钟信号数据3)数码管驱动:将输入的数据转换为段选、片选信号1)按键消抖:这里按键数量用参数代替,增加可重用性用同步打拍方式检测下降沿用计数器自检测到下降沿开始计数20ms输出信号为计数器计数完成后输入取反的值module key_debounce #(parameter KEY_W = 3,TIME_2

2021-09-28 19:04:58 3709 1

原创 蜂鸣器播放音乐 fpga实现

目录原理实现原理蜂鸣器分为有源蜂鸣器和无源蜂鸣器,即以有无震荡源分类,有震荡源直接通直流电就可发生,无震荡源则需要通震荡波才能发声。这里介绍无源蜂鸣器播放音乐的方法。思路:利用计数器产生pwm波形根据乐谱设置震荡周期给蜂鸣器赋值注:一个音符响一个周期不在人耳的感知范围内,一般一个音符需要重复200以上个周期可以清楚的听到注:音符周期计算:时钟频率 / 音符频率 = 音符周期数或者 音符周期 / 时钟周期实现这里实现的《两只老虎》三个计数器cnt0 计数音符周期cnt1 计数

2021-09-28 13:38:25 4842 2

原创 线性反馈移位寄存器lfsr基于fpga实现

目录lfsr介绍ie型lfsree型lfsrlfsr介绍线性反馈移位寄存器lfsr,常用于数字电路中产生伪随机数,我们给寄存器赋的初值称为种子,并且种子非零,lfsr下一时刻的输入为是由整个移位寄存器值的某些位做异或运算的结果。n位lfsr,至多产生2^(n-1)种序列(因为异或门中,全零异或为0,同或门中,全1为0,不会产生新序列)影响下一个状态的比特位叫做抽头。移位寄存器链的多个抽头用作XOR或XNOR门的输入。理想抽头序列来自反馈多项式,参考ie型lfsrie型lfsr,即内接异或门或

2021-09-23 16:53:38 912

原创 凸优化基础知识

目录一、计算几何是研究什么的?二、计算几何理论中(或凸集中)过两点的一条直线的表达式,是如何描述的三、凸集是什么? 直线是凸集吗?是仿射集吗?四、三维空间中的一个平面,如何表达?五、更高维度的“超平面”,如何表达?六、什么是“凸函数”定义?什么是Hessian Matrix 矩阵? 如何判别一个函数是凸函数?f(x)=x^3 函数是凸函数吗?七、什么是“凸规划”?如何判别一个规划问题是凸规划问题。下例是凸规划问题吗?一、计算几何是研究什么的?计算几何研究几何模型和数据处理的学科,讨论几何形体的计算机表示

2021-07-11 20:43:39 565 1

原创 基于TensorFlow和Keras的卷积神经网络实现猫狗数据集分类实验

目录一、制作数据集环境:anaconda3详细安装配置:https://blog.youkuaiyun.com/cungudafa/article/details/104573389一、制作数据集首先需要原始数据百度网盘链接:https://pan.baidu.com/s/1Cahz_6zOlX2voH0TaATLiw提取码:2dgw解压在合适的地方打开解压文件原始目录如下,再将两个压缩包解压在当前目录打开Jupyter Notebook1、图片分类下面original_dataset

2021-06-11 16:18:26 934 2

原创 基于FPGA的VGA显示

目录VGA原理代码VGA原理VGA概念什么是VGA?VGA不是用来显示的那块屏幕,而是用来传输信号的接口。VGA全称是Video Graphics Array,即视频图形阵列,是模拟信号的一种视频传输标准。VGA接口描述VGA接口是一种D型接口,上面共有15针孔,分成三排,每排五个,其中比较重要的是3根RGB彩色分量信号和2根扫描同步信号HSYNC和VSYNC针,其引脚编号图如下所示:VGA显示扫描原理像素点rgb显示操作VGA的过程就是给你一块有横纵坐标范围的区域,区域上的每一个坐标点就

2021-05-26 16:27:32 1174

原创 基于Verilog HDL的数字秒表

目录代码结果工具:quartus18.1 lite代码 module biao_v(clk,reset,pause,msh,msl,sh,sl,minh,minl); //其中msh为百分秒的十位,msl为百分秒的个位,sh为秒的十位,sl为秒的个位,minh为分的十位,minl为分的个位 input clk,reset,pause;//时钟,复位,暂停 output [3:0] msh,msl,sh,sl,minh,minl;//输出 reg [3:0] msh,msl,sh,sl,minh

2021-05-23 11:53:29 1915 4

原创 HLS编程入门

目录一、HLS简介二、入门级HLS程序(点亮led灯)(一)仿真(二)烧录一、HLS简介HLS是高层综合(High level Synthesis)是将C或者c++语言编译为FPGA能够读懂和运行的RTL级别的语言与VHDL或者verilog的比较优点:用高级语言完成期望在硬件电路上实现的功能,更加抽象和容易实现。缺点:尽管是用高级语言描述实现在硬件电路上实现功能,但会有很多限制,例如动态分配内存等函数或定义的禁用,也有很多不足,例如循环的优化始终是个大难题。HLS关键技术1、将高级语言转化

2021-05-22 16:55:38 5301

原创 基于 NIOSII 软核的流水灯实验

目录一、硬件部分设计1、建立quartus新项目2、进行 Qsys 系统设计二、软件部分设计1、启动 Nios II SBT2、创建工程3、修改程序4、编译工程三、运行项目1、配置FPGA软件:Quartus Prime 18.1、Platform Designer、Nios II SBT硬件:PC 机、DE2-115 FPGA 实验开发平台一、硬件部分设计1、建立quartus新项目2、进行 Qsys 系统设计1)打开 Platform Designer2)保存文件至项目文件夹3)双

2021-04-24 19:37:06 518

原创 verilog在线练习

目录一、门电路1、与门2、或非门3、同或门二、组合电路1、7420芯片2、二对一多路复用器3、半加器三、时序电路1、D触发器2、同步复位D触发器3、四位二进制计数器一、门电路1、与门代码module top_module( input a, input b, output out );assign out=a&&b;endmodule仿真图2、或非门代码module top_module( input a, inp

2021-04-16 18:43:39 821

原创 quartus下1位全加器的设计(两种方式)

目录半加器仿真全加器仿真硬件实操环境:quartus19.1精简版基本操作参考:https://blog.youkuaiyun.com/xianyudewo/article/details/115518238这里选择的芯片型号半加器仿真1、原理图文件这里用到的元件 and2 xor input output2、启动综合分析这里保存为half_adder.bdf可能会出现Error: Top-level design entity is undefined办法:将这个Top-level en

2021-04-08 17:36:37 3597 1

原创 quartus设计D触发器仿真

目录一、创建工程二、创建原理图文件三、创建波形文件环境:quartus19.1精简版与配套modelsim与组件一、创建工程工程路径与名字选择空项目直接下一步选择自己需要的芯片直接下一步这是创建工程的详细信息,点完成这是刚刚创建好工程的页面二、创建原理图文件利用组件创建出下列原理图(nand2 input output)启动综合分析这里会提示你保存原理图文件没有出现红色提示就是没错,可以进行下一步查看硬件电路图(用rtl viewer)

2021-04-08 15:13:50 1925

原创 quartus19精简版与modelsim安装

目录官网下载地址quartus安装安装modelsim官网下载地址https://www.intel.cn/content/www/cn/zh/software/programmable/quartus-prime/download.html进入链接后选择精简版这两个都要下载,对应版本的quartus和modelsim这个选择自己需要的版本下载,注意将这里下载的组件与quartus安装包放一个文件夹下需要注册账号流程也比较简单 里面真实的信息只需要填对邮箱,其余的随便填,完了之后会往邮箱

2021-04-08 13:33:39 1249

原创 梯度下降法

目录一、原理二、梯度下降法求解一般步骤三、手工求解四、用excel进行梯度下降法求解五、线性回归一、原理梯度下降主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。梯度概念:1、微分:即高数中的微分2、梯度:多变量微分(偏导)的一般化梯度原理:1、批量梯度下降法批量梯度下降法在计算优化函数的梯度时利用全部样本数据,n表示总的样本数计算公式:迭代公式:2、小批量梯度下降法该方法在计算优化函数的梯度时利用随机选择的一部分样本数据计算公式:迭代公式:3、随机梯度下降法

2021-04-05 10:31:13 2685

原创 Python矩阵运算

目录一、Excel线性规划三、python实现线性规划一、Excel线性规划1、创建数据源2、规划三要素①决策变量各媒体使用次数x1,x2,x3,x4,x5②目标函数咨询电话量Z=600x1+800x2+500x3+400x4+300x5③约束条件电视广告费用不超过3万元1000x1+2000x2<=30000电视广告次数至少进行20次x1+x2>=20广告总费用不超过4万元1000x1+2000x2+400x3+1000x4+100x5<=40000被告知

2021-04-01 17:46:56 205

原创 拉格朗日方法求最优解

目录一、问题二、拉格朗日手工求解三、拉格朗日编程求解一、问题二、拉格朗日手工求解1、拉格朗日函数2、偏导解变量3、带入三、拉格朗日编程求解代码# 导入包from sympy import *# 设置变量x,y,z,k = symbols('x,y,z,k')a,b,c=symbols('a,b,c')f = 8*x*y*zg = x**2/a**2+y**2/b**2+z**2/c**2-1#构造拉格朗日函数L=f+k*g#求导dx = diff(L, x)

2021-04-01 17:33:14 6305

原创 Quartus的D触发器设计与仿真

目录一、创建工程二、创建原理图文件创建波形文件一、创建工程参考https://blog.youkuaiyun.com/xianyudewo/article/details/115350524需要修改的二、创建原理图文件利用相应的部件构造出如下电路图启动分析与综合,确保无错,有错就更改电路图,直到无错为止查看硬件电路图创建波形文件设置参数效果输入clk信号设置D信号 选择部分区域设置为1最后就是时序波形仿真...

2021-03-31 16:53:00 778

原创 Quartus2安装使用

目录安装注册使用安装点击exe文件执行一直下一步 中间有选择安装路径,自己选择合适的路径安装注册2.破解器的使用1、将Quartus_13.0_x64破解器.rar文件放在 ******\quartus\bin64 下面,并且解压将文件放到该目录下,运行可执行文件2、查找到 sys_cpt.dll 文件,然后双击此文件3、在安装目录下方生成一个“license”文件,点击“保存”打开这里选择复制选中区域的一组值文本方式打开license.dat将其中的xxxxxxx改为复制的值

2021-03-31 15:20:21 958 2

原创 鸢尾花数据集的线性多分类、可视化显示与测试精度实验

目一、鸢尾花数据集简介二、逻辑回归三、线性多分类一、鸢尾花数据集简介鸢尾花数据集是由Sir Ronald Fisher引入的经典多维数据集,可以作为判别分析的样本该数据集包含Iris花的三个品种(Iris setosa, Iris virginica and Iris versicolor)各50个样本,每个样本还有4个特征参数(分别是萼片的长宽和花瓣的长宽,以厘米为单位)二、逻辑回归1、逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分

2021-03-26 18:57:16 584

原创 xacro模型和ArbotiX仿真

目录xacro模型xacro模型在urdf机器人模型文件目录中cd ~/catkin_ws/src/mbot_description/urdfmkdir xacrocd xacrosudo gedit mbot_base.xacro mbot_base.xacro<!--声明xml文件及版本--><?xml version="1.0"?><robot name="mbot" xmlns:xacro="http://www.ros.org/wiki/xacr

2021-03-21 21:06:08 120

原创 gazebo 仿真

前提是已经安装好ros打开gazebo打开gazebo终端命令gazebo

2021-03-21 19:52:02 913

原创 线性回归练习

目录excel做数据分析高尔顿数据集分析Anscombe四重奏数据集分析excel做数据分析设置和下载组件https://jingyan.baidu.com/article/219f4bf75afd0dde442d382f.html.excel做回归分析,相关数据意义**Multiple R **:x和y的相关系数r,一般在-1~1之间,绝对值越靠近1则相关性越强,越靠近0则相关性越弱;高尔顿数据集分析首先准备好数据集Anscombe四重奏数据集分析数据集1数据集2数据集3数据集

2021-03-20 18:19:09 2388

原创 ros通信方式示例

目录ros工作空间和功能包话题通信服务通信ros工作空间和功能包** 所有的ROS程序,包括我们自己开发的程序,都被组织成功能包** ROS的功能包被存放在工作空间。** 因此,在我们写程序之前,第一步是创建一个工作空间以容纳我们的功能包。ROS工作空间就是linux下的一个目录,创建ROS工作空间就是创建一个linux目录(默认情况下我们创建名为catkin_ws的工作空间),只是需要按照ROS的规范在这个目录下添加一个src的子目录,然后执行一个ROS的命令。具体参见:https://blo

2021-03-20 17:15:46 274

原创 ROS入门

ROS简介安装小海龟示例简介ROS是什么?ROS是一个适用于机器人的开源的元操作系统。其实它并不是一个真正的操作系统,其底层的任务调度、编译、寻址等任务还是由Linux操作系统完成,也就是说ROS实际上是运行在Linux上的次级操作系统。但是ROS提供了操作系统应用的各种服务(如:硬件抽象、底层设备控制、常用函数实现、进程间消息传递、软件包管理等),也提供了用于获取、编译、跨平台运行代码的工具和函数。ROS产生、发展和壮大的原因和意义?ROS的发展逐渐的趋于成熟,近年来也逐步是面对着Ubun

2021-03-02 22:36:46 131

转载 基于jsp的学生管理系统

目录任务简介需求分析系统设计代码实现任务简介多用户管理:用户分管理员,学生网页界面设计:利用HTML和CSS实现客户端前台设计类间关系的设计、数据库表格设计数据库数据的增(录入)、删、改、查等基本功能JSP中Requests Response内置对象的使用;数据库表格结构的生成(SQL脚本)前台JS校验设计DOM技术实现开发环境与技术:IDEA、Java 语言、JDK、MySQL需求分析本学生成绩管理系统分为管理员登录,学生登录,其中管理员可以实现增加学生成绩信息,删除学生成绩信

2021-01-08 15:39:58 2540

原创 STM32的PWM和DAC练习

目录PWM简介用STM32F103输出一路PWM波形PWM简介PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调 制,简称脉宽调制。用STM32F103输出一路PWM波形采用定时器方法1)使能定时器及端口时钟,并设置引脚复用器映射RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);GPIO_PinRema

2021-01-07 20:31:57 339

原创 HTTP和MQTT协议实践

目录一、读取指定城市的天气预报信息二、给指定手机号码发送验证码三、mqtt服务器与客户端服务器搭建客户端连接mqtt服务器软件:eclipse一、读取指定城市的天气预报信息打开eclipse,新建class,写入代码代码package tianqi;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;imp

2020-12-29 19:04:50 791

原创 STM汇编程序设计

目录简单汇编程序hex文件分析汇编程序闪烁灯简单汇编程序代码 AREA MYDATA, DATA AREA MYCODE, CODE ENTRY EXPORT __main__main MOV R0, #10 MOV R1, #11 MOV R2, #12 MOV R3, #13 ;LDR R0, =func01 BL func01 ;LDR R1, =func02 BL func02 BL func03 LDR LR, =func01 LDR P

2020-12-29 18:34:53 303

原创 计算机网络实验报告

目录一、验证性实验二级目录三级目录一、验证性实验1.ipconfigipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息/all执行ipconfig /all可以看到当前我的IP地址,子网掩码Subnet Mask,网关Gateway,当前网络号为10.160.0.0下面是另一台电脑ipconfig的信息,其网络号为172.20.10.0,显然可见,两台电脑处于不同子网2.pingPING (Packet Internet

2020-12-22 20:02:22 7045 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除