EDA高速回路设计作业2

实验1:
做一个4选1的mux,并且进行波形仿真 和2选1的mux对比,观察资源消耗的变化
实验代码如下图所示:
EDA高速回路设计作业2_第1张图片
RTL Viewer如下图所示:
EDA高速回路设计作业2_第2张图片
波形仿真图:
EDA高速回路设计作业2_第3张图片
4选1的MUX的资源消耗:
EDA高速回路设计作业2_第4张图片
2选1的MUX的资源消耗:
EDA高速回路设计作业2_第5张图片
通过两个图的对比,4选1的MUX比2选1的MUX消耗的资源更多。
实验2:
编写一个4X4路交叉开关的RTL,然后编译,看RTL View 比较2x2与4x4之间消耗资源的区别。通过对比资源,你有什么结论?
实验代码如下图所示:

EDA高速回路设计作业2_第6张图片
RTL Viewer如下图所示:
EDA高速回路设计作业2_第7张图片
4X4的资源消耗:
EDA高速回路设计作业2_第8张图片
2X2的资源消耗:
EDA高速回路设计作业2_第9张图片
由上两图可知,4X4的资源消耗成倍增长了。
实验3:
编写一个8输入的优先编码器,然后编译,看RTL Viewer
实验代码:
EDA高速回路设计作业2_第10张图片
RTL Viewer:
EDA高速回路设计作业2_第11张图片
实验4:
1、编写一个4-16的译码器,编译
2、和3-8译码器对比资源开销
3、看RTL View
实验代码:
EDA高速回路设计作业2_第12张图片
RTL Viewer:
EDA高速回路设计作业2_第13张图片
4-16的资源开销:
EDA高速回路设计作业2_第14张图片
3-8的资源开销:
EDA高速回路设计作业2_第15张图片
由此可知,输入多了一位,输出多了8位,资源的开销增长多了一倍,因此资源开销与输出位数正相关。
实验5:
1、把加法器的输出信号改成4比特位宽,编译,波形仿真。观察输出结果,说出输出和输入的对应关系。
2、把加法器的输入信号改成8比特位宽,编译,波形仿真。观察加法器的输出延迟,和4比特输入位宽的情况对比,你有什么结论,为什么?
4 bit实验代码:
EDA高速回路设计作业2_第16张图片
波形仿真图:
EDA高速回路设计作业2_第17张图片
可见当输出信号位宽下降时,不能完整的实现其功能,当输出值大于15之后就会出错。
8 bit实验代码:
EDA高速回路设计作业2_第18张图片
仿真波形图:
EDA高速回路设计作业2_第19张图片
由此可知其输出时延稍大于4输入的无符号加法器。
实验6:
1、把加法器的输出信号改成4比特位宽,编译,波形仿真。观察输出结果,观察输出结果在什么时候是正确的?
2、把加法器的输入信号改成8比特位宽,编译,波形仿真。观察加法器的输出延迟,和4比特输入位宽的情况对比,你有什么结论,为什么?
4 bit实验代码:
EDA高速回路设计作业2_第20张图片
波形仿真图:
EDA高速回路设计作业2_第21张图片
当补码相加溢出时,结果出错。
8 bit实验代码:
EDA高速回路设计作业2_第22张图片
EDA高速回路设计作业2_第23张图片
和4比特输入相比,延时稍大一点。
实验7:
1、不改变流水线的级数,把加法器的输入信号改成8比特位宽,编译,波形仿
真,和不带流水线的情况对比一下,你有什么结论?
实验代码:
EDA高速回路设计作业2_第24张图片
波形仿真图:
EDA高速回路设计作业2_第25张图片
可知与不加流水线的加法器相比,带流水线的加法器即在加法器的输入与输出都连接了D触发器,有效的减少了组合逻辑的竞争与冒险,从而明显减少了“毛刺”的长度。
2、在8比特输入位宽的情况下,在输入上再添加一级流水线,观察编译和仿真的结果,你有什么结论?
实验代码:
EDA高速回路设计作业2_第26张图片
波形仿真图:
EDA高速回路设计作业2_第27张图片
可以知道流水线的级数越高,毛刺也随之越短,但输出的时延也会相应的多一个时钟周期。
实验8:
1、改变乘法器的输入位宽为8比特,编译,波形仿真,观察信号毛刺的时间长度。
实验代码:
EDA高速回路设计作业2_第28张图片
波形仿真图:
EDA高速回路设计作业2_第29张图片
2、选一款没有硬件乘法器的FPGA芯片(例如Cyclone EP1C6)对比8比特的乘法器和加法器两者编译之后的资源开销(Logic Cell的数目)
乘法器:
EDA高速回路设计作业2_第30张图片
加法器:
EDA高速回路设计作业2_第31张图片
3、编写一个输入和输出都有D触发器的流水线乘法器代码,编译后波形仿真,观察组合逻辑延迟和毛刺的时间,和不带流水线的情况下对比。
实验代码:
EDA高速回路设计作业2_第32张图片
波形仿真图:
EDA高速回路设计作业2_第33张图片
实验9:
1、设计一个最简单的计数器,只有一个CLK输入和一个OVerflow输出,当计数到最大值的时钟周期CLK输出1
实验代码:
EDA高速回路设计作业2_第34张图片
波形仿真图:
EDA高速回路设计作业2_第35张图片
2、设计复杂的计数器,和本例相似,带有多种信号,其中同步清零CLR的优先级最高,使能EN次之,LOAD最低。
实验代码:
EDA高速回路设计作业2_第36张图片
波形仿真图:
EDA高速回路设计作业2_第37张图片
实验10:
设计一个用于识别2进制序列“1011”的状态机
基本要求:
电路每个时钟周期输入1比特数据,当捕获到1011的时钟周期,电路输出1,否则输出0;
使用序列101011010作为输出的测试序列;
扩展要求:
给你的电路添加输入使能端口,只有输入使能EN为1的时钟周期,才从输入的数据端口向内部获取1比特序列数据。
实验代码:
EDA高速回路设计作业2_第38张图片
EDA高速回路设计作业2_第39张图片
EDA高速回路设计作业2_第40张图片
实验11:
设计一个如本节“电路描述”部分的“带加载使能和移位使能的并入串出”的移位寄存器,电路的RTL结构图如“电路描述”部分的RTL结构图所示。
实验代码:
EDA高速回路设计作业2_第41张图片
RTL Viewer:
EDA高速回路设计作业2_第42张图片
波形仿真图:
EDA高速回路设计作业2_第43张图片

你可能感兴趣的:(EDA高速回路设计作业2)