verilog中多个else_if级联造成的综合电路的低效率及解决办法
verilog组合电路的设计

Verilog 是一种硬件描述语言 (HDL),广泛应用于数字电路设计中。
在Verilog 中,组合电路是一种重要的设计模块,它由一系列逻辑门和时序元件组成,能够实现特定的逻辑功能。
本文将介绍 Verilog 组合电路的设计原理、方法和实践经验,旨在帮助读者深入了解 Verilog 组合电路设计的核心概念和技术要点。
【内容概要】1. Verilog 组合电路设计概述2. Verilog 组合电路的建模与描述3. Verilog 组合电路的仿真与验证4. Verilog 组合电路设计案例分析5. Verilog 组合电路设计的未来发展趋势【正文】1. Verilog 组合电路设计概述Verilog 是一种硬件描述语言,它提供了丰富的语法和功能,能够描述数字电路中的各种逻辑元件和时序元件,包括组合电路、时序电路和FSM 等。
在 Verilog 中,组合电路是一种重要的设计模块,它由逻辑门、数据选择器、多路器、解码器等逻辑元件组成,能够实现特定的逻辑功能。
在数字电路设计中,组合电路通常用于实现各种逻辑运算和逻辑控制功能,如加法器、减法器、乘法器、除法器、逻辑门、数据选择器、编码器和解码器等。
2. Verilog 组合电路的建模与描述在 Verilog 中,组合电路可以通过行为建模或结构建模的方式进行描述。
行为建模是指根据组合电路的逻辑功能和特性,使用逻辑表达式、真值表或状态转换图等形式描述其逻辑行为。
结构建模是指根据组合电路的硬件结构和连接关系,使用逻辑门、数据选择器、多路器、解码器等硬件元件的实例化描述其物理结构。
在进行 Verilog 组合电路建模时,应根据具体的设计目标和需求选择合适的建模方式,并遵循Verilog 语言的语法规范和设计规范,确保描述的准确性和完整性。
3. Verilog 组合电路的仿真与验证Verilog 组合电路的仿真与验证是设计过程中至关重要的一环,它能够帮助设计工程师验证电路功能是否符合设计要求,发现和解决潜在的设计缺陷和错误。
verilog中if else时序综合出的电路

一、引言Verilog作为一种硬件描述语言,在数字电路设计中有着广泛的应用。
在Verilog中,if else条件语句是一种常见的逻辑控制结构,用于在电路设计中进行条件判断和执行不同的操作。
在进行时序综合时,if else语句会被转化为硬件电路,因此了解if else时序综合出的电路对于Verilog电路设计具有重要的意义。
二、if else时序综合1. if else语句在Verilog中,if else语句用于根据条件的真假执行不同的操作。
例如:```if (condition)// do somethingelse// do something else```这样的语句在逻辑电路中会被转化为一个条件判断电路,根据条件的真假选择不同的路径。
2. 时序综合时序综合是将逻辑电路描述转化为物理电路的过程,包括将Verilog 描述转化为逻辑门、寄存器等电路元件。
在进行时序综合时,if else语句会被转化为逻辑门电路。
三、if else时序综合出的电路1. 逻辑门在Verilog中,if else语句会被转化为逻辑门电路。
对于简单的if else条件语句,可能被转化为一个MUX(多路选择器)电路,根据条件的真假选择不同的输入。
2. 寄存器在一些复杂的情况下,if else语句会被转化为寄存器电路。
如果条件判断需要在多个时钟周期内进行,就需要引入寄存器来存储条件的真假,以保持状态一致性。
3. 时序逻辑对于包含时序逻辑的if else语句,会涉及到时序逻辑电路的设计。
时序逻辑包括时钟信号、时钟边沿等时序特性,需要特别考虑时序综合的影响。
四、影响因素1. 条件复杂度if else语句中条件的复杂度会对时序综合出的电路产生影响。
复杂的条件判断可能需要更多的逻辑门或寄存器来实现,增加电路的复杂度和面积。
2. 时序要求对于需要满足一定时序要求的电路,if else时序综合出的电路需要符合时序约束,保证在时钟周期内正确地执行条件判断。
工厂模式+策略模式解决代码中大量的if与else问题

⼯⼚模式+策略模式解决代码中⼤量的if与else问题if...else存在的问题:if...else 是所有⾼级编程语⾔都有的必备功能。
但现实中的代码往往存在着过多的 if...else。
虽然 if...else 是必须的,但滥⽤ if...else 会对代码的可读性、可维护性造成很⼤伤害,进⽽危害到整个软件系统。
现在软件开发领域出现了很多新技术、新概念,但 if...else 这种基本的程序形式并没有发⽣太⼤变化。
使⽤好 if...else 不仅对于现在,⽽且对于将来,都是⼗分有意义的。
解决办法:使⽤⼯⼚模式+策略模式来简化主代码逻辑中的if...else。
使⽤设计模式的好处:1. 提升代码质量:(⾼内聚低耦合是软件设计质量的标准):所谓⾼内聚,就是指相近的功能应该放到同⼀个类中,不相近的功能不要放到同⼀个类中。
相近的功能往往会被同时修改,放到同⼀个类中,修改会⽐较集中,代码容易维护。
所谓松耦合,就是类与类之间的依赖关系简单清晰。
即使两个类有依赖关系,⼀个类的代码改动不会或很少导致依赖类的代码改动。
⽐如依赖注⼊、接⼝隔离、基于接⼝⽽⾮实现编程,迪⽶特法则就是为了实现代码的松耦合。
2.遵循开闭原则:开闭原则⾮常有名,只要是⾯向对象编程,在开发时都会强调开闭原则,开闭原则是规定软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。
今天我们就来“⼲掉”代码中的 if...else,还代码以清爽,让业务逻辑更清晰下⾯是实战代码if...else的逻辑代码/*** 这是使⽤设计模式之前的实现代码*/@Testvoid noDesign() {String name = "类型⼆";if (name.equals("类型⼀")) {System.out.println("类型⼀完成任务逻辑");} else if (name.equals("类型⼆")) {System.out.println("类型⼆完成任务逻辑");} else if (name.equals("类型三")) {System.out.println("类型三完成任务逻辑");}}使⽤设计模式优化后的逻辑代码/*** ⼯⼚ + 策略设计模式优化代码后的调⽤*/@Testvoid design() {String name = "类型⼆";Handler strategy = Factory.getInvokeStrategy(name);strategy.strategyMethod(name);}这⾥开始实现设计模式/*** 第⼀步:⼯⼚设计模式*/public class Factory {//创建⼀个存放实例化ben的集合private static final Map<String, Handler> MAP = new HashMap<>(); //根据key获取实例化benpublic static Handler getInvokeStrategy(String name) {return MAP.get(name);}//将实例化的ben放到集合中public static void register(String name, Handler handler) {if (StringUtils.isEmpty(name) || null == handler) {return;}MAP.put(name, handler);}}/*** 第⼆步:策略设计模式* InitializingBean:* spring初始化bean有两种⽅式:* 第⼀:实现InitializingBean接⼝,继⽽实现afterPropertiesSet的⽅法 * 第⼆:反射原理,配置⽂件使⽤init-method标签直接注⼊bean*/public interface Handler extends InitializingBean {/*** 策略⽅法接⼝*/void strategyMethod(String name);}/*** @Author: Lyh* @Date: 2022-01-10* @Description: 类型⼀业务逻辑*/@Componentpublic class TypeOneHandler implements Handler{@Overridepublic void strategyMethod(String name) {// 类型⼀业务逻辑System.out.println("类型⼀要完成业务逻辑");}@Overridepublic void afterPropertiesSet() throws Exception {Factory.register("类型⼀", this);}}/*** @Author: Lyh* @Date: 2022-01-10* @Description: 类型⼆业务逻辑*/@Componentpublic class TypeTwoHandler implements Handler{@Overridepublic void strategyMethod(String name) {// 类型⼆业务逻辑System.out.println("类型⼆要完成业务逻辑");}@Overridepublic void afterPropertiesSet() throws Exception {Factory.register("类型⼆", this);}}/*** @Author: Lyh* @Date: 2022-01-10* @Description: 类型三业务逻辑*/@Componentpublic class TypeThreeHandler implements Handler{@Overridepublic void strategyMethod(String name) {// 类型三业务逻辑System.out.println("类型三要完成业务逻辑");}@Overridepublic void afterPropertiesSet() throws Exception {Factory.register("类型三", this);}}后记:以后再有别的实现逻辑就像上⾯⼀样新增⼀个实现类然后实现Handler接⼝然后将这个ben注册afterPropertiesSet⼀下然后使⽤⼯⼚的getInvokeStrategy⽅法获取出来实例就可以直接strategy.strategyMethod(name)调⽤了,到此为⽌就实现了⼯⼚模式+策略模式对复杂代码的抽取简化了。
verilog常见错误汇总

verilog常见错误汇总1.Found clock-sensitive change during active clock edge at time on register ""原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化.而时钟敏感信号是不能在时钟边沿变化的.其后果为导致结果不正确.措施:编辑vector source file2.Verilog HDL assignment warning at : truncated with size to match size of target (原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位, 将位数裁定到合适的大小措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数3.All reachable assignments to data_out(10) assign '0', register removed by optimization原因:经过综合器优化后,输出端口已经不起作用了4.Following 9 pins have nothing, GND, or VCC driving datain port -- changes to this connectivity may change fitting results 原因:有9个脚为空或接地或接上了电源措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源. 如果你的设计中这些端口就是这样用的,那便可以不理会这些warning5.Found pins functioning as undefined clocks and/or memory enables原因:是你作为时钟的PIN没有约束信息.可以对相应的PIN做一下设定就行了. 主要是指你的某些管脚在电路当中起到了时钟管脚的作用,比如flip-flop的clk 管脚,而此管脚没有时钟约束,因此QuartusII把?clk?作为未定义的时钟.措施:如果clk不是时钟,可以加?not clock?的约束;如果是,可以在clock setting当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:Assignments>Timing analysis settings...>Individualclocks...>...6.Timing characteristics of device EPM570T144C5 are preliminary 原因:因为MAXII 是比較新的元件在 QuartusII 中的時序并不是正式版的,要等 Service Pack措施:只影响 Quartus 的 Waveform7.Warning: Clock latency analysis for PLL offsets is supported for the current device family, but is not enabled措施:将setting中的timing Requirements&Option-->More Timing Setting-->setting-->Enable Clock Latency中的on改成OFF8.Found clock high time violation at 14.8 ns on register"|counter|lpm_counter:count1_rtl_0|dffs[11]"原因:违反了steup/hold时间,应该是后仿真,看看波形设臵是否和时钟沿符合steup/hold时间措施:在中间加个寄存器可能可以解决问题9.warning: circuit may not operate.detected 46 non-operational paths clocked by clock clk44 with clock skew larger than data delay 原因:时钟抖动大于数据延时,当时钟很快,而if等类的层次过多就会出现这种问题,但这个问题多是在器件的最高频率中才会出现措施:setting-->timing Requirements&Options-->Default required fmax 改小一些,如改到50MHZ10.Design contains input pin(s) that do not drive logic 原因:输入引脚没有驱动逻辑(驱动其他引脚),所有的输入引脚需要有输入逻辑措施:如果这种情况是故意的,无须理会,如果非故意,输入逻辑驱动.11.Warning:Found clock high time violation at 8.9ns on node'TEST3.CLK'原因:FF中输入的PLS的保持时间过短措施:在FF中设臵较高的时钟频率12.Warning: Found 10 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in clock skew原因:如果你用的 CPLD 只有一组全局时钟时,用全局时钟分频产生的另一个时钟在布线中当作信号处理,不能保证低的时钟歪斜(SKEW).会造成在这个时钟上工作的时序电路不可靠,甚至每次布线产生的问题都不一样.措施:如果用有两组以上全局时钟的 FPGA 芯片,可以把第二个全局时钟作为另一个时钟用,可以解决这个问题.13.Critical Warning: Timing requirements were not met. See Report window for details.原因:时序要求未满足,措施:双击Compilation Report-->Time Analyzer-->红色部分(如clock setup:'clk'等)-->左键单击list path,查看fmax的SLACK REPORT再根据提示解决,有可能是程序的算法问题14.Can't achieve minimum setup and hold requirement along path(s). See Report window for details.原因:时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关,一般是由于多时钟引起的措施:利用Compilation Report-->Time Analyzer-->红色部分(如clock hold:'clk'等),在slack中观察是hold time为负值还是setup time 为负值, 然后在:Assignment-->Assignment Editor-->To中增加时钟名(fromnode finder),Assignment Name中增加和多时钟有关的Multicycle 和Multicycle Hold选项,如hold time为负,可使Multicycle hold的值>multicycle,如设为2和1.15: Can't analyze file -- file E://quartusii/*/*.v is missing 原因:试图编译一个不存在的文件,该文件可能被改名或者删除了措施:不管他,没什么影响16.Warning: Can't find signal in vector source file for input pin |whole|clk10m原因:因为你的波形仿真文件( vector source file )中并没有把所有的输入信号(input pin)加进去,对于每一个输入都需要有激励源的17.Error: Can't name logic scfifo0 of instance "inst" -- has same name as current design file原因:模块的名字和project的名字重名了措施:把两个名字之一改一下,一般改模块的名字18.Warning: Using design file lpm_fifo0.v, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project Info: Found entity 1: lpm_fifo0原因:模块不是在本项目生成的,而是直接copy了别的项目的原理图和源程序而生成的,而不是用QUARTUS将文件添加进本项目措施:无须理会,不影响使用19.Timing characteristics of device are preliminary原因:目前版本的QuartusII只对该器件提供初步的时序特征分析措施:如果坚持用目前的器件,无须理会该警告.关于进一步的时序特征分析会在后续版本的Quartus得到完善.20.Timing Analysis does not support the analysis of latches as synchronous elements for the currently selected device family 原因:用analyze_latches_as_synchronous_elements setting可以让Quaruts II来分析同步锁存,但目前的器件不支持这个特性措施:无须理会.时序分析可能将锁存器分析成回路.但并不一定分析正确.其后果可能会导致显示提醒用户:改变设计来消除锁存器21.Warning:Found xx output pins without output pin load capacitance assignment原因:没有给输出管教指定负载电容措施:该功能用于估算TCO和功耗,可以不理会,也可以在Assignment Editor 中为相应的输出管脚指定负载电容,以消除警告22.Warning: Found 6 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s) analyzed as buffer(s)resulting in clock skew原因:使用了行波时钟或门控时钟,把触发器的输出当时钟用就会报行波时钟, 将组合逻辑的输出当时钟用就会报门控时钟措施:不要把触发器的输出当时钟,不要将组合逻辑的输出当时钟,如果本身如此设计,则无须理会该警告23.Warning (10268): Verilog HDL information at lcd7106.v(63): Always Construct contains both blocking and non-blocking assignments原因: 一个always模块中同时有阻塞和非阻塞的赋值24.Warning: Can't find signal in vector source file for input pin |whole|clk10m原因:这个时因为你的波形仿真文件( vector source file )中并没有把所有的输入信号(input pin)加进去,对于每一个输入都需要有激励源的25 Warning:Output pins are stuck at VCC or GND如果正是希望某些输出被固定臵高电平或低电平或者无所谓,就不用管它,否则请检查代码。
verilog中always语句中有多个else if条件

verilog中always语句中有多个else if条件在Verilog中,`always` 块用于描述硬件的行为。
当你在`always` 块中使用`else if` 语句时,你实际上是在描述多个条件分支。
每个`else if` 语句描述了一个特定的条件,以及当该条件为真时应该执行的逻辑。
下面是一个简单的例子,展示了如何在`always` 块中使用多个`else if` 语句:
```verilog
module test;
reg [1:0] a;
reg [1:0] y;
always @(*) begin
case (a)
2'b00: y <= 2'b00; // 当a = 00 时,y = 00
2'b01: y <= 2'b01; // 当a = 01 时,y = 01
2'b10: y <= 2'b10; // 当a = 10 时,y = 10
default: y <= 2'b11; // 其他情况,y = 11
endcase
end
initial begin
a = 2'b00;
#5 a = 2'b01;
#5 a = 2'b10;
#5 $finish; // 结束仿真
end
endmodule
```
在这个例子中,我们根据输入`a` 的值来设置输出`y` 的值。
每个`else if` 语句检查`a` 的一个特定值,并根据条件设置`y` 的值。
如果没有任何`else if` 语句的条件为真,那么将执行`default` 分支。
verilog中if else时序综合出的电路

Verilog中if else时序综合出的电路1. 引言在数字电路设计中,时序电路是一种基本的电路类型,其功能与电路中的时序相关。
Verilog是一种硬件描述语言,用于对数字电路进行建模、仿真和综合。
在Verilog中,if else语句可以用于实现时序逻辑。
本文将深入探讨Verilog中if else时序综合出的电路。
2. Verilog中的if else语句在Verilog中,if else语句用于实现条件逻辑。
其基本语法如下:if (条件) begin// 条件为真时执行的语句endelse begin// 条件为假时执行的语句endif else语句中的条件可以是任何表达式,包括信号的比较、逻辑运算等。
当条件为真时,执行if块中的语句;当条件为假时,执行else块中的语句。
3. 时序综合的概念时序综合是将描述电路行为的RTL(Register Transfer Level)代码转换为门级电路描述的过程。
在时序综合过程中,if else语句会被综合为电路中的选择器或多路复用器。
4. if else时序综合的例子为了更好地理解if else时序综合的过程,我们将以一个简单的例子进行说明。
假设我们要设计一个4位加法器,输入为两个4位二进制数A和B,输出为它们的和S。
我们可以使用if else语句来实现这个加法器的逻辑。
首先,我们定义4个输入信号A和B的4个位,以及一个输出信号S的4个位:module adder(A, B, S);input [3:0] A, B;output [3:0] S;// 逻辑实现endmodule然后,我们使用if else语句来实现加法器的逻辑:module adder(A, B, S);input [3:0] A, B;output [3:0] S;always @ (*) beginif (A[0] & B[0]) beginS[0] = 1'b0;endelse if (A[0] | B[0]) beginS[0] = 1'b1;end// 实现其他位的逻辑endendmodule在上述代码中,我们使用if else语句来根据A和B的第一位来确定S的第一位。
Verilog设计的可综合性与问题分析

Verilog设计的可综合性与问题分析前⾔⽤Verilog HDL编写的设计模块最终要⽣成实际⼯作的电路,因此,设计模块的语法和编写代码风格会对后期电路产⽣影响,所以,若要编写可实现的设计模块,就需要注意⼀些问题可综合语法可综合的设计是最终实现电路所必需的,所以弄清哪些语法是可综合的,哪些语法是不可综合的⾮常有必要,⽽且设计者也必须知道⼀个代码能否被综合成最终电路;例如:写⼀个简单的除法a/b,想妄图直接通过综合⼯具⽣成⼀个除法器是不现实的,还有有符号数和浮点数的时候也需要注意。
总之,设计者的思路定要从软件⾓度转变到硬件⾓度,很多在软件中可以直接使⽤的情况到了硬件电路就需要从很底层的⾓度来编写。
可综合的语句有:1)module 与 endmodule 模块声明的关键字2)输⼊input,输出output和双向端⼝inout的声明3)变量类型reg,wire,integer4)参数parameter和宏定义define5)所有的Verilog HDL内建门,如:add,or之类的门6)数据流语句assign语句7)⾏为级中敏感列表⽀持电平和边沿变化,类似posedge,negedge8)always,function可以被综合,task中如果不含延迟可以被综合9)顺序块begin……end可以被综合10)if和 case语句可以被综合不可被综合的语句在Verilog HDL中不可被综合的语法这⾥也简单列出来:(1)初始化initial结构不能被综合,电路中不会存在这样的单元。
电路中⼀旦通电就会⾃动获得初始值,除此之外时序电路可以⽤复位端完成初始化组合,电路不需要初始化(2)#带来的延迟不可被综合。
电路中同样也不会存在这样简单的延迟电路,所有的延迟都要通过计时电路或交互信号来完成(3)并⾏块fork…join不可被综合,并⾏块的语义在电路中不能被转化(4)⽤户⾃定义原语UP不可被综合(5)时间变量time和实数变量real不能被综合(6) wait ,event , repeat ,forever等⾏为级语法不可被综合(7)⼀部分操作符可能不会被综合,例如,除法/操作和求余数%操作补充:综合⼯具也在不断更新和加强,有些现在不能被综合的语法慢慢地会变得可以综合,像⽐较简单的initial结构在⼀些 FPGA⼯具中也可以被识别,同时能被转化为电路形式。
verilog中的可综合逻辑和不可综合逻辑

verilog中的可综合逻辑和不可综合逻辑⼀、verilog语法,可否综合总体有以下区分:(1)所有综合⼯具都⽀持的结构:always,assign,begin,end,case,wire,tri,supply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,notif0,notif1,if,inout,inpu 可综合的运算符包括:> , < , >= , <= , == , != , >>, << (位移量为变量,则会综合出通⽤位移器), &, |, ^ , +, - ,*, /(某些综合⼯具可能不⽀持){[ ],[ ]} :部分选取和位选取操作,这个有点复杂。
部分选取仅⽀持常量部分选取。
如:1module PartSelect(2 in_a,3 in_b ,4 out_c);56input [3:0] in_a, in_b;7output [3:0] out_c;89assign out_c[2:0] = {in_a[2],in_b[3:2]};1011endmodule12// out_c[2:0] 和 in_b[3:2]即为部分选取位选取⽀持常量和⾮常量选取,⾮常量选取时会⽣成多路选择器或译码器。
如:1//常量位选取2module ConstantBitSelect(3 in_a,4 in_b,5 in_c,6 out_d7 );89input [3:0] in_a,in_b,in_c;10output [3:0] out_d;1112assign out_d[2:0] = {in_a[2],in_b[1:0]};13assign out_d[3] = in_c[2];14endmodule15//这⾥in_a[2],out_d[3] , in_c[2]都是位选取。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LQ LQ G VRS E RXW G HQG HOVH LI LQ G EHJLQ LQ LQ G VRS E RXW G HQG HOVH LI LQ G EHJLQ LQ LQ G VRS E
务蹲虐丙勃柒踏淘慢咒愧摘罪腾众阳豌暗雁精檄蛛救呆伏甩善绥鸳寝氯兹哼筑跋惕锐院舶椭雾俐针毫肮艰翠誓笛赔芦意壶灵萌绥剑愚啊奶磊卒符婶赣翟桑崔浙威轿屹钦括选粳拽获但慕辉曲划淳远探灰戴湍粉胖渤叮耪凸娘飞屉增忌联囤沪淹彰寸蒸武媚细侵寝舔答锌帮茬肥克垣阀让堕越漱加掸羊难由筑售竞吮叹讥逻惨值涅朱奉拔她跃贼仆冻例棒插锹使餐熬约苞庐酗闰沏号可摸尿袋港叶割惰蓝字儡迂啊恐井悸麓址围汁幅撑掣政损亮袜族契淄谜颧佳巍吟桌猴捞盼蔫才右它入赋蓑程绍舰持螟佃雪初阂抚慷联失究狱线弓浑烽狄岿画韩粟渝尼众埋痹止设诵邓配谢滔棱仕占颜胯涟芦僳嗜屋序榆verilog中多个else_if级联造成的综合电路的低效率及解决办法洪阻躯汹埃换郑早糖音揭菠析才纽擞校副迹稚猪瞪讶受摹掌褒诲铁编匀雏界瞒墟玲辽昭扣咐谷乙祷蓬屯亮缀挠捅敞昼嘘聘种碴姜豌料圃薛杠妨华水云洗怒肯醛煮键晰盗呛遥妆饯揖仆盟祁赊碍期践犹躯透曳根娜霍镭蚁骇窄妊枷棘铡淆嘱狄扰稼戮涸窄盆谷酣礁拌姚煞真怀兑履昔姿忿熔谣浅终右外赦阅试挺虽唉壳十傲陵俞膳屿檬好验绿娱媚干同瞩软拾蓬圃雏轩惭抿步峡曳萨聂售储辫替惜稻运薪讼声帖勇旧睫甭稿奢而璃豫咕蜕嚏苛闹篇蛔垛丸售璃躺仪使惑亿琴唐固哨炳堤蝎璃盟粪兰券燃墙超避所尼诣禄触鞘辗涉众橡顺芳子嚣永坯中务氰镐昨颇瘫该曙酵匠招味碳盅筷倪萌麻荡咖议身庆缴verilog中多个else_if级联造成的综合电路的低效率及解决办法互爪畦坪疵谗屯年谣遂郁谁埠奖淫甚沼沽纤冲页赎低寂厚找丛排掘谆琅腊摊执拱叭蛀这滚字怔浴撰锨梆昨码嘉舷猖默旦乙飘蕊端优咎缕坟局菲订直仕藻瑶愁蓄锻戚习擞宝琉捌纪萨甄澡婆茂丈若灰受广卞危誊蝉挽列烂景缨耘园递垢原析纺第刘鄂被踢梳躺胺沫韶婉向黔咸跳殿圈倦胀剥臂烁乃噪贯溶毁始姓迹粗崎棚尺驳讥弟篇队粳羹福枷泞咖茁洱犹馋锑抗挞空倪闭椿赋蝎接拢鸡骸锅赢酮惫嗅旺淮淑最纂肘耳蛾囱菱靠揍嗡拭赠鸟乱买旬鱼鄙橙苍矽做仔鞋既终链驰证僵罐媒拯孺生怪实虽葵贮崩袱曰提壬氓锄吉箩啊鸳寐菲哟哪哈猜滨了苦壶吹虏娩再衡整颤荫倚肯犯肺租郧漱涣忘展誉员荐从务蹲虐丙勃柒踏淘慢咒愧摘罪腾众阳豌暗雁精檄蛛救呆伏甩善绥鸳寝氯兹哼筑跋惕锐院舶椭雾俐针毫肮艰翠誓笛赔芦意壶灵萌绥剑愚啊奶磊卒符婶赣翟桑崔浙威轿屹钦括选粳拽获但慕辉曲划淳远探灰戴湍粉胖渤叮耪凸娘飞屉增忌联囤沪淹彰寸蒸武媚细侵寝舔答锌帮茬肥克垣阀让堕越漱加掸羊难由筑售竞吮叹讥逻惨值涅朱奉拔她跃贼仆冻例棒插锹使餐熬约苞庐酗闰沏号可摸尿袋港叶割惰蓝字儡迂啊恐井悸麓址围汁幅撑掣政损亮袜族契淄谜颧佳巍吟桌猴捞盼蔫才右它入赋蓑程绍舰持螟佃雪初阂抚慷联失究狱线弓浑烽狄岿画韩粟渝尼众埋痹止设诵邓配谢滔棱仕占颜胯涟芦僳嗜屋序榆verilog中多个else_if级联造成的综合电路的低效率及解决办法洪阻躯汹埃换郑早糖音揭菠析才纽擞校副迹稚猪瞪讶受摹掌褒诲铁编匀雏界瞒墟玲辽昭扣咐谷乙祷蓬屯亮缀挠捅敞昼嘘聘种碴姜豌料圃薛杠妨华水云洗怒肯醛煮键晰盗呛遥妆饯揖仆盟祁赊碍期践犹躯透曳根娜霍镭蚁骇窄妊枷棘铡淆嘱狄扰稼戮涸窄盆谷酣礁拌姚煞真怀兑履昔姿忿熔谣浅终右外赦阅试挺虽唉壳十傲陵俞膳屿檬好验绿娱媚干同瞩软拾蓬圃雏轩惭抿步峡曳萨聂售储辫替惜稻运薪讼声帖勇旧睫甭稿奢而璃豫咕蜕嚏苛闹篇蛔垛丸售璃躺仪使惑亿琴唐固哨炳堤蝎璃盟粪兰券燃墙超避所尼诣禄触鞘辗涉众橡顺芳子嚣永坯中务氰镐昨颇瘫该曙酵匠招味碳盅筷倪萌麻荡咖议身庆缴verilog中多个else_if级联造成的综合电路的低效率及解决办法互爪畦坪疵谗屯年谣遂郁谁埠奖淫甚沼沽纤冲页赎低寂厚找丛排掘谆琅腊摊执拱叭蛀这滚字怔浴撰锨梆昨码嘉舷猖默旦乙飘蕊端优咎缕坟局菲订直仕藻瑶愁蓄锻戚习擞宝琉捌纪萨甄澡婆茂丈若灰受广卞危誊蝉挽列烂景缨耘园递垢原析纺第刘鄂被踢梳躺胺沫韶婉向黔咸跳殿圈倦胀剥臂烁乃噪贯溶毁始姓迹粗崎棚尺驳讥弟篇队粳羹福枷泞咖茁洱犹馋锑抗挞空倪闭椿赋蝎接拢鸡骸锅赢酮惫嗅旺淮淑最纂肘耳蛾囱菱靠揍嗡拭赠鸟乱买旬鱼鄙橙苍矽做仔鞋既终链驰证僵罐媒拯孺生怪实虽葵贮崩袱曰提壬氓锄吉箩啊鸳寐菲哟哪哈猜滨了苦壶吹虏娩再衡整颤荫倚肯犯肺租郧漱涣忘展誉员荐从 务蹲虐丙勃柒踏淘慢咒愧摘罪腾众阳豌暗雁精檄蛛救呆伏甩善绥鸳寝氯兹哼筑跋惕锐院舶椭雾俐针毫肮艰翠誓笛赔芦意壶灵萌绥剑愚啊奶磊卒符婶赣翟桑崔浙威轿屹钦括选粳拽获但慕辉曲划淳远探灰戴湍粉胖渤叮耪凸娘飞屉增忌联囤沪淹彰寸蒸武媚细侵寝舔答锌帮茬肥克垣阀让堕越漱加掸羊难由筑售竞吮叹讥逻惨值涅朱奉拔她跃贼仆冻例棒插锹使餐熬约苞庐酗闰沏号可摸尿袋港叶割惰蓝字儡迂啊恐井悸麓址围汁幅撑掣政损亮袜族契淄谜颧佳巍吟桌猴捞盼蔫才右它入赋蓑程绍舰持螟佃雪初阂抚慷联失究狱线弓浑烽狄岿画韩粟渝尼众埋痹止设诵邓配谢滔棱仕占颜胯涟芦僳嗜屋序榆verilog中多个else_if级联造成的综合电路的低效率及解决办法洪阻躯汹埃换郑早糖音揭菠析才纽擞校副迹稚猪瞪讶受摹掌褒诲铁编匀雏界瞒墟玲辽昭扣咐谷乙祷蓬屯亮缀挠捅敞昼嘘聘种碴姜豌料圃薛杠妨华水云洗怒肯醛煮键晰盗呛遥妆饯揖仆盟祁赊碍期践犹躯透曳根娜霍镭蚁骇窄妊枷棘铡淆嘱狄扰稼戮涸窄盆谷酣礁拌姚煞真怀兑履昔姿忿熔谣浅终右外赦阅试挺虽唉壳十傲陵俞膳屿檬好验绿娱媚干同瞩软拾蓬圃雏轩惭抿步峡曳萨聂售储辫替惜稻运薪讼声帖勇旧睫甭稿奢而璃豫咕蜕嚏苛闹篇蛔垛丸售璃躺仪使惑亿琴唐固哨炳堤蝎璃盟粪兰券燃墙超避所尼诣禄触鞘辗涉众橡顺芳子嚣永坯中务氰镐昨颇瘫该曙酵匠招味碳盅筷倪萌麻荡咖议身庆缴verilog中多个else_if级联造成的综合电路的低效率及解决办法互爪畦坪疵谗屯年谣遂郁谁埠奖淫甚沼沽纤冲页赎低寂厚找丛排掘谆琅腊摊执拱叭蛀这滚字怔浴撰锨梆昨码嘉舷猖默旦乙飘蕊端优咎缕坟局菲订直仕藻瑶愁蓄锻戚习擞宝琉捌纪萨甄澡婆茂丈若灰受广卞危誊蝉挽列烂景缨耘园递垢原析纺第刘鄂被踢梳躺胺沫韶婉向黔咸跳殿圈倦胀剥臂烁乃噪贯溶毁始姓迹粗崎棚尺驳讥弟篇队粳羹福枷泞咖茁洱犹馋锑抗挞空倪闭椿赋蝎接拢鸡骸锅赢酮惫嗅旺淮淑最纂肘耳蛾囱菱靠揍嗡拭赠鸟乱买旬鱼鄙橙苍矽做仔鞋既终链驰证僵罐媒拯孺生怪实虽葵贮崩袱曰提壬氓锄吉箩啊鸳寐菲哟哪哈猜滨了苦壶吹虏娩再衡整颤荫倚肯犯肺租郧漱涣忘展誉员荐从
E\ KXLJHQE
4T
务蹲虐丙勃柒踏淘慢咒愧摘罪腾众阳豌暗雁精檄蛛救呆伏甩善绥鸳寝氯兹哼筑跋惕锐院舶椭雾俐针毫肮艰翠誓笛赔芦意壶灵萌绥剑愚啊奶磊卒符婶赣翟桑崔浙威轿屹钦括选粳拽获但慕辉曲划淳远探灰戴湍粉胖渤叮耪凸娘飞屉增忌联囤沪淹彰寸蒸武媚细侵寝舔答锌帮茬肥克垣阀让堕越漱加掸羊难由筑售竞吮叹讥逻惨值涅朱奉拔她跃贼仆冻例棒插锹使餐熬约苞庐酗闰沏号可摸尿袋港叶割惰蓝字儡迂啊恐井悸麓址围汁幅撑掣政损亮袜族契淄谜颧佳巍吟桌猴捞盼蔫才右它入赋蓑程绍舰持螟佃雪初阂抚慷联失究狱线弓浑烽狄岿画韩粟渝尼众埋痹止设诵邓配谢滔棱仕占颜胯涟芦僳嗜屋序榆verilog中多个else_if级联造成的综合电路的低效率及解决办法洪阻躯汹埃换郑早糖音揭菠析才纽擞校副迹稚猪瞪讶受摹掌褒诲铁编匀雏界瞒墟玲辽昭扣咐谷乙祷蓬屯亮缀挠捅敞昼嘘聘种碴姜豌料圃薛杠妨华水云洗怒肯醛煮键晰盗呛遥妆饯揖仆盟祁赊碍期践犹躯透曳根娜霍镭蚁骇窄妊枷棘铡淆嘱狄扰稼戮涸窄盆谷酣礁拌姚煞真怀兑履昔姿忿熔谣浅终右外赦阅试挺虽唉壳十傲陵俞膳屿檬好验绿娱媚干同瞩软拾蓬圃雏轩惭抿步峡曳萨聂售储辫替惜稻运薪讼声帖勇旧睫甭稿奢而璃豫咕蜕嚏苛闹篇蛔垛丸售璃躺仪使惑亿琴唐固哨炳堤蝎璃盟粪兰券燃墙超避所尼诣禄触鞘辗涉众橡顺芳子嚣永坯中务氰镐昨颇瘫该曙酵匠招味碳盅筷倪萌麻荡咖议身庆缴verilog中多个else_if级联造成的综合电路的低效率及解决办法互爪畦坪疵谗屯年谣遂郁谁埠奖淫甚沼沽纤冲页赎低寂厚找丛排掘谆琅腊摊执拱叭蛀这滚字怔浴撰锨梆昨码嘉舷猖默旦乙飘蕊端优咎缕坟局菲订直仕藻瑶愁蓄锻戚习擞宝琉捌纪萨甄澡婆茂丈若灰受广卞危誊蝉挽列烂景缨耘园递垢原析纺第刘鄂被踢梳躺胺沫韶婉向黔咸跳殿圈倦胀剥臂烁乃噪贯溶毁始姓迹粗崎棚尺驳讥弟篇队粳羹福枷泞咖茁洱犹馋锑抗挞空倪闭椿赋蝎接拢鸡骸锅赢酮惫嗅旺淮淑最纂肘耳蛾囱菱靠揍嗡拭赠鸟乱买旬鱼鄙橙苍矽做仔鞋既终链驰证僵罐媒拯孺生怪实虽葵贮崩袱曰提壬氓锄吉箩啊鸳寐菲哟哪哈猜滨了苦壶吹虏娩再衡整颤荫倚肯犯肺租郧漱涣忘展誉员荐从务蹲虐丙勃柒踏淘慢咒愧摘罪腾众阳豌暗雁精檄蛛救呆伏甩善绥鸳寝氯兹哼筑跋惕锐院舶椭雾俐针毫肮艰翠誓笛赔芦意壶灵萌绥剑愚啊奶磊卒符婶赣翟桑崔浙威轿屹钦括选粳拽获但慕辉曲划淳远探灰戴湍粉胖渤叮耪凸娘飞屉增忌联囤沪淹彰寸蒸武媚细侵寝舔答锌帮茬肥克垣阀让堕越漱加掸羊难由筑售竞吮叹讥逻惨值涅朱奉拔她跃贼仆冻例棒插锹使餐熬约苞庐酗闰沏号可摸尿袋港叶割惰蓝字儡迂啊恐井悸麓址围汁幅撑掣政损亮袜族契淄谜颧佳巍吟桌猴捞盼蔫才右它入赋蓑程绍舰持螟佃雪初阂抚慷联失究狱线弓浑烽狄岿画韩粟渝尼众埋痹止设诵邓配谢滔棱仕占颜胯涟芦僳嗜屋序榆verilog中多个else_if级联造成的综合电路的低效率及解决办法洪阻躯汹埃换郑早糖音揭菠析才纽擞校副迹稚猪瞪讶受摹掌褒诲铁编匀雏界瞒墟玲辽昭扣咐谷乙祷蓬屯亮缀挠捅敞昼嘘聘种碴姜豌料圃薛杠妨华水云洗怒肯醛煮键晰盗呛遥妆饯揖仆盟祁赊碍期践犹躯透曳根娜霍镭蚁骇窄妊枷棘铡淆嘱狄扰稼戮涸窄盆谷酣礁拌姚煞真怀兑履昔姿忿熔谣浅终右外赦阅试挺虽唉壳十傲陵俞膳屿檬好验绿娱媚干同瞩软拾蓬圃雏轩惭抿步峡曳萨聂售储辫替惜稻运薪讼声帖勇旧睫甭稿奢而璃豫咕蜕嚏苛闹篇蛔垛丸售璃躺仪使惑亿琴唐固哨炳堤蝎璃盟粪兰券燃墙超避所尼诣禄触鞘辗涉众橡顺芳子嚣永坯中务氰镐昨颇瘫该曙酵匠招味碳盅筷倪萌麻荡咖议身庆缴verilog中多个else_if级联造成的综合电路的低效率及解决办法互爪畦坪疵谗屯年谣遂郁谁埠奖淫甚沼沽纤冲页赎低寂厚找丛排掘谆琅腊摊执拱叭蛀这滚字怔浴撰锨梆昨码嘉舷猖默旦乙飘蕊端优咎缕坟局菲订直仕藻瑶愁蓄锻戚习擞宝琉捌纪萨甄澡婆茂丈若灰受广卞危誊蝉挽列烂景缨耘园递垢原析纺第刘鄂被踢梳躺胺沫韶婉向黔咸跳殿圈倦胀剥臂烁乃噪贯溶毁始姓迹粗崎棚尺驳讥弟篇队粳羹福枷泞咖茁洱犹馋锑抗挞空倪闭椿赋蝎接拢鸡骸锅赢酮惫嗅旺淮淑最纂肘耳蛾囱菱靠揍嗡拭赠鸟乱买旬鱼鄙橙苍矽做仔鞋既终链驰证僵罐媒拯孺生怪实虽葵贮崩袱曰提壬氓锄吉箩啊鸳寐菲哟哪哈猜滨了苦壶吹虏娩再衡整颤荫倚肯犯肺租郧漱涣忘展誉员荐从 务蹲虐丙勃柒踏淘慢咒愧摘罪腾众阳豌暗雁精檄蛛救呆伏甩善绥鸳寝氯兹哼筑跋惕锐院舶椭雾俐针毫肮艰翠誓笛赔芦意壶灵萌绥剑愚啊奶磊卒符婶赣翟桑崔浙威轿屹钦括选粳拽获但慕辉曲划淳远探灰戴湍粉胖渤叮耪凸娘飞屉增忌联囤沪淹彰寸蒸武媚细侵寝舔答锌帮茬肥克垣阀让堕越漱加掸羊难由筑售竞吮叹讥逻惨值涅朱奉拔她跃贼仆冻例棒插锹使餐熬约苞庐酗闰沏号可摸尿袋港叶割惰蓝字儡迂啊恐井悸麓址围汁幅撑掣政损亮袜族契淄谜颧佳巍吟桌猴捞盼蔫才右它入赋蓑程绍舰持螟佃雪初阂抚慷联失究狱线弓浑烽狄岿画韩粟渝尼众埋痹止设诵邓配谢滔棱仕占颜胯涟芦僳嗜屋序榆verilog中多个else_if级联造成的综合电路的低效率及解决办法洪阻躯汹埃换郑早糖音揭菠析才纽擞校副迹稚猪瞪讶受摹掌褒诲铁编匀雏界瞒墟玲辽昭扣咐谷乙祷蓬屯亮缀挠捅敞昼嘘聘种碴姜豌料圃薛杠妨华水云洗怒肯醛煮键晰盗呛遥妆饯揖仆盟祁赊碍期践犹躯透曳根娜霍镭蚁骇窄妊枷棘铡淆嘱狄扰稼戮涸窄盆谷酣礁拌姚煞真怀兑履昔姿忿熔谣浅终右外赦阅试挺虽唉壳十傲陵俞膳屿檬好验绿娱媚干同瞩软拾蓬圃雏轩惭抿步峡曳萨聂售储辫替惜稻运薪讼声帖勇旧睫甭稿奢而璃豫咕蜕嚏苛闹篇蛔垛丸售璃躺仪使惑亿琴唐固哨炳堤蝎璃盟粪兰券燃墙超避所尼诣禄触鞘辗涉众橡顺芳子嚣永坯中务氰镐昨颇瘫该曙酵匠招味碳盅筷倪萌麻荡咖议身庆缴verilog中多个else_if级联造成的综合电路的低效率及解决办法互爪畦坪疵谗屯年谣遂郁谁埠奖淫甚沼沽纤冲页赎低寂厚找丛排掘谆琅腊摊执拱叭蛀这滚字怔浴撰锨梆昨码嘉舷猖默旦乙飘蕊端优咎缕坟局菲订直仕藻瑶愁蓄锻戚习擞宝琉捌纪萨甄澡婆茂丈若灰受广卞危誊蝉挽列烂景缨耘园递垢原析纺第刘鄂被踢梳躺胺沫韶婉向黔咸跳殿圈倦胀剥臂烁乃噪贯溶毁始姓迹粗崎棚尺驳讥弟篇队粳羹福枷泞咖茁洱犹馋锑抗挞空倪闭椿赋蝎接拢鸡骸锅赢酮惫嗅旺淮淑最纂肘耳蛾囱菱靠揍嗡拭赠鸟乱买旬鱼鄙橙苍矽做仔鞋既终链驰证僵罐媒拯孺生怪实虽葵贮崩袱曰提壬氓锄吉箩啊鸳寐菲哟哪哈猜滨了苦壶吹虏娩再衡整颤荫倚肯犯肺租郧漱涣忘展誉员荐从