草庐IT

基于vivado(语言Verilog)的FPGA学习(1)——了解viviado面板和编译过程

基于vivado(语言Verilog)的FPGA学习(1)——了解程序面板和编译过程每日废话:最近找实习略微一些焦虑,不想找软件开发,虽然有些C++和python基础(之前上课学的),但重点头疼的并不是语言,而是算法。想到本科阶段,有几次接触FPGA和MSP430时还是觉得很有意思,所以想往集成电路上转一下。(虽然当时还用的阿特尔(现被英特尔收购)的quartusⅡ工具,用的还是简单的VHDL和大量的时序集成电路。)去年一年回头又看了看Verilog的基本语法,趁着找实习的劲儿打算实操实操。该系列文章主要记录自己学习AMD赛灵思的zed-board板子,在这个过程中慢慢熟悉一下Verilog和

基于vivado(语言Verilog)的FPGA学习(1)——了解viviado面板和编译过程

基于vivado(语言Verilog)的FPGA学习(1)——了解程序面板和编译过程每日废话:最近找实习略微一些焦虑,不想找软件开发,虽然有些C++和python基础(之前上课学的),但重点头疼的并不是语言,而是算法。想到本科阶段,有几次接触FPGA和MSP430时还是觉得很有意思,所以想往集成电路上转一下。(虽然当时还用的阿特尔(现被英特尔收购)的quartusⅡ工具,用的还是简单的VHDL和大量的时序集成电路。)去年一年回头又看了看Verilog的基本语法,趁着找实习的劲儿打算实操实操。该系列文章主要记录自己学习AMD赛灵思的zed-board板子,在这个过程中慢慢熟悉一下Verilog和

Vivado的安装和Verilog的使用

一、实验目的      熟悉并掌握Verilog HDL和Vivado的使用二、实验环境     Vivado2021.2三、实验目标学习使用Verilog完成4选1多路选择器的设计和实现,并使用Vivado工具对设计进行仿真和分析验证。四、实验原理多路选择器(MUX)是一种在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,其原理图和真值表如下图所示。 五、实验内容5.1vivado的下载和安装为了完成4选1多路选择器,我们需要使用VerilogHDL语言就是编写和仿真,而最知名的软件就是vivado。为了安装vivado,首先需要登录它的官网:VivadoML概述可以看到如下界面

Vivado的安装和Verilog的使用

一、实验目的      熟悉并掌握Verilog HDL和Vivado的使用二、实验环境     Vivado2021.2三、实验目标学习使用Verilog完成4选1多路选择器的设计和实现,并使用Vivado工具对设计进行仿真和分析验证。四、实验原理多路选择器(MUX)是一种在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,其原理图和真值表如下图所示。 五、实验内容5.1vivado的下载和安装为了完成4选1多路选择器,我们需要使用VerilogHDL语言就是编写和仿真,而最知名的软件就是vivado。为了安装vivado,首先需要登录它的官网:VivadoML概述可以看到如下界面

Verilog 学习第五节(串口接收部分)

小梅哥串口部分学习part2串口通信接收原理串口通信接收程序设计与调试巧用位操作优化串口接收逻辑设计串口接收模块的项目应用案例串口通信接收原理在采样的时候没有必要一直判断一个clk内全部都是高/低电平,如果采用直接对中间点进行判断的话,很有可能出现中间点恰好电力失常等等,因此可以采集多次样本,其中样本数据频率高的值就是该段电平的值**基本原理:**采样**技巧是:**一位数据采多次,统计得到高电平出现的次数,次数多的就是该位的电平值。采样8次,0,1,2,3低电平,4,5,6,7为高电平**起始位检测:**通过边沿检测电路串口通信接收程序设计与调试波特率是指串口通信中,单位时间传输的二进制位数

Verilog 学习第五节(串口接收部分)

小梅哥串口部分学习part2串口通信接收原理串口通信接收程序设计与调试巧用位操作优化串口接收逻辑设计串口接收模块的项目应用案例串口通信接收原理在采样的时候没有必要一直判断一个clk内全部都是高/低电平,如果采用直接对中间点进行判断的话,很有可能出现中间点恰好电力失常等等,因此可以采集多次样本,其中样本数据频率高的值就是该段电平的值**基本原理:**采样**技巧是:**一位数据采多次,统计得到高电平出现的次数,次数多的就是该位的电平值。采样8次,0,1,2,3低电平,4,5,6,7为高电平**起始位检测:**通过边沿检测电路串口通信接收程序设计与调试波特率是指串口通信中,单位时间传输的二进制位数

Verilog系统函数

Verilog系统函数前言一、$width(一)简介(二)$width参数(三)例子二、Specify参数三、$display(一)简介(二)格式说明(三)例子1.例12.例2四、$monitor(一)格式(二)功能(三)$monitoron/$monitoroff五、$time/$realtime(一)$time1.简介2.例子(二)$realtime1.简介2.例子参考前言在VerilogHDL语言中每个系统函数和任务前面都用一个标识符$来加以确认。这些系统函数和任务提供了非常强大的功能。在ModelSim仿真时添加系统函数利于调试。一、$width(一)简介$width函数用于检查信号脉

Verilog系统函数

Verilog系统函数前言一、$width(一)简介(二)$width参数(三)例子二、Specify参数三、$display(一)简介(二)格式说明(三)例子1.例12.例2四、$monitor(一)格式(二)功能(三)$monitoron/$monitoroff五、$time/$realtime(一)$time1.简介2.例子(二)$realtime1.简介2.例子参考前言在VerilogHDL语言中每个系统函数和任务前面都用一个标识符$来加以确认。这些系统函数和任务提供了非常强大的功能。在ModelSim仿真时添加系统函数利于调试。一、$width(一)简介$width函数用于检查信号脉

基于verilog的CNN搭建缓存图片数据浅析

前言在编写基于verilog的的卷积神经网络实现时,需要定义一个滑窗,并与对应位置的图像像素值相乘再相加,实现单点的卷积运算,具体的操作如图1所示。图1卷积的实现过程正文分析我们采用FPGA的RAM的进行图片(假设图片为5×5,滤波器的大小为3×3)数据缓存,由于图像的数据是按行展开串行送入,但是在进行卷积计算时,我们至少需要同时有3行的数据参与运算,所以需要定义数组为3的window_in和window_out用于RAM中图片缓存的输入与输出。wire[7:0]window_in[0:3-1];wire[7:0]window_out[0:3-1];在Vivado简单双端口RAM使用,问题探析

基于verilog的CNN搭建缓存图片数据浅析

前言在编写基于verilog的的卷积神经网络实现时,需要定义一个滑窗,并与对应位置的图像像素值相乘再相加,实现单点的卷积运算,具体的操作如图1所示。图1卷积的实现过程正文分析我们采用FPGA的RAM的进行图片(假设图片为5×5,滤波器的大小为3×3)数据缓存,由于图像的数据是按行展开串行送入,但是在进行卷积计算时,我们至少需要同时有3行的数据参与运算,所以需要定义数组为3的window_in和window_out用于RAM中图片缓存的输入与输出。wire[7:0]window_in[0:3-1];wire[7:0]window_out[0:3-1];在Vivado简单双端口RAM使用,问题探析