自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Overloaded ‘operator>>‘ must be a binary operator (has 3 parameters)

fix bug Overloaded 'operator>>' must be a binary operator (has 3 parameters)

2022-08-29 11:36:04 4339 1

原创 关于状态转换的一点想法

状态转换近期在实现一些个功能的时候总也会遇到状态紊乱的现象,在这里记录下自己解决的一种思路吧。其实要实现的功能是(1)人来的时候灯会开,(2)人走的时候灯会关,(3)人来是可以控制灯开,关,灯越亮,越暗(4)人走是可以控制灯开,关,灯越亮,越暗看起来很简单,但是其实实现起来很乱,个人思路是使用状态机来做使用onehot编码来实现,分为12个状态人来:10000人来按开灯:11000人来按关灯:10100人来按灯亮:10010人来按灯暗:10001人来的灯稳定状态:1ffff人走

2021-07-22 10:49:36 247

原创 STM32day6--中断和事件

文章目录一、二、1.一、二、1.

2021-07-18 15:04:27 2098

原创 STM32--GPIO汇总

1

2021-07-17 15:29:39 730

原创 STM32 #20: identifier “XX_IRQn“ is undefined

问题描述:标题也描述了报错了在进行中断使能的时候出现了这个问题原因分析:(1)报错可见是未定义,那么肯定是没有包含啥头文件,但是去看头文件却发现其实是已经包含了的,所以继续看下去(2)把对于的这个符号改为数字10,仍旧报错那么我们先进去函数看下(3)函数如下,需要传入一个中断类型的参数(4)查看这个中断类型定义(5)往上查看我们需要的IRQn找到了,但是要注意其是在下图条件下的也就是必须宏明是stm32f40_41xxx,才能使用,所以改下既可以#if defined (

2021-07-14 16:41:22 5784 1

原创 STM32day1--一些东西的整合

文章目录一、使用的器件二、一些术语的解释1. AMBA总线规范1.1AHB (Advanced High-performance Bus)1.2ASB (Advanced System Bus)1.3APB (Advanced Peripheral Bus)2.TIM(time interrupt module)3.SPI(Serial Peripheral Interface)3.1.MISO(Master Input Slave Output )3.2.MOSI(Master Output Slave

2021-07-13 00:06:25 610 1

原创 动手写CPU----day6验证逻辑和移位指令

目录1.验证逻辑指令2.验证移位指令1.验证逻辑指令inst_rom.S .org 0x0 .global _start .set noat_start: lui $1,0x0101 ori $1,$1,0x0101 ori $2,$1,0x1100 # $2 = $1 | 0x1100 = 0x01011101 or $1,$1,$2 # $1 = $1 | $2 = 0x01011101 andi $3,$1,0x0

2021-06-08 23:52:37 211

原创 动手写CPU----day5逻辑和移位指令实现

文章目录一、指令分类1. and,or,nor,xor( R )2.andi,ori,xori( I )3.lui( I )4.sll,srl,sllv,srlv,sra,srav( R )5.nop,ssnop,sync,pref ( R )二、指令实现1.一、指令分类1. and,or,nor,xor( R )格式均为 and rd,rs,rtrs:register sourcerd:register datart:register trans所以就是 rd<- rs and rt

2021-06-03 00:20:27 407

原创 Quartus Error (10028): Can‘t resolve multiple constant drivers for net XX

问题描述:在编写Verilog的时候出现了如上的问题原因分析:英文翻译过来就是:无法解析网络的多个常量驱动程序那么猜测应该是在多个always对同一个变量进行了赋值操作,导致信号冲突了,查看了代码后确实也发现了有这个问题解决方案:提示:这里填写该问题的具体解决方案:例如:新建一个 Message 对象,并将读取到的数据存入 Message,然后 mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();换成 m

2021-06-03 00:10:53 2804 1

原创 设计与验证Verilog HDL 笔记一

文章目录前言Chapter1--设计方法简介1.Verilog特点2.HDL设计与验证的流程3.Verilog编程思想Chapter2--Verilog语言基础1.Top-Down&Bottom-Up2.语法(1)描述方法(2)注释和标识符(3)模块和端口(4)编译指令和延时指令(5)逻辑值和常量(6)变量类型Chapter3--描述方法和设计层次Chapter4--RTL概念和RTL建模Chapter5--RTL设计和编码指导Chapter6--状态机一些常用缩写前言这里主要是写一些读后的笔

2021-05-26 00:09:59 1015

原创 CSAPP读书笔记--异或逆元

目录一、逆元1.逆元定义2.逆元举例二、布尔环1.布尔环定义2.布尔环的异或逆元3.异或逆元的技巧一、逆元1.逆元定义逆元素是指一个可以取消另一给定元素运算的元素2.逆元举例加法逆元 (-a)a+(-a)= 0乘法逆元 bab=1对于乘法逆元定义还不是很准确,详细的定义可以看乘法逆元二、布尔环1.布尔环定义其实这部分不懂也可以,重点是异或逆元布尔环2.布尔环的异或逆元异或逆元 aa^a = 03.异或逆元的技巧可以写出不需要temp操作的交换函数

2021-05-19 22:06:16 283

原创 动手写CPU----day4数据相关和ori指令优化

目录一、数据相关1.定义2.分类3.ori指令存在的数据相关二、指令优化1.相邻指令2.间隔一条指令3.间隔两条指令总结一、数据相关1.定义从名称其实就可以看出来其定义,就是指令在运行的时候前后的数据出现了相关联,或者说出现了后一条指令依赖于前一条指令的运算结果2.分类这里先给出设定:指令1:inst1指令2:inst2指令3:inst3指令4:inst4指令5:inst5RAW:inst2需要读取inst1的数据WAR:inst2提前写了inst1需要读取的数据WAW:ins

2021-05-16 00:22:57 293

原创 动手写CPU----day3MIPS编译环境建立

目录前言一、搭建Linux环境1.虚拟机的选择2.Linux版本的选择3.安装Oracle VM Virtual Box4.下载Ubuntu镜像5.安装Ubuntu--1可能出现问题1.VT-x is not available2.电脑未开启虚拟化5.安装Ubuntu--26.安装增强7.共享文件夹8.挂载共享文件夹二、MIPS编译环境介绍Linux开始编译可能出现问题mips-sde-elf-xx no such file or directory1.inst_rom.S2.inst_rom.o3.ram

2021-05-15 21:16:26 1014 1

原创 Ubuntu的快捷键

ctrl+h//显示隐藏文件ctrl+alt+t//调出终端

2021-05-14 23:32:26 161

原创 动手写CPU----day2实现基本五级流水和仿真

目录一、五级流水线实现1.大体框架2.ROM3.CPU二、MIPS架构1.MIPS2.实现ORI指令三、仿真结果1.先编写testbench文件,比较简单2.决定输入到ROM也就是存储器的指令3.仿真结果一、五级流水线实现1.大体框架大体上分为两部分,一个是我们的CPU,另一个是ROM,用来存储我们的指令,等待读取,需要分布实现这两个模块2.ROM这个模块很简单,只需要提供三个接口地址访问使能指令3.CPU这个模块就是我们五级流水的重点了,day1里已经介绍了大体每个阶段的工作了,

2021-05-13 23:49:39 842 1

原创 动手写CPU----day1 CPU架构和五级流水概念

目录一、CPU采用的流水线1.采用的是五级流水线2.为什么采取五级流水线?二、五级流水线1.取指1&2:取值和译码间的寄存器2.译码2&3:译码和执行间的寄存器3.执行3&4:执行和访存间的寄存器4.访存4&5:访存和回写间的寄存器5.回写一、CPU采用的流水线1.采用的是五级流水线取指令译码执行访存回写2.为什么采取五级流水线?因为每一个阶段运行的时间不一定一致,而为了处理速度的加快,采取了并行的方式,而此时不采取流水线的设计仍会使得处理速度放缓。理解

2021-05-12 22:17:52 867

原创 Verilog `include语句

目录一、`include定义二、`include使用方法1.`include "绝对路径"2.`include "相对路径"3.`include "文件名"4.`include "XX"后续不需要加上";"5.`include 多个文件6.`include 优先级问题一、`include定义可以使用这个语句进行文件包含,一般在被包含的文件里定义一些常用的task和`define方便后续的使用二、`include使用方法1.`include “绝对路径”这样写是万无一失的,但是会相对比较麻烦2.

2021-05-12 12:14:18 18228

原创 ModelsimSE使用指南

目录一、仿真前准备1.建立资源库前准备2.建立资源库altera_base_v3.建立资源库altera_device4.建立资源库二、开始仿真一、仿真前准备1.建立资源库前准备按照图中设置好后,在工程文件夹下会有,simulation文件夹,里面的modelsim文件夹内有很多文件2.建立资源库altera_base_v在modelsim文件安装位置新建两个文件夹打开modelsim新建library,如下,红框内加入刚刚创建的文件夹的路径点击compile,library选择a

2021-05-10 23:52:48 890 1

原创 Verilog高效工作

目录一、使用插件verilog-HDL二、使用插件Verilog_testbench三、使用插件Waveform Render四、使用插件Draw.io一、使用插件verilog-HDL然后安装插件ctag,安装好后使用ctrl+shift+p调出命令面板搜索Verilog:Instantiate Module,可以帮我们快速例化二、使用插件Verilog_testbench这个安装好后,再安装python,打开cmd输入pip install chardet安装好后就可以了自动

2021-05-08 22:53:26 776

原创 testbench文件输入输出类型

输入必须为reg,因为对于testbench来说输入其实是要输出给测试模块的,也就是相当于需要一个东西来存储,所以是register类型输出必须为wire,因为对于testbench来说输出其实是测试模块的输入,也就是需要通过wire来进行连接...

2021-05-08 00:12:33 1437

原创 HDLBits Exams/ece241 2014 q4

Given the finite state machine circuit as shown, assume that the D flip-flops are initially reset to zero before the machine begins.Build this circuit.其实本不应该记录这道题目但是自己踩坑了,所以还是记录下避免后续继续踩坑在这道题目里有两个点要进行注意初始化的时候是将Q输出全部置为0,那么我们可以将Q全部初始化为0,但是也可以将Z初始化为1,这是完

2021-05-02 16:24:06 1785 2

原创 ValueError: expected 2D or 3D input (got 4D input)

通过查看代码找到了问题所在是因为使用了不正确的BatchNorm函数原因分析我们可以看到官方文档对于BatchNorm1d的解释BatchNorm1d显然需要输入的是二维或者三维,但是我们有一个四维的输入那么我们可以查看BatchNorm2d的官方解释BatchNorm2d可以接受四维输入,解决方法根据上述分析,把BatchNorm1d改为BatchNorm2d即可...

2021-05-01 17:12:37 15290 2

原创 HDLBits Mux256to1v

题目如下要创建一个256选1的多路选择器Create a 4-bit wide, 256-to-1 multiplexer. The 256 4-bit inputs areall packed into a single 1024-bit input vector. sel=0 should selectbits in[3:0], sel=1 selects bits in[7:4], sel=2 selects bits in[11:8],etc.module top_module(

2021-04-30 19:44:16 1608 2

原创 HDLBits Mt2015 q4

题目如下该题其实有很多写法,但是我参考了别人的写法发现非常高效,同时也学到了新的代码思路,故做记录题解如下module top_module (input x, input y, output z); wire wire1,wire2,wire3,wire4; //--------------task A------------------- task A; input x,y; output z; z = (

2021-04-29 23:18:08 687

原创 Verilog Task&Generate

目录1.task2.generate1.tasktask主要用来实现一些简单的功能,方便多次调用,要明白task只是负责处理而不带有任何连线的功能同时有一些特性input和output不是强制拥有的task可以调用自身或者其他task调用task时候只能在always里task内部不可以使用always和initial,assigntask task_id //input&output //task function endtask2.generate目前对于

2021-04-29 23:15:07 702

原创 HDLBits Bcdadd100

该题是根据已经写好的十进制加法器(BCD one-digit adder)module来构建100位十进制加法器BCD one-digit adder如下module bcd_fadd { input [3:0] a, input [3:0] b, input cin, output cout, output [3:0] sum );分析显然可以根据二进制的100位加法器的思路,先进行初始化,但是此时我们无法使用简单的寄存器操作来实现功能,我们

2021-04-29 22:28:37 2771

原创 Verilog Feature

目录1.reduction2.integer3.parameter4.for loop1.reduction如果需要使用到同一个reg、wire内部元素的逻辑操作可以使用& a[3:0] // AND: a[3]&a[2]&a[1]&a[0]| b[3:0] // OR: b[3]|b[2]|b[1]|b[0]^ c[2:0] // XOR: c[2]^c[1]^c[0]2.integer用来表示有符号数,和reg作区分3.par

2021-04-29 22:01:41 137

原创 HDLBits Adder100i

按照题目要求要做一个100位的加法器思路如下要初始化好sum[0],cout[0],因为一开始cout是受到外来的cin的影响的,后续的cin[i]只受到cout[i-1]的影响,同时sum[i]也是同理使用在上个博客已经推导好的全加器的表示如下,写一个循环处理即可全加器s = a1^a2^cincout = a1&a2 | a1&cin | a2&cin题解如下module top_module( input [99:0] a, b, inp

2021-04-29 12:58:25 2671 4

原创 Verilog always和assign知识点

目录always--------------过程赋值语句1.输出类型reg2.时序和组合3.always @(*)(1)避免latch的方法4.always @(posedge clk)5.非阻塞赋值assign----------------连续赋值语句1.输出类型wire2.阻塞赋值以下为对比图always--------------过程赋值语句1.输出类型reg(1)always内部输出一般使用reg类型(2)reg在组合电路中和wire其实类似,在时序电路中为触发器样式2.时序和组合/

2021-04-28 21:02:22 3151

原创 Verilog 逻辑值

目录逻辑值1.逻辑12.逻辑03.逻辑x4.逻辑z逻辑值1.逻辑1高电平,对应VCC2.逻辑0低电平,对应GND3.逻辑x未知,可能为1、04.逻辑z高阻态,悬空,可以用来实现不需要比较的值的设定always @(*) begin casez (in[3:0]) 4'bzzz1: out = 0; // in[3:1] can be anything 4'bzz1z: out = 1; 4'bz1zz: out = 2;

2021-04-28 20:38:08 674

原创 HDLBits题解 addsub

实现一个可以加减的器件原理module top_module( input [31:0] a, input [31:0] b, input sub, output [31:0] sum); wire cin1,cout1,cout2; wire [15:0] sum1,sum2; wire [31:0] bout; assign bout = (sub == 0)?b:(~b); assign cin1 = sub;//mod.

2021-04-28 14:21:30 206

原创 HDLBits题解 Module cseladd

题目比较简单,这是单纯为了消除delay而设计的一种加法器的结构module top_module( input [31:0] a, input [31:0] b, output [31:0] sum); wire cout1,cout2,cout3; wire [15:0] sum1,sum2,sum3,sum4;//module add16 ( input[15:0] a, input[15:0] b, input cin, output[15:0] su.

2021-04-28 14:06:00 223

原创 全加器,半加器公式推演

目录加法器一、半加器二、全加器总结加法器首先定义几个表示,方便后续推演a1 :adder1a2 :adder2s :sumcin:carry incout:carry out一、半加器半加器是不带进位的一个加法器显然如果a1和a2相同s = 0,可以使用异或来实现//cin = 0s = a1^a2而对于cout只有在a1和a2均为1时候才会有值,所以就是cout = a1*a2二、全加器全加器是带进位输入的一个加法器了此时我们进行分析,当sum = 1的情

2021-04-28 13:53:39 3564

原创 Verilog Module知识点

目录Module1.连接信号到Module2.总结提示:以下是本篇文章正文内容,下面案例可供参考Module1.连接信号到Module//第二种写法是更加提倡的,因为这样会更加清楚对应关系module_a u_name(a,b,c);module_a u_name(.in1(a),.in2(b),.out(c));2.总结...

2021-04-27 20:48:41 1122

原创 Verilog Vector知识点

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Vector关于Vector的几个使用范例Vector关于Vector的几个使用范例1.以下会有2个3条的wire类型wire [2:0] wire1,wire2;2.以下会有4个3bits的registerreg [2:0] reg1 [3:0];3.注意字节序//以下只能由一种情况出现,不可同时出现reg [2:0] reg1;reg [0:2] reg2;4.注意取高位和取低位reg [7:0

2021-04-27 13:19:31 1021

原创 Quartus Error (10170): Verilog HDL syntax error XX near text “always“; expecting “end“

问题描述:在进行Verilog编程的时候出现了这个错误 原因分析:1.没有正确配对always 和 end2.一般回来搜索这个问题的都应该不是出现配对问题,应该是在if else语句里嵌套了always导致了这个错误。解决方案:1.如果是没有配对,那么就配对好always和end2.如果是ifelse嵌套了always,那么就只能改掉这种写法。...

2021-04-26 18:52:19 32083

原创 Quartus Error (275028)

Error (275028): Bus name allowed only on bus line – pin “KEY[3…0]”原因分析:简而言之就是总线型的线和非总线型的相连了,这样是无法正常工作的解决方案:用图中的线路进行连接

2021-04-25 23:48:16 5586 4

原创 Error: Expected more than 1 value per channel when training

Error: Expected more than 1 value per channel when training问题描述:在深度学习网络里使用了BatchNorm,但是出现输入的batch输入大小为1时候会出现这个错误原因分析:batchNorm,要求输入batch>1,所以会出现这个错误解决方案:方法一:只需要在test的时候加入network.eval()方法二:在dataloader里加上drop_last=True...

2021-04-21 23:15:40 241

空空如也

空空如也

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

TA关注的人

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