自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 数字IC前端与FPGA的一些区别

在实习的阶段发现,数字IC前端设计与FPGA设计除了使用软件不同之外,最大的区别就是IC设计十分注重功耗与面积,而FPGA设计在资源足够的情况下能够满足时序基本就可以了。比如,在写verilog时,在寄存器前要尽量加入使能位,这样综合工具会自动插入时钟门控,从而达到降低功耗的目的。

2024-06-22 10:17:56 107

原创 tcl学习之路(五)(Vivado时序约束)

那么仅对setup进行约束,则建立时间和保持时间关系同时向右移动参数-1个时钟周期,若加上对hold的参数约束,则保持时间关系会向左移动hold的参数个时钟周期,从而达到多周期约束的效果。虚拟时钟的约束不需要引脚。对于同频异相的时钟,在默认情况下时序工具会寻找与clk1相邻最近的clk2时钟上升沿,并以clk1和clk2相对时间最短(时序要求最高,即最坏情况)的一组时钟沿的时序路径进行分析。

2023-08-20 16:39:40 1659

原创 AMBA总线(AHB)

AHB传输由两个不同的部分组成,分别是一个时钟周期的寻址阶段和一个或多个时钟周期的数据阶段。AMBA AHB协议中定义了4、8和16拍突发,以及未定义长度的突发和单次传输,突发传输包括增量和回环。例如,如果主机只完成了四拍突发中的一拍,那么它必须使用未定义长度的突发来执行剩余的三次传输。那么当从机一直准备好时,主机就可以实现两级流水线式的传输操作,即在地址A传输DATA时,地址B已经可以传输地址了。(4)AHB decoder:AHB译码器用于对每次传输的地址进行译码,并为参与传输的从设备提供选择信号。

2023-08-09 15:55:30 273

原创 数字电路基础(MOS管)

CMOS由PMOS和NMOS组成,是一个反相器,其电路图如下所示。当In为1时,PMOS断开,NMOS导通,Out输出为0;当In为0时,PMOS导通,NMOS断开,Out输出为1。与非门电路的真值表和电路图如下图所示。可以简单记忆为上面两个PMOS并联,下面两个NMOS串联。或非门电路的真值表和电路图如下图所示。可以简单记忆为上面两个PMOS串联,下面两个NMOS并联。MOS晶体管的物理结构如下,由衬底和注入粒子的材质不同分为PMOS和NMOS。

2023-08-08 10:55:29 330

原创 tcl学习之路(四)(vivado设计分析)

具体地,BEL包括触发器、查找表、进位链、F7MUX、F8MUX和F9MUX(这里以UltraScale系列芯片为例,不难看出,这些基本单元都在SLICE内)。对于获取的对象,可以通过highlight_objects使其高亮,也可以通过show_objects使其在单独的窗口中呈现,还可以通过mark_objects对其进行标记。在进行设计分析、设计调试或描述约束时,都要寻找RTL代码所描述的对象,比如寄存器、存储单元、计算单元,或某个时钟、某个引脚。Rent反应了模块的互连度,该指数越高,互连越重。

2023-08-06 21:04:22 1069

原创 tcl学习之路(三)(vivado设计资源管理)

在project模式下建立工程,通常会有四个文件集:sources_1 constrs_1 sim_1 utils_1。它们包含了Vivado的设计资源,这些资源包括:HDL代码、网表文件、IP文件、BD文件(基于IP集成器,可以理解为CPU内核的IP核)、约束文件、辅助文件等。约束文件有五种,分别为:时序约束文件、管脚约束文件、调试约束文件、位置约束文件、针对某个模块的约束文件。其中,前两个为必须的约束文件。其获取属性和属性值的方法和1.1类似。

2023-08-04 10:59:31 324

原创 tcl学习之路(二)(vivado设计流程管理)

其中,get_files C:/report0.tcl -of [get_fileset utils_1]表示获取utils_1下的C:/report0.tcl文件。5.布局后功耗优化 power_opt_design(post_place_power_opt_design)扫描策略分为扫描综合策略和扫描实现策略。8.布线后物理优化 post_route_phys_opt_design。6.布局后物理优化 phys_opt_design 默认执行。扫描实现策略实际上就是扫描不同的-directive值。

2023-08-03 16:00:44 713

原创 tcl学习之路(一)(Vivado与Tcl)

其中,wish(windowing shell)比tclsh多了TK的命令。tkcon同样可以运行TK的命令。具体的不同就要在今后的学习中自行发现啦。进入activestate的官网,下载你喜欢的操作系统所需的安装包。这里我下载的是windows下的安装包。那么,安装后,我们可以在开始的菜单栏处看到三个应用程序。下面,我们在wish下,键入第一个tcl命令吧!

2023-07-26 09:48:13 284

原创 设计一个Glitch Free的时钟切换电路

对于异步时钟源clka和clkb,我们同样需要在各自的时钟下降沿进行选择的切换,不过,我们需要在各自时钟的上升沿采集切换信息,然后在时钟下降沿再进行时钟的切换。这样做的原因是避免亚稳态的产生,用来稳定电路。对于倍频时钟源clka和clkb,我们需要在各自的时钟下降沿进行选择的切换,这样就不会出现衔接很近的高低高毛刺(glitch)这种电平输出的情况。需要注意的是,在切换的过程中不能带有毛刺,因此不能使用简单的assign语句进行赋值。对于输入的时钟,我们可以分为以下两种情况,倍频和除倍频外的异步。

2023-07-08 21:09:01 751

原创 FPGA知识点

fpag知识点学习积累

2023-07-05 21:02:23 760

原创 蜂鸟v2 快速上手之如何仿真其他测试文件

蜂鸟v2 快速上手之如何仿真其他测试文件前言具体实现前言  在Ubuntu上进行仿真时,发现官方给的手册上似乎只能对add程序进行仿真,于是就去网上找一下资料,但是好像没有这方面的讲解。因此,在摸索过后写下这篇博客。  如果不知道如何配置Ubuntu,请看蜂鸟v2 快速上手之Ubuntu环境配置。具体实现  首先我们打开home下的e203_hbirdv2,然后进入vsim文件夹。经过编译,我们可以看到vsim文件夹是这个样子的:  之后,我们就打开Makefile(提前要下载好vim),如

2021-10-25 17:22:52 351

原创 蜂鸟v2 快速上手之Ubuntu环境配置

蜂鸟v2 快速上手之Ubuntu环境配置前言1.Ubuntu版本2.需要的工具3.下载e203_hbirdv2项目4.安装RISC-V GNU工具链5.编译6.安装iverilg7.安装gtkwave8.编译RTL9.仿真前言  在根据官方给的手册配置Ubuntu环境时,出现了一些问题。于是根据网上的一些文章,总结了配置步骤,如下。官方手册1.Ubuntu版本Ubuntu 18.042.需要的工具sudo apt-get install autoconf automake autotoo

2021-10-21 10:46:39 814 2

原创 介绍两款RISCV汇编模拟器

介绍两款RISCV汇编模拟器前言一、RARS二、emulsiV前言  初学汇编时,很多人都会对汇编指令的操作产生疑惑,不明白指令是如何运行的。  下面介绍两款RISCV汇编模拟器,帮助大家更好的理解汇编语言。一、RARS  打开RARS,我们可以看到如图所示的界面:  点击可以新建空白页,用于写代码。点击可以从文件夹中打开写好的程序。下面以一篇写好的冒泡排序代码为例:  点击进行编译。可以得到下图:  后点击可以运行程序。点击可单步调试。RARS下载地址:https://github

2021-10-04 16:37:45 8866 8

原创 计算机组成与设计(RISC-V)——处理器篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档计算机组成与设计(RISC-V)——处理器篇前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建

2021-10-03 19:55:21 1093

原创 Ubuntu中复制文件出现权限不够的问题

Ubuntu中复制文件出现权限不够的问题首先,打开终端,进入root模式,或者直接输入sudo nautilus。然后,在新打开的窗口操作文件即可。

2021-10-02 15:29:31 3778

原创 VMware共享文件夹——Ubuntu20.04

VMware共享文件夹——Ubuntu20.04前言一、在VMware上建立共享文件夹二、在Ubuntu上的操作前言 在ubuntu中配置riscv时,为方便下载riscv-tools工具,用到了共享文件夹。故写下如何配置共享文件夹。一、在VMware上建立共享文件夹首先,点击虚拟机,如下图:然后,进行如下操作:在添加好共享文件后,点击确定。二、在Ubuntu上的操作打开终端,输入如下指令:vmware-hgfsclient来查看共享文件夹是否设置成功。之后进入root模

2021-10-02 15:18:44 15554 6

原创 RISC-V编程——冒泡排序

RISC-V编程——冒泡排序刚接触RISCV指令集架构。下面是参考计算机组成与设计riscv版这本书写下的汇编代码。模拟器为rars 1.5版本。RV32#冒泡排序#两个循环达成#v,n保存在a0和a1中。i,j保存在s3和s4中。s5和s6用于复制保存v,n。#t0,t1,t2做临时寄存器.datav: .word 12,13,6,9,1,4,3,10,8.textsort: addi sp,sp,-20 sw ra,16(sp)

2021-09-24 10:30:36 5871 4

原创 RISC-V编程——复制数组内容

RISC-V编程——复制数组内容刚接触RISCV指令集架构。下面是参考计算机组成与设计riscv版这本书写下的汇编代码。模拟器为rars 1.5版本。RV32#将y[]中的值copy到x[]中.datax: .byte 0 .space 13 y: .byte '0','1','2','3','4','5','6','F','a','d','f',0 .space 13 .textstrcpy: la a0,x

2021-09-24 10:26:04 1707

转载 PID调节的方法

(1)一般来说,在整定中,观察到曲线震荡很频繁,需把比例带增大以减少震荡;当曲线最大偏差大且趋于非周期过程时,需把比例带减少(2)当曲线波动较大时,应增大积分时间;曲线偏离给定值后,长时间回不来,则需减小积分时间,以加快消除余差。(3)如果曲线震荡的厉害,需把微分作用减到最小,或暂时不加微分;曲线最大偏差大而衰减慢,需把微分时间加长而加大作用(4)比例带过小,积分时间过小或微分时间过大,都会...

2019-07-26 16:20:55 9435 1

原创 STM32蜂鸣器andMIDI音乐

蜂鸣器的实现与led差不多,只需要写出蜂鸣器初始化函数和发声函数,然后在main函数里加入他们即可。下面是main.c里的函数#include "stm32f10x.h" #include "sys.h"#include "delay.h"#include "led.h"#include "key.h"#include "buzzer.h"int main (void){ ...

2019-06-02 22:07:02 2716

原创 STM32按键控制灯

我想问一下各位老哥,写博客时怎么才能一次性把所有代码粘贴过来,而且不会没法操作。我现在粘贴的代码长了就会没法再编辑了。#include "stm32f10x.h" #include "sys.h"#include "delay.h"#include "led.h"#include "key.h"int main (void){ u8 a; RCC_Configurat...

2019-06-01 21:20:47 4142

原创 STM32呼吸灯

#include "stm32f10x.h" //STM32头文件#include "sys.h"#include "delay.h"#define LEDPORT GPIOB //定义IO接口#define LED1 GPIO_Pin_0 //定义IO接口void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; ...

2019-05-26 11:20:05 5644 3

原创 SMT32灯的点亮以及解决乱码问题

点灯程序#include "stm32f10x.h" #include "sys.h"#include "delay.h"#define LEDPORT GPIOB #define LED1 GPIO_Pin_0#define LED2 GPIO_Pin_1void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; ...

2019-05-21 00:04:55 301

原创 STM32之核心板

核心板图片核心板的组成电路原理图STM32F103C8T6原理图

2019-05-19 16:20:05 4114

原创 STM32之添加工程文件(参考洋桃电子视频)

添加工程文件步骤与添加固件库相似。1.点击右键,新建文件夹并取名字2.在文件夹中新建子文件夹并命名3.在子文件夹里建立文本文档,把名字改为xxx.c和xxx.h4.在keil软件中添加驱动程序文件点击新建然后添LED文件这样,我们就添加了名为Hardware的文件。...

2019-05-19 15:34:41 1913

原创 STM32之固件库的调用(参考洋桃电子视频)

STM32固件库中有许多函数,每个函数代表着不同的意义。在工程中,后缀为.s的是汇编语言编写的文件,后缀为.c的是C语言编写的文件。在整个工程中,只有Startup中的startup_stmf10x_md.s是汇编语言编写的,主要用来做单片机启动的代码。单片机启动后,所有的运行文件都是C语言编写的。————————————————————————————————在库里,有着太多的函数和定义...

2019-05-19 14:48:54 661 5

原创 STM32学习之编程语言的介绍(参考洋桃电子视频)

单片机编程语言汇编语言:低级语言直接操作底层寄存器执行效率最高不易移植不易编写和读懂学习难度大C语言:高级语言更偏向用户效率不如汇编易移植易编写和读懂学习难度小对比两种语言,我们更偏向于使用C语言!单片机C语言编程组成1.基本规范语句之间的分隔: ;括号:(表达式), (优先运算式), [数组地址], {语句}注释符://单句注释,/* */段落...

2019-05-19 14:05:24 1880

原创 计数器

#include <reg52.h>//此文件中定义了单片机的一些特殊功能寄存器typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f...

2019-05-16 21:11:09 153

原创 led流水灯

#include<reg52.h>#include<intrins.h>#define CFX_LED P2void Delay200ms(); //延时void main(){ ``unsigned char n; //定义nCFX_LED=0xfe;while(1) //死循环{Delay200ms();for(n=0;n&l...

2018-12-16 21:20:39 278

C语言实现模加模加和蒙哥马利模乘

C语言实现模加模加和蒙哥马利模乘

2023-07-05

RISC-V中文手册.pdf

RISC-V中文手册.pdf

2021-10-22

计算机组成与设计硬件软件接口risc-v中文.pdf

计算机组成与设计硬件软件接口risc-v中文版

2021-09-28

空空如也

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

TA关注的人

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