自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(426)
  • 资源 (12)
  • 收藏
  • 关注

原创 移位寄存器

移位寄存器在时钟的触发沿,根据其控制信号,将存储在其中的数据向某个方向移动一位。移位寄存器也是数字系统的常用器件。图 Fig. 48 中是一个由4个D触发器构成的简单向右移位寄存器,数据从移位寄存器的左端输入,每个触发器的内容在时钟的正跳变沿(上升沿)将数据传到下一个触发器。图 Fig. 49 是一个此移位寄存器的序列传递实例。

2022-10-18 21:07:18 5373

原创 存储器的初始化

Listing 20 是一个存储器实例,实例中为此存储器设置了三个输出端口,请分析存储器结构和工作过程,查看此存储器的RTL图,检查存储器的输入输出和存储体的结构,并分析其三个输出端的结构的不同。初始化存储器时可以选择存储器的部分单元进行初始化,其他单元不初始化。如,假设存储器ram有8个存储单元,下面的初始化表示只对存储器的$0 ~ $5 号单元进行初始化,这也是可以的。假设存储器ram有8个存储单元,下面的初始化试图对存储器的0~8号单元,共9个单元进行初始化,这是 不可以 的。

2022-10-18 20:02:47 582

原创 二维数组定义存储器

在Verilog HDL中,可以用二维数组定义存储器。例如,假设需要一个32字节的8位存储器块,即此存储器共有32个存储单元,每个存储单元可以存储一个8位的二进制数。存储单元为 memory_array [0] ~ memory_array [31],每个存储单元都是8位的存储空间。在读取时,可以用memory_array [13][3:0]直接读取第13号单元的低4位。

2022-10-18 19:47:02 912

原创 位运算(按位与、按位或、异或)

即 0 | 0= 0 , 1 | 0= 1 , 0 | 1= 1 , 1 | 1= 1。即 0 ^ 0=0 , 0 ^ 1= 1 , 1 ^ 0= 1 , 1 ^ 1= 0。运算规则:只有两个数的二进制同时为1,结果才为1,否则为0。运算规则:参加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。即 0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1。运算规则:参加运算的两个数只要两个数中的一个为1,结果就为1。

2022-10-18 14:57:58 1019

原创 Verilog语法一元约简运算符

首先将操作数a的第一位和第二位进行与计算,将得到的计算结果进行和第三位与计算,依次类推,直到最后一位。今天在工程中遇到了单目运算符,一查才知道是verilog基本操作符,又称一元约简运算符。同理,或,非的计算。

2022-10-18 09:13:30 536 1

原创 实验:优先编码器

优先编码器允许同时在几个输入端有输入信号,即输入不止一个 1 ,编码器按输入信号排定的优先顺序,只对同时输入的几个信号中优先权最高的一个进行编码。我们可以利用for循环语句可以很方便地实现优先编码器,一个4-2优先编码器的示例如下所示。Makefile代码。

2022-10-17 22:01:34 1245

原创 实验:译码器

【代码】实验:译码器。

2022-10-17 21:39:30 221

原创 实验:多路选择器设计流程,卡诺图

根据表达式画出其逻辑电路如下图所示。

2022-10-16 21:45:19 610

原创 验证中,如何提取功能点(思想很重要)

【代码】验证中,如何提取功能点(思想很重要)

2022-10-14 00:03:13 855

原创 验证中的随机种子(seed),VCS

【代码】验证中的随机种子(seed),VCS。

2022-10-13 23:25:50 3808

原创 vcs软件自带用例和使用手册位置

/home/xxx/tools/Synopsys/vcs_2018.9/vcs/O-2018.09-SP2/doc/examples

2022-10-13 17:15:08 2259

原创 VCS编译选项+仿真选项

vcs -help。

2022-10-13 17:10:50 1446

原创 最简单VCS工程,加法器测试

该工程包括:full_adder.v、full_adder_tb.v、timescale.v和Makefile四个文件。命令:make simulate。命令:make compile。

2022-10-13 16:28:31 290

原创 OBJ/lib/saverestoreobj/obj-linux64/kernel.o:(.text+0xc41): undefined reference to `pthread_yield‘

原因是:vcs_mx_vO-2018.09-SP2/linux64/lib/vcs_save_restore_new.o 中的pthread_yield已在最新的glibc放弃使用了。

2022-10-13 15:51:21 1472 6

原创 芯片开发所使用的仿真器和模拟器

芯片开发所使用的模拟器和仿真器

2022-10-10 19:15:05 594

原创 编写可读可维护代码,如何编写好代码

随着项目规模增长, 需要分成多个文件来管理// inst.c # define MSIZE 1024 // BUG: 这里忘了改 assert(PC < MSIZE);512// inst.c # define MSIZE 1024 // BUG: 这里忘了改 assert(PC < MSIZE);1024// inst.c # define MSIZE 1024 // BUG: 这里忘了改 assert(PC < MSIZE);

2022-10-10 19:01:45 268

原创 头文件ifndef define,头文件重复引用

仿真头文件被包裹多次,所使用。

2022-10-10 18:51:52 116

原创 自制freestanding运行时环境+指令集模拟器

设计一个面向RISC-V程序的简单freestanding运行时环境。

2022-10-09 22:48:54 335

原创 变量不使用int64_t和int8_t?

A: C语言标准规定, 有符号数溢出是undefined behavior, 但无符号数不会溢出。Q: 为什么不使用int64_t和int8_t?

2022-10-09 22:02:22 117

原创 C语言:实现定义行为和ABI(语法分析思路很好)

不同编译器对c语言手册未指定的行为,很可能有不同的编译结果。不符合c语言定义行为,但是c标准没有定义,违背标准会出现什么事情。通过定义int8_t;int16_t;int32_t;int64_t;uint8_t;uint16_t;uint32_t;uint64_t;实现参数位宽不变的可移植。通过#include 库实现。

2022-10-09 17:59:09 404

原创 从c语言到二进制可执行文件

流程:预处理 -> 编译 -> 汇编 -> 链接 -> 执行预处理 = 文本粘贴工作命令:gcc -E a.c,会产生a.c的预处理文件,发现会把stdio.h(/usr/include/stdio.h)粘贴到预处理文件中。方法: 阅读工具的日志(查看是否支持verbose, log等选项)给出了搜索头文件的顺序:通过man gcc并搜索-I选项可得知头文件搜索的顺序。#define max(a, b) ((a) > (b) ? (a) : (b))预处理阶段只进行文本粘贴, 不求值预处理会去掉a.

2022-10-09 16:53:33 2055

原创 E: Unable to locate package clang

不知道什么时候,/etc/apt/sources.list文件是空的了,之前是连接清华大学的镜像(https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/)。将上面对号部分,复制到/etc/apt/sources.list内,重新执行命令:sudo apt install clang,问题已解决。查看版本命令:lsb_release -a。linux系统:ubantu。

2022-10-09 15:50:41 1979

原创 如何进行跨时钟域设计

左侧写,右侧读,而且读写时钟频率不一样。特点:相邻比特只有一个bit发生变化,避免毛刺。例如:4’b0111变化到4’b1000,假设中间变化经过1111和0100,那么在读fifo的中间过程,有毛刺会产生各种奇怪信号,而使用格雷码则不会。

2022-10-01 00:07:13 326

原创 门控时钟介绍

功耗是芯片设计中非常重要的一个指标,研究表明,在芯片功耗的组成中,有高达40%甚至更多是由时钟树消耗掉的。这个结果的原因也很直观,因为这些时钟树在系统中具有最高的切换频率,而且有很多时钟buffer,而且为了最小化时钟延时,它们通常具有很高的驱动强度。此外,即使输入和输出保持不变,接收时钟的触发器也会消耗一定的功耗。而且这些功耗主要是动态功耗。减少时钟网络的功耗消耗,最直接的办法就是在不需要时钟的时候,把时钟关掉。这种方法就是所谓的。

2022-09-30 11:33:35 1278 3

原创 静态时序分析和动态时序分析区别

静态时序分析(STA)通过方式分析每条路径的延时。在综合后使用。

2022-09-30 10:31:03 1044

原创 阻塞赋值(=)与非阻塞赋值(<=)

阻塞赋值,顾名思义即在一个 always 块中,后面的语句会受到前语句的影响,具体来说就是在同一个always 中,一条阻塞赋值语句如果没有执行结束,那么该语句后面的语句就不能被执行,即被“阻塞”。也就是说 always 块内的语句是一种顺序关系,这里和 C 语言很类似。符号“=”用于阻塞的赋值(如:b = a;)阻塞赋值“=”在 begin 和 end 之间的语句是顺序执行,属于串行语句。

2022-09-30 10:16:59 1471

原创 什么是亚稳态,如何消除?

亚稳态亚稳态是指时序电路中触发器无法在某个规定的时间段内到达一个可以确认的状态。影响:亚稳态是指触发器无法在某个规定的时间内达到可以确认的状态。一旦触发器进入亚稳态,则既无法预测触发器的输出电平,也无法预测什么时候稳定在某个确认的电平上。(稳定所需时间不定、输出结果不定)

2022-09-30 09:40:30 4809

原创 竞争与冒险

A非是A通过非门得到的,因此延迟会大。A和A’到达与门时间不同,产生竞争现象,由于竞争现象,产生毛刺现象。组合逻辑中,门电路输入信号由于经过的路径不同,到达该门时间不一致,叫做。由竞争而在输出时可能产生尖峰毛刺或脉冲的现象,叫做。举例:F=A’& A。

2022-09-29 23:31:53 330

原创 VCS和Verdi安装教程,测试成功

vcs和verdi安装教程

2022-09-29 21:45:37 920

原创 虚拟机共享文件夹后,重启不显示

命令:vmhgfs-fuse /mnt/hgfs/

2022-09-28 21:26:49 912

原创 虚拟机和windows系统共享文件夹(互传文件)

在虚拟机中需要开启共享文件夹的功能。首先虚拟机中的ubuntu要求是已经开机了的状态,然后进行设置:虚拟机 -> 设置 -> 选项 -> 共享文件夹,然后选择总是启动,然后再添加一个和主机windows共享的路径。

2022-09-28 16:34:19 3367

原创 接口背靠背请求

背靠背连接为电信及电脑网络的一个名词,简单来说,背靠背连接就是直连。即两台设备不通过通信网络,而直接通过电缆来连接。发送设备需要把输出直接连接到接收设备的输入上.

2022-09-28 14:20:44 190

原创 需求跟踪矩阵

需求跟踪矩阵(Requirement Tracking Matrix,RTM)是用于通过测试用例映射和跟踪用户需求的文档。它在软件部署生命周期结束时提供的单个文档中捕获了客户提出的所有需求和需求可追溯性。需求跟踪矩阵的主要目的是验证是否通过测试用例检查了所有需求,以便在软件测试期间不取消任何功能。在整个项目中,将创建项目和产品可交付成果的生命周期清单,并根据商定的项目和产品需求来开发这些清单。

2022-09-28 09:20:52 2393

原创 C语言中的for(;;)循环

for()是典型的循环结构,然后()里面添加的是循环条件,而for(;)中没有循环条件,所以就是无条件循环,就是只能通过循环体中的内容来跳出循环。

2022-09-26 10:14:49 3154

原创 VCS处理verilog的源码过程

VCS先将verilog/systemverilog文件转化为C文件,在linux下编译链接生成可执行文件,在linux下运行simv即可得到仿真结果。编译命令的格式:vcs sourcefile [compile_time_option] (编译选项用来控制编译过程)执行仿真命令格式:./simv [run_time_option]

2022-09-24 10:45:31 1349

原创 linux中uboot、kernel、文件系统、用户程序执行顺序

它负责整个硬件的驱动,以及提供各种系统所需的核心功能,包括防火墙机制、是否支持LVM或Quota等文件系统等等,如果内核不认识某个最新的硬件,那么硬件也就无法被驱动,你也就无法使用该硬件。引导加载程序(Bootloader)是固化在硬件Flash中的一段引导代码,用于完成硬件的一些基本配置,引导内核启动。Linux文件系统(File System)中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

2022-09-24 09:13:48 726

原创 linux vnc登陆黑屏问题

桌面背景全黑,没有右上角的设置按钮。

2022-09-22 10:02:33 1121

原创 VIM使用教程

3,5d。

2022-09-20 21:27:32 90

原创 23.5 指针与结构体

要通过指针p访问结构体成员可以写成(*p).c和(*p).num,为了书写方便,C语言提供了->运算符,也可以写成p->c和p->num。

2022-09-20 15:23:01 282

原创 22.3 指针与数组

参数写成指针形式还是数组形式对编译器来说没区别,都表示这个参数是指针,之所以规定两种形式是为了给读代码的人提供有用的信息,如果这个参数指向一个元素,通常写成指针的形式,如果这个参数指向一串元素中的首元素,则经常写成数组的形式。如上图所示,pa指向a[1],那么pa+2指向a[3]。事实上,E1[E2]这种写法和(*((E1)+(E2)))是等价的,*(pa+2)也可以写成pa[2]。首先指针pa指向a[0]的地址,注意后缀运算符的优先级高于单目运算符,所以是取a[0]的地址,而不是取a的地址。

2022-09-20 15:01:36 87

systemVerilog的联合数组例子

systemVerilog的联合数组例子

2022-11-15

systemVerilog中队列的例子

systemVerilog中队列的例子

2022-11-15

systemVerilog的动态数组例子

systemVerilog的动态数组例子

2022-11-15

systemVerilog的modeport使用代码

systemVerilog的modeport使用代码

2022-11-14

2022年一生一芯p1视频课程ppt

2022年一生一芯p1视频课程ppt

2022-09-11

北京市工程技术系列(人工智能)专业技术资格评价试行办法

北京市工程技术系列(人工智能)专业技术资格评价试行办法

2022-01-12

CMOS电压调整器的设计CMOS电压调整器的设计

CMOS电压调整器的设计CMOS电压调整器的设计CMOS电压调整器的设计CMOS电压调整器的设计CMOS电压调整器的设计CMOS电压调整器的设计

2011-05-13

二手交易系统平台二手交易系统平台

二手交易系统平台二手交易系统平台二手交易系统平台二手交易系统平台二手交易系统平台二手交易系统平台二手交易系统平台二手交易系统平台

2011-05-13

基于ASP.NET的网上二手交易平台的设计

基于ASP.NET的网上二手交易平台的设计基于ASP.NET的网上二手交易平台的设计基于ASP.NET的网上二手交易平台的设计基于ASP.NET的网上二手交易平台的设计

2011-05-13

校园二手电子产品交易网

校园二手电子产品交易网校园二手电子产品交易网校园二手电子产品交易网校园二手电子产品交易网

2011-05-13

校园二手物品流通平台的设计

校园二手物品流通平台的设计校园二手物品流通平台的设计校园二手物品流通平台的设计校园二手物品流通平台的设计校园二手物品流通平台的设计

2011-05-13

校园物品交易平台的设计

校园物品交易平台的设计校园物品交易平台的设计校园物品交易平台的设计校园物品交易平台的设计

2011-05-13

易宝二手商品电子商务系统设计与实现

易宝二手商品电子商务系统设计与实现易宝二手商品电子商务系统设计与实现易宝二手商品电子商务系统设计与实现易宝二手商品电子商务系统设计与实现

2011-05-13

长沙市二手房交易及资金监管系统的设计与实现

长沙市二手房交易及资金监管系统的设计与实现长沙市二手房交易及资金监管系统的设计与实现长沙市二手房交易及资金监管系统的设计与实现长沙市二手房交易及资金监管系统的设计与实现

2011-05-13

空空如也

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

TA关注的人

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