自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

啦啦啦啦啦

有些时候,不是因为看到了希望才去坚持,而且坚持了,才看到希望

  • 博客(165)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 博文传送门--FPGA

0,按键消抖Verilog实现独立按键消抖(状态机)Verilog实现的多个按键消抖(具体模块可用)1,状态机(交通灯)Verilog实现交通灯(数电课设)----------旧 Verilog实现交通灯(数电课设)-----新--及对于状态机的理解2,uart协议在第一篇中(基于FPGA实现uart串口模块(Verilog)--------接收模块及思路总结)后面新更...

2019-05-03 15:38:10 2651 3

原创 数字IC/FPGA面试题目合集解析(一)

1,计算题:计算该触发器等效的建立保持时间(西安某Fabless面试笔试题)2,计算题:计算组合逻辑的延时时间范围3,选择题:Which of following ways cannot be used to improve timing of a hold violation path。

2023-10-11 23:18:47 1229 6

原创 数字IC/FPGA面试题目合集解析——零

本专栏用于详解数字IC/FPGA面试,区分于现有的绝大部分解析,本专栏内容均是根据笔者自己的理解,选择经典的题目进行解析。有任何问题欢迎同学们交流讨论。该章节为目录导航章节,根据CSDN的要求,专栏最少需要15篇,一周一更,故此本专栏除本篇外至少开15篇,每一篇将根据题目难度,选择适当的数量。

2023-10-10 21:39:15 209

原创 Fushion 360齿轮组制作教程

本教程总结Kevin小哥的教程,原视频教程,笔者录制的教程视频见。

2023-09-09 14:12:20 818

原创 C51单片机介绍

单片机的概述单片机的组成部分中央处理器程序存储器数据存储器定时器/计数器并行I/O全双工串行口UART中断系统时钟振荡电路STC89C51RCRD+系列单片机介绍结构图管脚图与资源介绍丝印介绍管脚说明最小系统图软件的使用。

2023-04-22 23:05:35 2420 1

原创 IC综合专栏实现规划

IC综合专栏博文实现计划分为理论篇&实践篇。两者相互结合补充。本系列为笔者自己学习总结的,难免会有不足,有问题欢迎指出交流。

2022-12-12 16:00:33 786

原创 ALE的基本介绍、使用与配置——(Verilog语法检查vim插件)

Syntastic,Ale等都是vim优秀的语法检查工具,基本原理都是通过外部语法检查器(linter)运行文件,并向用户显示所有由此产生的错误。项目地址如下所示:Syntastic,Ale。两个都是优秀的语法检查插件,其中Syntastic出现的较早,在Ale出现后前者放弃维护,同时在项目介绍页也推荐了Ale,Ale支持异步执行,他的进行过程是在后台自行进行的,不会影响到你当前对于vim的操作,需要你的vim版本到8.1以上(该版本以上的vim添加了异步特性)。他们都是通过外部语法检查器来进行语法检查的

2022-12-07 18:00:33 4414

原创 工艺库相关含义解释

LVT, RVT, HVT这几个都是CMOS集成电路的Vth阈值电压相关的基本概念。通常将传输特性曲线中输出电压随输入电压改变而急剧变化转折区的中点对应的输入电压称为阈值电压。HVT = High V threshold. Can be used in the path where timing is not critical. So by using HVT cells we can save power.LVT - Low V threshold. One should use these cell

2022-12-07 10:45:25 1776

原创 gvim写verilog环境搭建——将文本编辑器客制化定义为你自己的IDE

本文将分享使用gvim写verilog一系列的方便编码工具,将vim打造成一个IDE(IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员开发的应用软件,是它们的一个总称。)目的是**使得编码过程中任何让你觉得繁琐的,重复性劳动,全部交给工具做,帮助更快更好的实现你的目标。**这里笔者个人经验感觉哈,若是有些你觉得感觉繁琐的,愚蠢的操作,一定时没有使用正确的方式去做这件事~可以思考优化下做事的方式实现的所有功能如下所示:该功能使用

2022-12-06 10:41:18 3627 2

原创 数字IC设计之——低功耗设计

同时可以在编码的时候进行相关操作,但是引入的问题是在时序过紧的时候,过多的OI可能会导致时序问题,过少的OI又很难有一个明显的功耗优化~算是有些难以理解的,当然一般还是根据需求,设计人员自行决定是否需要加做OI。不过需要注意的是,如果在电路中,锁存器与与门相隔很远,到达锁存器的时钟与到达与门的时钟有较大的延迟差别,则仍会出现毛刺,同样是这个电路,时钟在latch的E端与与门的输入端的skew时钟偏移较大,并且大于latch的D-Q的delay的时候,就会出现毛刺。在进行优化时,优化的优先次序如下图所示。

2022-11-23 11:43:12 4585 6

原创 CMOS IC功耗类型及其影响因素

概述概述该部分对IC功耗的类型进行介绍先总体来看,从动静态来分,可以分为与,其中动态功耗又分为与,其中时钟频率,电源电压对翻转功耗有着较大的影响,静态功耗指得是。动态功耗是在电路条件下的功耗,静态功耗是即使电路状态不改变也会产生的功耗~翻转功耗是实现电路功能必须的,称为有效功耗,短路功耗与漏电功耗不是实现电路功能所必须的,称为无效功耗。90nm以下工艺需要考虑静态功耗。本节对各个功耗类型进行简单的介绍,进一步的,在功耗库的基础上进行简单的功耗计算~总功耗=开关功耗+内部功耗+漏电功耗。

2022-11-23 11:34:39 1947

原创 DC优化(Optimization)是在做什么?

DC在综合的时候有三步,翻译映射与优化,本文总结优化是在做什么。首先优化有如下三个阶段,结构优化,逻辑优化,门级优化。三种不同阶段的优化有着明显的层次,下面将对其进一步解释。架构层次的优化首先先看一个例子,使用该例子引出几种优化方式。算数操作的几个思考代码如下所示对于上述的几行代码,可以有如下的思考:1,“+”符号表示那种类型的电路?2,那种类型的加法器应该被综合?3,最后多少加法器将会出现在最后的电路中?

2022-10-27 14:42:54 1461

原创 可综合的异步FIFO的设计与仿真

可综合的异步FIFO的设计与仿真综述FIFO(First in First out),经常用来对跨时钟域多bit数据的同步处理。常用的有同步FIFO与异步FIFO,本文主要处理异步FIFO的问题。首先,试图将多个变化的信号从一个时钟域同步到一个新的时钟域,并确保所有变化的信号都同步到新时钟域的同一个时钟周期,已经被证明是有问题的,在CDC部分中已经进行了说明,后续也会进一步的解释。这也是为什么引入格雷码来做数据同步的原因。在FIFO设计中判断FIFO的空满状态,是一个关键性的问题。

2022-10-23 20:52:59 1572 8

原创 GVIM基础教程——vimscript编程初步

VIM有三种模式,分别是命令模式(Command mode/normal mode),输入模式(Insert mode)和底线命令模式(Last line mode)。如下图所示,输入模式是用来编辑文本的,底线命令模式与命令模式分别用来处理用户命令。下图也分别展示了进入与退出各个模式的按键。

2022-10-18 22:14:37 2225 2

原创 SGDC的书写

综述在CDC概述部分我们介绍,做CDC时候,需要我们写一个SGDC文件,SGDC = SpyGlass Design Constraints,就是SpyGlass设计约束文件,类似于DC/SAT的约束,可以使用SDC来转为SGDC,但是其是不够的,因为他没有对CDC特定的数据流进行描述(SDC中会设置false_path屏蔽异步路径进行计算,但是CDC就是用来检查这些路径的)。我们做跨时钟检查,肯定需要定义,同时还有。

2022-10-18 21:20:19 7234 5

原创 Spyglass概述

进而是全局的设置选项,根据自己的需要进行相关的设置。输入spyglass,不加任何选项,读入文件,将不需要检查的文件设置为stop,设置一个top选项,选择一个目标goal,打开incremental Mode,运行,保存prj文件即可,就可以看到一个软件生成的文件了。每一个目标有做对应的事情,需要执行完上一个目标后同时达到该目标后,才可以进行到下一个阶段,可以看到,每一个目标对应的规则是不同的,因此可能会导致一些问题遗漏,同时可能导致下一个目标的error的由于上一个目标没有完成的遗留问题。

2022-10-18 21:06:52 8388

原创 常见的CDC问题

本节用于总结常见的CDC错误的处理方式,根据CDC部分介绍的同步方式是一些基本原则,在使用中只要遵循这些原则,就可以避免CDC问题。如下根据之前描述的原则,总结了一下常见的问题。CDC基本原则CDC常见问题总结1,不满足保持时间(未进行异步处理)CLK1与CLK2为异步关系,其相位是不确定的,可能不满足建立保持时间,导致不可预期的状态传递。另外如下情况也是可能会导致的问题,尤其是不适用实例化的两级同步器可能导致的问题。本质上这种情况也是使用了未同步的信号做逻辑,与上边图示本质上是一致的~

2022-10-09 22:53:58 1908 2

原创 CDC(Clock Domain Crossing )跨时钟域问题的处理

常常有这样的问题,同步信号更优的选择是不是应该是寄存器输出的信号?答案是肯定的,需要同步的信号若是从组合逻辑输出,则会有不同的路径延时,这种组合必定会增加数据变化频率,可能会产生小的振荡glitch数据突发,从而增加在变化时可以采样的边沿的数量,相应地增加对变化数据进行采样和生成亚稳态信号的可能性。根据三边沿要求,如果较快时钟域的频率是较慢时钟域的频率(或更多)的 1.5 倍(或更多),则将较慢的控制信号同步到较快的时钟域通常不是问题,因为较快的时钟信号将对较慢的 CDC 信号进行一次或多次采样。

2022-10-03 11:50:05 1769

原创 SVN使用总结

对于一个新文件,需要先进行add,然后commit才可以提交到仓库中。

2022-08-20 01:33:56 373

原创 Verilig语法之——Generate 结构

注意事项如下一个module中,可以出现多个循环,但是同一个模块的多个循环的循环变量值不能相同。可以循环嵌套使用。案例见demo2“generate”、“endgenerate”关键字不是必需的,但要是写了一个,必须包含另一个genvar 在实例化过程中用作整数来评估生成循环并创建生成块的实例,但在仿真时它不存在。除循环生成方案外,不得在任何地方引用 genvar。genvar 的任何位设置为 x 或 z,这将是一个错误。循环生成结构中的生成块可以命名或未命名,往往我们建议对其进行命名。...

2022-08-09 11:36:19 3853 4

原创 时钟的同步与异步问题

时钟的同步与异步问题,是一个很基础,但是很常见的问题,本文简单总结笔者理解的相关问题,用于对时钟之间同步异步问题进行简单的判断。时钟相关的属性有频率,相位,是否同源。判断时钟的同步异步,是否同源是一个决定性的因素。。首先需要对时钟的同步异步进行划分的原因是需要满足触发器的建立时间与保持时间,而异步时钟即使是相同的频率,也没有办法确定相位,也是没有办法进行静态时序分析的。因此需要对两种时钟进行区分。......

2022-08-04 11:19:00 4541 1

原创 IC设计流程中需要使用到的文件

IC设计中文件类型总结

2022-07-05 20:05:02 4235 2

原创 dc_labs--lab1的学习与总结

1,通过该实验可以学会配置DC的启动文件,同时对其中的配置部分进行理解学习2,理解DC做综合的流程,在topo拓扑模式下完成综合,体验synthesis flow3,学会自己获取DC的帮助界面进行相关命令的查询...

2022-06-06 08:37:58 2675 10

转载 Windows 修改MAC地址

1、首先我们查询我们的Mac地址,按下快捷键Windows键+R键,弹出的窗口输入cmd,确定2、在弹出cmd命令窗口(管理员窗口)输入”ipconfig /all“,下拉找到以太网适配器,查看我们的Mac地址3、打开控制面板,单击“网络与Internet”,下一个页面下拉找到“网络和共享中心”单击4、弹出的窗口单击以太网(即自己的网络连接名称),弹出的下一个窗口单击“属性”5、弹出的窗口单击“Microsoft网络客户端”,之后单击右上角“配置”6、下一个窗口选择“高级”,之后在属性里面下拉找到

2022-05-27 20:06:58 4692

原创 Win11安装ise14.7(最终解决方案)——Ubuntu18.04安装ISE与modelsim

原文标题:How to install Xilinx ISE Design Suite 14.7 on Ubuntu 18.04 (with drivers)如何在lunux下安装ISE14.7!!升级了win11,发现ise彻底用不了了,然后在网上找相关的博文,基本上是明确了用不了了。只能使用替代方案,然后发现有两个方式linux或者是使用Xilinx提供的方案(个人感觉很蠢)。两种方式都会在后续给出,本文采取的是第一种,在linux下安装。你要是你不想自己安装,也可以直接使用博主提供的虚拟机直接使用.

2022-05-27 19:58:22 13890 29

原创 DC学习笔记正式篇之零——综述与基本流程介绍

前面介绍了STA部分,综合库的内容结束了基础部分,接下来是DC的使用篇。该部分首先会介绍DC的流程,然后对时序部分进行介绍,接下来是环境属性与较为复杂的时序约束的介绍。期间会有与之对应的dc_labs来帮助进行理解。dc_labs将会同步更新在对应的专栏下。需要结合起来进行学习!本文将会首先回顾DC在IC flow中的位置与作用,然后介绍相关DC的理论,最后是实践部分,该实践部分使用的是lab 1中的内容。DC Synthesis 综述部分DC Synthesis是IC设计前端与后端的分界线,或者.

2022-05-22 14:07:25 4757

原创 基础知识之三——逻辑综合库

综述Synopsys_工艺库格式是事实上的库标准。对库格式和延时计算方法的基本理解是成功综合的关键Synopsys工艺库可分为两大类:逻辑库:包含仅与综合过程有关的信息且通过DC用于设计的综合和优化。如pin到pin的时序、面积、引脚类型等物理库:包含单元的物理特征,如物理尺寸、层信息、单元方位等。半导体厂商提供给我们DC兼容的工艺技术库——综合库来进行逻辑综合。大多数情况下,半导体厂商提供二进制格式的.db文件,也有可能只提供文本(ASCII)格式的.lib文件,或两者。DC使用的综合库必须是.d

2022-05-21 15:16:14 2621

原创 基础知识之二——STA相关的基本定义

在前一部分介绍了什么是STA,STA在数字IC设计流程中的位置,优点。该博文继续介绍STA,先通过一个简单的例子来引入,然后介绍一些STA的有关定义。我们的目的是为了建立一个模型,将我们的Verilog HDL语言综合的Schematic原理图转换为数学模型,这样就能使用计算机来进行分析时序。从而可以保证时序收敛。引例先看下面一个例子,先做一个简单的介绍,有没有接触过的定义会在后面进行介绍,主要是通过引例使得后面的定义更好理解。可以暂时不需要理解,但是看完本后可以通过这个引例来进一步进行学习。下面的.

2022-05-21 15:09:42 7049 1

原创 基础知识之一——STA基础概述

本文是DC笔记系列的第一篇,也是第一次来尝试写这种系列文章,有不足的地方非常欢迎同学们指出,该部分主要介绍什么是STA,有一个感性的认识,了解其使用的好处,什么地方再用,怎么用等。是基础部分的第一篇~主要分三个部分,什么是STA,CMOS数字设计中STA的使用于STA的局限性三个部分展开,参考《Static Timing Analysis for Nanometer Designs 》(第一章)的内容。什么是STA静态时序分析(简称STA)是用来验证数字设计时序的技术之一。下面将就时序与验证两个部.

2022-05-21 15:09:08 9169

原创 将 Hexo 部署/迁移到腾讯云轻量服务器

本文用来记录将hexo部署再轻量服务器上的过程,不论是已经有自己的主题准备迁移或者新建一个准备部署在轻量服务器,本教程都是适用的,博主并不是做相关方面的,因此本教程尽量简单实用,对于大佬可能帮助有限~其次这里并非一定要使用腾讯云服务器,其他家操作基本上都是一致的。至于博客部署的历程参考这里,记录了博主从GitHub Page到自己服务器的选择与图床部署方案,可以进行参考。环境的准备本地需要安装 Git、NodeJs。需要有自己的云服务器,本人使用的是系统为宝塔Linux面板 7.8.0 腾讯云专享.

2022-05-19 17:31:24 2842 17

原创 个人博客搭建与美化

博主并不是很了解前端知识,只是想搭建一个自己的平台,留下自己的一点痕迹,有一个属于自己的网络小小天地。因此对于博客配置也是很简单的配置,博客也相对比较简单,基本上为小白白,因此教程笔记应该是很好复现的。有任何问题欢迎留言评论~我的个人博客主页:国内GuoDong の Blog ,国外部署平台点击这里。CSDN在渲染可能与个人博客渲染不同,欢迎点击我的主页。博客会在两个平台同步更新。欢迎点击我的主页。Hexo-Butterfly主题版本为 4.2.0。博主并不是很了解前端知识,只是想搭建一个自己的平台,.

2022-05-14 00:26:24 928

原创 Hexo-Butterfly音乐播放器的添加

说明:该配置基于Butterfly主题版本为 4.2.0,基本参考官方教程,不修改pug文件,主题已经集成了相关的设置,该博文对其部分内容进行补充。参考链接在文章末尾给出。我的个人博客主页:Github Gitee CSDN在渲染可能与个人博客渲染不同。博客会在两个平台同步更新。欢迎点击我的主页。文章目录插件的安装与配置普通界面播放器全局吸底Aplayer模式演示1,普通列表模式2,单曲播放3,迷你模式附录参考链接Aplayer完整配置可选参数表插件的安装与配置安装 hexo-tag-apl.

2022-05-12 16:48:49 5406 10

原创 为什么要搭建个人博客

最开始写博客就是想着在一个随时自己可以访问的平台记录下自己的学习笔记,很多时候做过了事情你要是不总结,觉得会忘记。而且你做过以后这件事以后,再回头看你做过的东西,总是会觉得有很多的地方需要改进,或者是又有了新的思路。于是乎就找到了CSDN。这个平台真的很简单,注册就可以开始写博客啦。或许这就是初心吧,好记性不如烂笔头,把事情记录下来。算是一种对于学习的回顾,又可以帮助到其他一起学习的同学,又可以收获粉丝点赞,有时候还真的可以感受到快乐。或者你写了很久以后回头看,这些或许都是自己努力的痕迹吧。或许只有自己会

2022-05-03 00:55:18 897 2

原创 Typora的使用

Typora的使用Typora是一款Markdown编辑器,可以使得你的编辑所见即所得。Typora更多的快捷键以及可以和图床PicGo进行联合使用(图床就是专门用来存放图片,允许你把图片对外连接的网上空间)。从而方便的进行文本编辑而不需要去关心图片的管理问题。其次使用简单,方便,保存都是在本地进行管理,可以保证数据的安全,页面简介简单,功能非常强大。简单来说有以下的优点:快捷键多,文本编辑速度快图片管理极为方便功能强大,页面简介接下来介绍安装,常用快捷键的使用,图床的设置与相关问题文章目

2022-05-02 00:59:30 317

原创 RedHat Linux 7安装CentOS 7 yum源

RedHat Linux 7安装CentOS 7 yum源问题描述解决步骤0,进入/opt目录,进入root模式,新建yum目录1,查看自己redhat版本2,查看redhat 7.0系统本身所安装的那些yum 软件包并将其一一删除3,确定自己的虚拟机可以上网4,找到自己系统所对应的文件包版本更新5,查看已经下载的文件6,安装软件包7,新建repo 配置文件8,清除缓存9,尝试安装Gvim,测试可以正常使用10,删除下载的安装包与yum目录参考博文问题描述使用yum进行安装软件的时候报错Loaded

2022-04-26 17:08:44 4583

原创 WIN11中MathType编辑中“打开数学输入面板”是灰色不可编辑

1,找到路径C:\Program Files\Common Files\microsoft shared\ink2,将下载的mip.exe程序剪切粘贴到该目录3,仅仅增加一个mip.exe只能让灰色的按钮变成黑色,但是依旧不能正常使用数学输入面板,还需要在ink/en-US/目录下添加mip.exe.mui文件,WIN11移除了数学输入面板,这两个文件都可以从win10系统下对应目录下拷贝过来,然后就可以正常使用了。4,对应文件的蓝奏云地址https://wwc.lanzouy.com/iIIJL0

2022-04-20 13:44:27 7827 8

原创 数字IC设计流程总结

IC设计是一个很复杂漫长的过程,笔者以下图进行总结,其中后端总结的很模糊,后续了解学习后再进行补充。笔者会根据自己的理解,一步步的分享自己理解的设计流程。其中难免有问题错误,望同学老师指出,感谢!首先下面这张图是笔者总结的数字IC设计流程图。从设计需求到Tape-Out。下面会详细说明这张图的内容,后续也会持续修改更正。设计需求首先是需求设计,一般的设计无非就是两个来源,一个是新的项目,需求来自市场,另外一个来自与继承项目的迭代。这两个均有产品经理(IC产品工程师)进行收集汇总,然后以给出设计需.

2022-03-22 23:25:37 4039

原创 Git分支简介与使用——Git的学习与使用(五)

本节主要总结分支的基本概念与本地库分支的基本使用,对于远程分支的使用在下一个部分进行总结。同时分支也是之前很多概念的基础。理解分支的概念也有助于后面更好的使用Git。文章目录分支简介Git保存数据的方式分支的基本使用几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。分支简介首先明确Git数据的保存方式,他是一系列不同时刻的快照,然后Git保存一个提交对象的时候,该提交对象会保存一个指向暂存内容的快照的指针。该提交对象还包含了作者的.

2022-03-21 11:57:08 293 1

原创 远程库的使用,打标签与别名——Git的学习与使用(四)

本小节总结Git远程库的使用,打标签与alias别名方便操作。其中有关分支的概念可以先暂时跳过,后续相关博文会对分支进行进一步的总结。文章目录远程库的使用什么是远程库获取与查看远程库添加远程仓库从远程仓库中抓取与拉取推送到远程仓库查看某个远程仓库远程仓库的重命名与移除打标签列出已存在标签创建标签git 支持两种标签创建附注标签创建轻量标签后期打标签共享标签删除标签检出标签别名远程库的使用什么是远程库远程仓库是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你.

2022-03-20 18:46:42 268

原创 本地仓库的基本操作与概念——Git的学习与使用(三)

本部分内容将会对基本库的使用,相关基础概念进行介绍,通过本部分的总结可以对于本地库进行管理,更好的理解Git的使用。现在我们的机器上有了一个 真实项目 的 Git 仓库,并从这个仓库中检出了所有文件的 工作副本。 通常,你会对这些文件做些修改,每当完成了一个阶段的目标,想要将记录下它时,就将它提交到仓库。本地仓库的基本操作与概念——Git的学习与使用(三)一般文件的两种状态查看文件当前状态状态简览跟踪新文件暂存已修改文件忽略文件查看已暂存和未暂存的修改提交更新跳过使用暂存区域移除文件大批量移除文件的.

2022-03-18 21:42:13 405

LTI系统建模仿真+西电2021年Matlab微电子学院课程报告

西电2021年Matlab微电子学院课程报告,仅供参考

2022-12-13

十进制转5421BCD所有文件

此博文以十进制转5421BCD为例,将仿真的文件的写法以及使用modesim自动化执行脚本文件进行简单的总结,更新之前文章的模板。以后有关代码的书写可以参考此博文。主要分为个部分,第一个部分介绍转5421BCD原理,第二部分是verilig代码及其仿真文件的书写,最后是.do文件的书写。这里不详细介绍,只是简单地说明。附录之前学习时候的博文[仿真文件的写法(以四位全加器为例)](https://blog.csdn.net/qq_41467882/article/details/82713257)

2020-04-30

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

TA关注的人

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