成都响应式网站,营销模板WordPress,wordpress博客访问,wordpress post提交从左到右#xff0c;从上到下 先搞定缓冲/非门#xff0c;再写与/或门
1. 实例解读
先以四选一数据选择器进行说明 对于数字逻辑的部分不再说明#xff0c;直接进行逻辑电路图到Verilog门级建模的人工翻译过程的描述。
1.1 端口和线网分析
确定输入/输出端口 输入端口 …从左到右从上到下 先搞定缓冲/非门再写与/或门
1. 实例解读
先以四选一数据选择器进行说明 对于数字逻辑的部分不再说明直接进行逻辑电路图到Verilog门级建模的人工翻译过程的描述。
1.1 端口和线网分析
确定输入/输出端口 输入端口 数据端i0i1i2i3控制端s1s0小端序写法高字节在高位 输出端口 数据端out 确定子模块内部线网 非门类s1ns0n与门类y0y1y2y3
至此可以翻译的部分为
module mux4_to_1 ( // 四选一数据选择器模块input i0,i1,i2,i3,input s1,s0,output out);// 设置内部线网wire s1n,s0n;wire y0,y1,y2,y3;其他
endmodule【疑问】为什么内部线网用wire而不用寄存器reg
继续从端口连接规则——污水处理模型来谈及我们
把wire比作无阀门水管把reg比作双阀门水管把设计块的设计过程比作水管与其他器件的连接过程此时是没有通水的把激励块的设计过程比作管道通水以测试连接的正确性
1.2 器件分析 器件分析的顺序
对于左边输入右边输出的逻辑电路图来说
缓冲门/非门单独拎出来从左到右从上到下
因此有如下器件翻译顺序
非门2个与门4个或门1个
给出如下代码片非完整代码
// 连接门电路
not (s1n,s1);
not (s0n,s0);// 【特别注意】以下部分的s1s0的写法是有规律的背着写就可以
and (y0,i0,s1n,s0n); // 0,0
and (y1,i1,s1n,s0); // 0,1
and (y2,i2,s1,s0n); // 1,0
and (y3,i3,s1,s0); // 1,1or (out,y0,y1,y2,y3);1.3 完善的设计块
module mux4_to_1( // 1位 四选一数据选择器input i0,i1,i2,i3,input s0,s1,output out);// 声明内部线网wire s0n,s1n;wire y0,y1,y2,y3;// 门级建模not (s0n,s0);not (s1n,s1);and (y0,i0,s1n,s0n);and (y1,i1,s1n,s0);and (y2,i2,s1,s0n);and (y3,i3,s1,s0);or (out,y0,y1,y2,y3);endmodule2. 总结门级建模的翻译方法
对于设计好的逻辑电路图来说有这样的方法进行翻译这种方法会让你翻译出来的门级描述逻辑清晰严谨
2.1 前提条件
逻辑电路图的设计是数字逻辑课程的内容这里不讲逻辑电路图需要是优化的也就是应用层级建模方法设计出来的而不是很乱的一堆电路图。 例如设计一个四位全加器需要首先设计出来一个一位全加器在这里一位全加器的逻辑电路图和四位全加器的逻辑电路图是两张图并且四位全加器直接应用一位全加器的实例
2.2 具体方法
对于某一个子模块的设计来说
先确定端口再确定内部线网再确定需要的逻辑门 先缓冲门/非门再与/或门从左到右从上到下左边输入右边输出