自定义博客皮肤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)
  • 资源 (4)
  • 收藏
  • 关注

原创 DC综合简介

一、DC综合简介1.1 什么是综合?概括地说:综合就是把行为级的RTL代码在工艺、面积、时序等约束下转换成对应的门级网表。综合是使用软件的方法来设计硬件,然后将门级电路实现与优化的工作留给综合工具的一种设计方法。它是根据一个系统逻辑功能与性能的要求,在一个包含众多结构、功能、性能均已知的逻辑元件的单元库的支持下,寻找出一个逻辑网络结构的最佳实现方案。即实现在满足设计电路的功能、速度及面积等限制条件下,将行为级描述转化为指定的技术库中单元电路的连接。综合主要包括三个阶段:转换(translation)

2021-06-29 20:05:27 8407

原创 verilog实现有符号数求绝对值

原码求绝绝对值,比较简单就不再说明,这里按照补码就绝对值进行分析补码 -->原码如果数据位负数 则符号位不变 数据位按位求反 + 1;如果数据位正数,则补码 = 原码module OToC_code( input [4:0] a, output [4:0] out ); //assign out = (a[4] == 1)?({a[4],~a[3:0]}+1):a;assign out = (a[4] == 1)?(~a + 1'b1):a;endmodu

2021-06-27 19:23:58 6971 5

原创 verilog实现将原码转换为反码

根据符号位进行判断,如果为1则需要按位求反加1,否则保持原状module OToC_code( input [4:0] a, output [4:0] out ); assign out = (a[4] == 1)?({a[4],~a[3:0]}+1):a;endmodule测试代码module tb_Code; // Inputs reg [4:0] a; // Outputs wire [4:0] out; // Instantiate the U

2021-06-27 19:15:15 937

原创 verilog实现有符号数比较

实现有符号补码数据比较首先比较两个数据最高位(符号位),最高位一致情况下比较后四位。如果后四位谁大,则该数据大module max_op( input clk,rst_n, input [4:0] a, input [4:0] b, output reg [4:0] out ); reg cmd_flag; always @(posedge clk or negedge rst_n)begin //确定输入的数据最高位是否一致 if(!rst_n) cmd_flag &l

2021-06-27 19:02:55 9661 4

原创 Verilog设计RAM

SRAMcsen_n为低,wren_n为高写数据。csen_n为低,wren_n为高读数据。csen_n为高不工作

2021-06-27 12:57:52 363 1

原创 Verilog实现同步FIFO

用Verilog实现一个同步FIFO,深度16,数据位宽8bitmodule Sy_FIFO#( parameter DATA_WIDTH = 8, parameter ADDR_WIDTH = 4, parameter RAM_DEPTH = (1 << ADDR_WIDTH) ) ( input clk, input rst_n, input [DATA_WIDTH-1:0] data_in, input wr_en, input rd_en,

2021-06-27 12:52:09 1957 1

原创 VerilogHDL实现异步RAM

用Verilog实现一个异步双端口ram,深度16,位宽8bit。A口读出,B口写入。支持片选,读写请求,要求代码可综合module Asy_Ram#( parameter ADDR_WIDTH = 4, parameter DATA_WIDTH = 8, parameter DATA_DEPTH = 1 << ADDR_WIDTH )( input clka, input clkb, input rst_n, input csen_n, //Port A Signal i

2021-06-26 23:04:17 821

verilogHDL实现pwm控制

用verilog实现PWM控制呼吸灯。呼吸周期2秒:1秒逐渐变亮,1秒逐渐变暗。系统时钟24MHz,pwm周期1ms,精度1us。系统时钟为24MHZ,精度为1us,则对24MHZ时钟进行分频为1MHZ,1MHZ对应周期为1us。采用计数器计数,如果计数器从0到23产生一个脉冲表示为1us。PWM周期为1ms。首先需要完成1ms控制信号,对1us所产生的脉冲信号计数,从0到9时为1ms,产生1ms脉冲信号1s逐渐变亮 1s逐渐变暗。led周期为1s需要产生1s的周期信号,同上述方式一样,对1ms的信

2021-06-26 15:23:58 3913

原创 二进制计数器、johnson计数器、环形计数器原理和实现

二进制计数器n位的2进制计数器,可以表示2^n个状态相邻的两组数据会出现两位或两位以上不一样verliog实现//实现4bit二进制计数器always @(posedge clk or negedge rst_n) begin if(!rst_n) begin o_cnt <= 4'd0; end else o_cnt <= o_cnt +1'b1;endJohnson计数器(右移)n位的Johnson计数器,可以表示2n个状态举例:4位的Johnson

2021-06-26 10:45:12 1932

转载 亚稳态和毛刺

亚稳态和毛刺—— Meta-stability and Hazard reference: http://www.360doc.com/content/11/0913/23/6714119_148048038.shtml 我们在芯片设计与调试中,一定曾经遇到过一些诡异的问题。比如芯片的某一部分莫名其妙的复位却并没有故障记录、比如有的问题上下电和...

2021-06-25 14:40:55 803

原创 时钟 glitch free 切换电路

用Verilog实现glitch free时钟切换电路。有毛刺的时钟切换电路这个时钟切换电路是一个纯组合逻辑,输出时钟(OUT CLOCK)由选择信号(SELECT)控制,当SELECT为1时输出CLK1,反之,输出CLK0.看似很简单,实现了时钟的切换,实则存在着很大的隐患,如下图所示:assign outclk = (sel==1)?clk1:clk0;相关时钟源的毛刺保护下图显示了防止源时钟相互倍数的时钟开关输出出现毛刺的解决方案。在每个时钟源的选择路径中插入一个负边沿触发的D触发器

2021-06-25 11:34:36 677 1

原创 跨时钟域处理

多时域设计中,如果处理跨时钟域单bit : 两级触发器同步(适用于慢到快)多bit :采用异步FIFO,异步双口RAM加握手信号格雷码转换描述跨时钟域信号传输,慢时钟域到快时钟域always@(posedge clka or negedge rst_n) begin if(!rst_n) begin signal_b_r <= 2'b00; end else begin signal_b_r <= {signal_b_r[0],signal_b}; endend

2021-06-24 21:08:31 381

原创 什麽是高阻態

电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,可以理解为断路,不被任何东西所驱动,也不驱动任何东西

2021-06-24 19:52:11 323

原创 进制之间转换

常用的进制有二进制 八进制 十进制和十六进制R进制数转换为十进制:按权展开,相加十进制转换位R进制:整数部分,除R取余数,除到商为0为止。小数部分,乘R取整法,乘到积为0为止。二进制转八进制数:三位一组,整数部分左边补0,小数部分右边补0.反之亦然二进制转十六进制:四位一组,整数部分左边补0,小数部分右边补0.反之亦然...

2021-06-24 19:40:24 254

原创 带有小数点补码计算

计算机中为了使计算更加高效的快捷,一般采用补码进行运算。补码格式正数:+3补码[0011] = 原码[0011] = 反码[0011]负数:-3补码[1101] = 反码[1100] = 原码[1011]当数据位小数时。-1.25 = 原码[1001.0100] = 反码[1110.1011]=补码[1110.1100]3.75 = 原码[0011.1100] = 反码[0011.1100] = 补码[0011.1100]-1.25 + 3.75 = 2.50;1110.1100 +

2021-06-24 17:49:57 25186 2

原创 字 字节 双字概念确定

bit (位)byte(字节)word(字)dword(双字)1byte = 8bit1word = 2byte = 16bit1dword = 2word = 4byte = 32bit1qword = 2dword = 4word = 8byte = 64bit

2021-06-24 17:42:06 1898

原创 存储器的解释和理解

存储器可以分为很多种类,其中根据掉电数据是否丢失可以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电后数据不会丢失。ROM:Read Only Memory,只读存储器,手机、计算机等设备的存储器,但现在的所说的ROM不只是Read Only了,也是可以写入的RAM:Random Access Memory,随机存取存储器,手机、计算机的运行内存。SRAM:Static Random-Access Memory,静态随机存取存储器,利用

2021-06-24 17:37:49 628

原创 ASIC设计流程和流程中用到的工具

2021-06-24 17:23:09 739

转载 数字IC设计要求

目录 华为海思 紫光展锐 复旦微电子 总结 华为海思 芯片与器件设计工程师 应届生留学生实习生 岗位职责 1、负责数字芯片的详细设计、实现和维护以及综合、形式验证、STA、CRG设计等工作; 2、及时编写各种设计文档和标准化资料,理解并认同公司的开发流程、规范和制度,实现资源、经验共享。 岗位要求 1、微电子、计算机、通信工程、自动化、电磁场等相关专业; 2、符合如下任一条件者优先:  (...

2021-06-24 17:06:04 1221

原创 数字IC设计---反相器相关知识

反相器是数字电路中最基本的门电路之一,由NMOS和PMOS组成。学过半导体器件的都对此结构比较清楚。下面我总结了一些反相器相关的知识:一、反相器的结构反向器由NMOS和PMOS组成,栅端(G)相连作为输入端,漏断相连作为输出端,NMOS的源端接地,PMOS的源端接电源VDD.二、反相器的电压、电流传输特性AB:T1导通T2截止BC:T1T2导通CD:T1截止T2导通VTC(Voltage Transfer Characteristics)曲线:VTC的形状基本上与高于阈值的操作相同。

2021-06-22 17:13:36 11668

原创 数字IC设计---组合逻辑电路中的竞争与冒险问题

一、竞争与冒险现象及其形成原因两个输入信号同时向相反方向的逻辑电平跳变的现象(即一个由1- > 0, 另一个从0 -> 1),称为竞争。因竞争导致在输出端可能产生尖峰脉冲的现象,称为冒险。通俗一点的说,信号由于经由不同路径传输达到某一汇合点的时间有先有后的现象,就称之为竞争,由于竞争现象所引起的电路输出发生瞬间错误的现象,就称之为冒险。竞争表现在输出波形上,则是出现0电平或者1电平的尖峰,称 “毛刺”。上图表示一个与门,在输入信号A从1变为0,并且B 从)变为1,而且B信号首先上升到

2021-06-22 17:04:18 2676

原创 数字IC设计---奇偶校验

奇偶校验电路1、奇偶校验码奇偶校验码是比较简单的数据校验码,可以检测出一位错误,但是并不能确定错误的位置。如果数据中发生多位数据错误就可能检测不出来,更检测不到错误发生在哪一位;2、实现方法将有效信息位和校验位读入,判断1 的个数为奇数还是偶数个,在奇校验时,正常的情况下个数应该为奇数个,偶校验正常情况下应该时偶数个。校验码的生成:对于奇校验,判断有效信息的位1的个数,若为偶数,则校验位为1,奇数则校验位为0;偶校验则相反。3、用verilog设计实现8bit奇偶校验电路。奇偶校验电路,一般

2021-06-22 16:48:42 2395

原创 VerilogHDL实现除法操作

硬件电路中实现除法操作一般基于两种方式:乘法操作和减法操作基于减法的除法器对于32位的无符号除法,被除数a除以除数b,他们的商和余数位数一定不超过32位。首先将a转换为32位,b也转换为32位。在每周期的开始,先将a左移一位,末尾补0,然后和b比较,如果大于b则a-b且加上1,否则继续往下执行移位、比较和减法。执行32次后结束,a的高32位即为余数,低32位为商假设4bit的两数相除 a/b,商和余数最多只有4位 (假设1101/0010也就是13除以2得6余1)我们先自己做二进制除法,则首先看a的

2021-06-21 14:51:43 2051

原创 寄存器 锁存器 触发器区别与联系

锁存器锁存器为电平触发的存储单元,数据存储的动作(状态转换)取决于输入时钟信号的电平值分为普通锁存器和门控锁存器普通锁存器:无控制信号,输出状态始终由输入状态决定。这种锁存器极易出现问题,因此出现了门控锁存器门控锁存器:在输入段添加门控时钟,控制输入锁存器的信号,信号只在时钟的高电平或者低电平变化。大大改善了基本锁存器的性能,但是随之功耗也突出。触发器触发器是边沿敏感的存储单元,数据存储动作(状态转换动作)由某一信号的上升或者下降沿进行同步,只在边沿处进行动作。触发器分为两种 主从触发器

2021-06-18 09:25:03 819 2

原创 序列发生器的设计

Verilog – 序列发生器的设计产生序列信号11010111至少需要几级触发器?思路1 - 状态机实现最容易想到的就是采用状态机,每个状态输出序列中的一位,发送完一组序列后回到开始状态继续循环。需要注意的是状态变量的位宽,由于题目要求采用最少的触发器,因此至少需要log2(序列长度)个状态,对于本题也就是3个触发器,输出逻辑可以采用always(*)纯组合逻辑实现。思路2 - 移位寄存器实现序列的问题很多都可以用移位寄存器解决,只是移位寄存器方案可能会消耗较多的寄存器资源。对于本题,如果

2021-06-17 20:50:03 4508 1

原创 Verilog语法 -: +: 说明

先看定义的变量是大端还是小端模式reg [31:0] big_vect; //大端reg [0:31] little_vect; //小端看升序(+:)还是降序(-:)看位宽并进行转换举例说明:reg [31:0] big_vect;reg [0:31] little_vect;问题:big_vect[0 +:8]little_vect[0 +:8] 首先查看变量big

2021-06-16 23:07:12 6906 3

原创 Verilog---generate使用学习

概述Verilog中的generate语句常用于编写可配置的、可综合的RTL的设计结构。它可用于创建模块的多个实例化,或者有条件的实例化代码块。然而,有时候很困惑generate的使用方法,因此看下generate的几种常用用法。generate的结构类型我们常用generate语句做三件事情。用来构造循环结构,用来多次实例化某个模块构造条件generate结构,用来在多个块之间最多选择一个代码块,条件generate结构包含if–generate结构和case–generate形式用来断言

2021-06-16 22:04:16 955

原创 AHB-SRAM设计记录(1)

8K 指8K的深度(deepth) 第二个8则表示为宽度。

2021-06-16 21:14:21 631

原创 数字IC设计----寻找次小值并计数

寻找在有效电平情况下,一串数据中的次小值,并将次小值出现的次数记录`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 17:55:42 06/14/2021 // Design Name: // Module Name: CiDaZhi //

2021-06-14 21:54:01 490

FMCW_JuChi_Multi_Target.rar

FMCW锯齿波调制情况下,多目标Matlab建模

2021-12-07

PyQt使用QTextEdit实现文本编辑器功能,具有文本编辑器GUI界面

PyQt实现文本编辑器功能,能够进行保存、另存、打印、新建、打开、退出保存、查找、撤销、删除、复制、全选、自动换行、改变字体、放大、缩小、等一系列功能

2020-05-13

(清华大学学堂在线C++基础学习)C++.rar

主要为郑莉老师C++基础学习的课件,上传是方便自己后续的查看和学习,如果小伙伴需要可以下载或者去 // 学堂在线自行下载 //

2020-04-27

image_excel.rar

实现python读取mysql表格中的数据,并将其显示在table报表中或保存为excel。通过点击界面的按钮可以选择本地存储的位置,通过填写文件名可以设置保存的文件名。文件的格式为excel。 压缩包中包含了 qtdesigner的ui文件以及ui转换后的py文件,和控制py文件

2020-03-24

空空如也

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

TA关注的人

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