<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sinply6的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ASimpleMan1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ASimpleMan1]]></copyright><item><title><![CDATA[【SpinalHDL】3.奇淫技巧]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060225</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060225</guid><author>ASimpleMan1</author><pubDate>Tue, 06 Feb 2024 17:35:35 +0800</pubDate><description><![CDATA[在SpinalHDL中采用this.setDefinitionName达到module名称的目的，请看scala代码。这样就会将SpinalHDL生成的“zz”前缀替换为“tmp”啦，简单又使用的技巧就此获得。最终module名称为"sum_stage0_n2_w8"，和SpinalHDL的设定一致。]]></description><category></category></item><item><title><![CDATA[【SpinalHDL】2.数据类型SpinalEnum]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060138</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060138</guid><author>ASimpleMan1</author><pubDate>Tue, 06 Feb 2024 17:30:00 +0800</pubDate><description><![CDATA[重点生成Verilog时，SpinalConfig的使用，其中enumPrefixEnable = false不生成变量前的前缀，enumGlobalEnable = true将enum默认生成的是define宏，withoutEnumString()则不生成仿真时的string描述，对比下就知道了，下面默认的生成结果。其中object Enum对象实现的基本的SpinalEnum类的定义，注意其中的编码方式，为自定义的编码方式。类Demo Enum初始化一个寄存器enum，并将其初始化为a。]]></description><category></category></item><item><title><![CDATA[【SpinalHDL】1. Getting Started]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060099</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060099</guid><author>ASimpleMan1</author><pubDate>Tue, 06 Feb 2024 17:27:08 +0800</pubDate><description><![CDATA[继承自Component组件的module_xxx类定义了一个类似verilog中module的模块，内部为module的具体的实现，这里暂时不做具体的阐述；最后object对象定义的main函数为scala语言的入口函数，SpinalVerilog语句实现了将Scala语句转换为Verilog语句的功能。当然也可以不指定版本，每次都使用最近的SpinalHDL版本，build.sbt可以做如下的修改。其中verision为build.sbt的版本号，一般不需要修改；以一个简单的例子做说明吧。]]></description><category></category></item><item><title><![CDATA[【Scala 】3. 类和对象]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060054</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060054</guid><author>ASimpleMan1</author><pubDate>Tue, 06 Feb 2024 17:25:06 +0800</pubDate><description><![CDATA[scala是一种面向对象的函数，其中一部分就是scala语言中支持类的实现。子类继承父类的函数的实现，不再声明返回值类型，采用extends关键字；但是面积的实现方式覆盖父类的实现，采用override关键字。上面的例子中声明一个类继承字Shape类，内部变量进行拓展。类中包含实现面积的计算方法。]]></description><category></category></item><item><title><![CDATA[【Scala】 2. 函数]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060013</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136060013</guid><author>ASimpleMan1</author><pubDate>Tue, 06 Feb 2024 17:23:02 +0800</pubDate><description><![CDATA[scala运算符、if …两部分和C语言类型，这里不再赘述，这里从for循环开始讲讲scala和c/c++的不同之处。和c语言类似，基本可以作为参考，智能在于可以直接不写访问值和return关键字实现，下面举例说明。scala中主要包含to和until两个关键字，下面分别看看两者的用法，看例子就行了。此时调用时若需要采用缺省值，变量b可以不赋值。该结果和C语言中使用的方式是一致的。包含return值和返回值类型。包含return关键字。]]></description><category></category></item><item><title><![CDATA[【Scala】1. 变量和数据类型]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136059932</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/136059932</guid><author>ASimpleMan1</author><pubDate>Tue, 06 Feb 2024 17:19:15 +0800</pubDate><description><![CDATA[不加f关键字，则必定是Double的类型的数据，只有加了在浮点数后加了f关键字后，才表示数据为单精度浮点数，即是32bit的浮点数类型。println函数中添加f关键字起到格式化字符串打印的效果，这个和c语言不同，同时还可以添加s关键字执行特定的表达式。（2）在Scala中，Char关键字表示无符号的16bit数据，数据范围为0~65535。与f类似，若要表示数据为长整型(long)的数据，需要在后面加上L或l关键字作为补充。可以不添加返回值类型，scala自动推断，下面输出的结果是一致的。]]></description><category></category></item><item><title><![CDATA[15.基础实验（4）vga显示图像动态移动]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/112384571</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/112384571</guid><author>ASimpleMan1</author><pubDate>Fri, 08 Jan 2021 21:51:11 +0800</pubDate><description><![CDATA[vga显示图像动态移动
一、实验内容
实现vga显示中心200x200的方块动态移动。
二、系统框图
分辨率保持为640x480保持不变，200x200方块在屏幕上移动，总共有5个状态，将3个状态列出，绘制如下框图。

state1：200x200的方块在显示屏上正常移动。
state2：200x200的方块到达显示屏的底部，下一步开始从下往上移动。
state3：200x200的方块到达显示屏的右部，下一步开始从右往左移动。
三、设计分析
简单来说，就是200x200的方块移动到显示屏的边缘时变换方向，可]]></description><category></category></item><item><title><![CDATA[14.基础实验（3）vga显示]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/112259639</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/112259639</guid><author>ASimpleMan1</author><pubDate>Wed, 06 Jan 2021 10:41:17 +0800</pubDate><description><![CDATA[基础实验（3）vga显示
一、实验内容
实验要求
实现vga接口显示，可以将需要发送的数据显示屏幕上。
实验环境
实验平台：特权同学Cy4_Altera开发板
实验软件：Quartus 18.1 + Modelsim 10.7
主控芯片：EP4CE6E22C8
二、系统框图

VGA实现的接口时序，即hsync和vsync都为高有效（其中一种）。
不论是vsync，还是hsync，都是在addressable video区域输出有效的数据，而hsync是在front_porch后出现信号。
三、设计分析
根]]></description><category></category></item><item><title><![CDATA[13.基础实验（2）异步串口收发的实现]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/112251421</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/112251421</guid><author>ASimpleMan1</author><pubDate>Tue, 05 Jan 2021 19:47:08 +0800</pubDate><description><![CDATA[异步串口收发的实现
一、实验内容
实现串口接收来自串口调试助手发送的数据，然后直接通过自己实现的串口程序将数据发送出去
二、系统框图

三、设计分析
从串口接收开始，这个比较容易实现。参考链接串口通信协议

不考虑奇偶校验位，一个字节的串口的发送过程，包含1个低电平的起始位，一个高电平的停止位，中间8个数据位，且数据位是从低位发送到高位。只要保证前一刻为高电平，下一时刻为低电平，则可以确定开始串口开始接收数据，因为不发送数据时，即空闲状态下相应的电平为高电平。
从起始位开始，检测串口的数据的接收。延时一个半]]></description><category></category></item><item><title><![CDATA[12.基础实验（1）按键检测]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/111501201</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/111501201</guid><author>ASimpleMan1</author><pubDate>Mon, 21 Dec 2020 22:12:55 +0800</pubDate><description><![CDATA[基础实验（1）按键检测
按键检测实际上是一个很简单的实验，关键在于画出时序图。


设计分析
时序图出来了，就搞定了。时序图如下。
时序图设计的代码如下。
{ signal: [
  { name: "key",  wave: "h..........lh.l.h..l...................................h.l.h..l.h.......", period:0.2 },
  { name: "key_cnt",  wave: "=..==============", dat]]></description><category></category></item><item><title><![CDATA[11.SCCB接口时序的实现]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/111241643</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/111241643</guid><author>ASimpleMan1</author><pubDate>Tue, 15 Dec 2020 22:02:53 +0800</pubDate><description><![CDATA[练习8 SCCB接口时序的实现
SCCB接口时序与IIC协议基本一致，是其简化版本，且SCCB协议兼容IIC协议。
基本时序介绍
最常用的时序是3线控制数据传输的方式，基本时序图如下。

具体的控制信号，则是先发送起始信号，再发送数据，最后发送停止信号。
其中，3相数据传输又是最常用的方式。
起始信号为scl有效时，sda拉低。

停止信号为scl有效时，sda拉高。

正确的有效数据是scl为高电平时，sda保持不变，从而正确地读取数据，正好在时钟的上升沿读取有效数据。

3相数据发送，即先发送器件地址，]]></description><category></category></item><item><title><![CDATA[10.时序图绘制软件WaveDorm的使用]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/108921294</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/108921294</guid><author>ASimpleMan1</author><pubDate>Sun, 04 Oct 2020 18:59:17 +0800</pubDate><description><![CDATA[时序图绘制软件WaveDorm的使用

参考路径：

Hitchhiker 的 WaveDrom 指南

github链接 



信号的定义

首先，从官方的参考开始分析。
   官方的第一个例子如下。代码是这样的。

{ signal: [{ name: 'Alfa', wave: '01.zx=ud.23.45' }] }



获得的结果呢，是这样的。





我们可以据此呢，得到一些答案。

绘制成如下的表格。一个符号代表的是一个周期。



时钟的定义

还是官方的例子。

代码...]]></description><category></category></item><item><title><![CDATA[9.SDSoC 调试技巧]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/108921236</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/108921236</guid><author>ASimpleMan1</author><pubDate>Sun, 04 Oct 2020 18:47:11 +0800</pubDate><description><![CDATA[SDSoC 调试技巧

SDSoC整合了HLS、Vivado和SDK三个软件，使得整个硬件加速变得简单，那么整个系统绝对不会显得很简单，这其中必然包括一些有效的调试技巧，下面一一进行介绍。

下面的所有技巧都可以在ug1028文件中找到，可以仔细看看这篇文章。

软硬件资源评估

首先，在SDx Setting中，选中Estimate performance这个box

 

然后，build project



编译完成后，可以看到如下的效果。



上面的是硬件资源的评估暂用情况。点击其中的cl...]]></description><category></category></item><item><title><![CDATA[8.caffe环境搭建与使用]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/105533781</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/105533781</guid><author>ASimpleMan1</author><pubDate>Wed, 15 Apr 2020 14:22:16 +0800</pubDate><description><![CDATA[caffe环境搭建与使用
一、Ubuntu17.10版本以后caffe环境搭建
​	ubuntu17.10版本以后，caffe环境就嵌入了相应的环境中，不再需要独立编译和配置。具体可以参考以下的链接。
​	参考链接：
ubuntu18.04安装caffe
Ubuntu18.04安装caffe(简单 快捷)
​	具体说来，就是
apt-get install caffe-cpu 

​	或者
apt...]]></description><category></category></item><item><title><![CDATA[7.STM32 HAL库实现UART的不定长度DMA数据传输（二）]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/103902249</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/103902249</guid><author>ASimpleMan1</author><pubDate>Thu, 09 Jan 2020 11:18:23 +0800</pubDate><description><![CDATA[STM32 HAL库实现UART的不定长度DMA数据传输（二）



目录

     STM32 HAL库实现UART的不定长度DMA数据传输（二）

一、开发环境

二、项目需求

三、项目分析

1.参考链接

2. 实现分析

四、练习步骤

1.UART、DMA、时钟等基本配置

2.不定长数据接收实现

3.测试结果

五、软件调试

六、总结与讨论...]]></description><category></category></item><item><title><![CDATA[6.STM32 HAL库实现UART的不定长度DMA数据传输（一）]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/103892534</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/103892534</guid><author>ASimpleMan1</author><pubDate>Wed, 08 Jan 2020 15:46:58 +0800</pubDate><description><![CDATA[STM32 HAL库实现UART的不定长度DMA数据传输（一）

一、开发环境


	软件环境：keil、STM32CubeMX
	
	
	硬件环境：STM32F407VGT7
	
二、项目需求


	实现UART的不定长度DMA数据传输
	
	
	要求使用HAL库
	
三、实现步骤

1.STM32CubeMX软件的基本配置

（1）下载接口配置


...]]></description><category></category></item><item><title><![CDATA[5.FPGA边沿检测及亚稳态的消除]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/102418439</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/102418439</guid><author>ASimpleMan1</author><pubDate>Tue, 08 Oct 2019 23:21:21 +0800</pubDate><description><![CDATA[FPGA边沿检测及亚稳态的消除

一、FPGA边沿检测的实现

  边沿检测主要包括上升沿和下降沿的检测

  1.原理

  上升沿是指从低到高的电平转变，而下降沿是指从高到低的电平转变

  上升沿                下降沿

  那么如何判定上升沿和...]]></description><category></category></item><item><title><![CDATA[4.去除毛刺的一种方法]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/101756790</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/101756790</guid><author>ASimpleMan1</author><pubDate>Mon, 30 Sep 2019 11:09:51 +0800</pubDate><description><![CDATA[去除毛刺的一种方法

在学习FPGA的过程中，我们一直在进步，也一直在同一个问题上有所突破。对于去除毛刺这个问题，我们一直在寻求更好、更简便的方式。最近，得一良方，现写出来进行分享。


	说明
	
首先，需要说明的是，对于脉冲小于一个时钟周期的毛刺，只要不在数据的采集时刻（一般是在时钟的上升沿）进行干扰，可以...]]></description><category></category></item><item><title><![CDATA[3.Quartus II FIFO IP的使用——以SCFIFO为例]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/90604984</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/90604984</guid><author>ASimpleMan1</author><pubDate>Mon, 27 May 2019 18:16:24 +0800</pubDate><description><![CDATA[3.Quartus II FIFO IP的使用——以SCFIFO为例

参考链接

FPGA基础学习(2) -- FIFO IP核(Quartus)：https://www.cnblogs.com/rouwawa/p/7066635.html

对altera的FIFO读写操作深入研究：https://www.cnblogs.com/estop-jfw/...]]></description><category></category></item><item><title><![CDATA[2.cycloneIII系列FPGA下载模式的配置]]></title><link>https://blog.youkuaiyun.com/ASimpleMan1/article/details/89684405</link><guid>https://blog.youkuaiyun.com/ASimpleMan1/article/details/89684405</guid><author>ASimpleMan1</author><pubDate>Mon, 29 Apr 2019 22:44:08 +0800</pubDate><description><![CDATA[2.cycloneIII系列FPGA下载模式的配置

参考链接

FPGA下载电路设置 AS 和JATG：https://www.cnblogs.com/LJWJL/archive/2013/03/12/2956678.html

FPGA上电加载时序介绍：http://tech.oneyac.com/article/detail/51677.html
...]]></description><category></category></item></channel></rss>