首页 > 其他分享 >HDLBits(13)2.24

HDLBits(13)2.24

时间:2023-03-01 09:33:16浏览次数:50  
标签:13 HDLBits top module output input assign 2.24 out

3 电路

3.1 组合逻辑

3.1.4 卡诺线路图(Karnaugh Map to Circuit)

  • Kmap1(3-variable)

out = a + ab +ac = a & (a^b) & (a^c) = a | b | c 

module top_module(
    input a,
    input b,
    input c,
    output out  ); 
    assign out = a|b|c;
endmodule
  •  Kmap2(4-variable)

module top_module(
    input a,
    input b,
    input c,
    input d,
    output out  ); 
    assign out = (~b&~c)|(~a&~d)|(b&c&d)|(a&c&d);
endmodule
  •  Kmap3(4-variable)

*d 既可视为1,也可视为0

module top_module(
    input a,
    input b,
    input c,
    input d,
    output out  ); 
    assign out = (~b&c)|a;
endmodule
  • Kmap4(4-variable)

 
module top_module(
    input a,
    input b,
    input c,
    input d,
    output out  ); 
    assign out = (~a&~b&~c&d)|(~a&b&~c&~d)|(a&b&~c&d)|(a&~b&~c&~d)|(~a&b&c&d)|(a&~b&c&d)|(~a&~b&c&~d)|(a&b&c&~d);
endmodule
  • Minimum SOP and POS

具有四个输入(a、b、c、d)的单输出数字系统在输入上出现 2、7 或 15 时生成逻辑 1,当输入上出现 0、1、4、5、6 、9、10、13 或 14 出现时生成逻辑 0。数字 3、8、11 和 12 的输入条件在此系统中永远不会出现。例如,7 对应于 a、b、c、d 分别设置为 0、1、1、1。

确定最小SOP形式(积之和 最小项)的输出out_sop,以及最小POS形式(和之积 最大项)的输出out_pos。

module top_module (
    input a,
    input b,
    input c,
    input d,
    output out_sop,
    output out_pos
); 
    assign out_sop = (~a&~b&c)|(c&d);
    assign out_pos = c&(~b|d)&(~a|d);
endmodule
  • Karnaugh map

module top_module (
    input [4:1] x, 
    output f );
    assign f = (~x[1]&x[3])|(x[2]&x[4]);
endmodule
  • K-map implemented with a multiplxer

对于下面的卡诺图,给出使用一个 4 对 1 多路复用器和尽可能多的 2 对 1 多路复用器的电路实现,但使用尽可能少。不允许使用任何其他逻辑门,并且必须使用a和b作为多路复用器选择器输入,如下面的 4 对 1 多路复用器所示。您只实现了标记为top_module的部分,以便整个电路(包括 4 对 1 多路复用器)实现 K-map。

    

module top_module (
    input c,
    input d,
    output [3:0] mux_in
); 
    assign mux_in[0] = c|d;
    assign mux_in[1] = 0;
    assign mux_in[2] = ~d;
    assign mux_in[3] = c&d;
endmodule

 

 

3.2 时序逻辑

3.2.1 锁存器与触发器(Latches and Flip-Flops)

  • Dff(D Flip-Flops)(D触发器)

D触发器是一种存储位并定期更新的电路,通常在时钟信号的上升沿触发。

当使用时钟控制的always 块时,逻辑合成器会创建 D 触发器。D触发器是“组合逻辑块后接触发器”的最简单形式,其中组合逻辑部分只是一条线。创建一个 D 触发器。

module top_module (
    input clk,    // Clocks are used in sequential circuits
    input d,
    output reg q );//
 
    // Use a clocked always block
    //   copy d to q at every positive edge of clk
    //   Clocked always blocks should use non-blocking assignments
    always @(posedge clk) begin
        q<=d;
    end
endmodule
  • Dff8

创建一个8位D触发器,所有的Dff都应由时钟上升沿触发

module top_module (
    input clk,
    input [7:0] d,
    output [7:0] q
);
    always @(posedge clk) begin
        q<=d;
    end
endmodule
  • Dff8r(DFF with reset)

创建一个8位具有高电平有效同步复位的 D 触发器,所有的Dff都应由时钟上升沿触发

module top_module (
    input clk,
    input reset,            // Synchronous reset
    input [7:0] d,
    output [7:0] q
);
    always@(posedge clk) begin
       if(reset)
           q<=8'd0;
       else
           q<=d; 
    end
endmodule
  • Dff8p(DFF with reset value)

创建 8 位具有高电平有效同步复位的 D 触发器。触发器必须重置为 0x34 而不是零。所有 DFF 都应由clk的下降沿触发。将寄存器重置为“1”有时称为“预设(preset)”

module top_module (
    input clk,
    input reset,
    input [7:0] d,
    output [7:0] q
);
    always @(negedge clk)
        begin
            if(reset)
                q <= 8'h0x34;
            else
                q <= d;
        end
endmodule

 

标签:13,HDLBits,top,module,output,input,assign,2.24,out
From: https://www.cnblogs.com/LhTian/p/17152111.html

相关文章

  • 2023.2.24模拟赛
    T1题意:对于给定的数组\(a\),存在多少个四元组\((b_{1},b_{2},b_{3},b_{4})(1\leb_{1}<b_{2}<b_{3}<b_{4}\len)\),使得\(a_{b_{1}}\)\(xor\)\(a_{b_{2}}\)\(xor\)\(a_......
  • ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析
    目录建表折叠数据算法资料分享参考文章该引擎继承于MergeTree,并在数据块合并算法中添加了折叠行的逻辑。CollapsingMergeTree会异步的删除(折叠)这些除了特定列Sign有1和-1......
  • AD52060兼容替代TPA3110,AD52050兼容替代TPA3136
    AD52060是一款高效立体声D类功放,它的供电范围较宽(8V~26V),能方便地与各型电源板,包括LED液晶电源板、电源高压二合一板等相连接;输出功率较大,在供电为24V的状态下,输出功率可......
  • 1326. 灌溉花园的最少水龙头数目 (Hard)
    问题描述1326.灌溉花园的最少水龙头数目(Hard)在x轴上有一个一维的花园。花园长度为n,从点0开始,到点n结束。花园里总共有n+1个水龙头,分别位于[0,1,...,......
  • 132 模式 (Medium)
    问题描述456.132模式(Medium)给你一个整数数组nums,数组中共有n个整数。132模式的子序列由三个整数nums[i]、nums[j]和nums[k]组成,并同时满足:i<j<k......
  • 1139. 最大的以 1 为边界的正方形 (Medium)
    问题描述1139.最大的以1为边界的正方形(Medium)给你一个由若干0和1组成的二维网格grid,请你找出边界全部由1组成的最大正方形子网格,并返回该子网格中的元素......
  • 「CF1336E」Chiori and Doll Picking
    题目点这里看题目。给定一个长度为\(n\)的非负整数序列\(a\)和非负整数参数\(m\),保证\(\forall1\lei\len,0\lea_i<2^m\)。设\(U=\{1,2,3,\dots,n-1,n\}\)。......
  • Exchange 2013 清空邮箱
    在某些应用场景中,需要清空用户邮箱的所有数据。如果使用Outlookwebapp或者Outlook的邮件删除方式,对数以千计的邮件来说,实在不是一个好办法。exchange管理员可以使用“Se......
  • 代码随想录算法Day27 | 39. 组合总和 , 40.组合总和II ,131.分割回文串
    39.组合总和题目链接:39.组合总和-力扣(LeetCode)思路既然题目说可以数组中的数可以无限制重复被选取,那么说明在选取该元素的下一个分支也可以继续使用。选取和剪枝过......
  • 代码随想录day13 | 滑动窗口最大值 前 K 个高频元素
    滑动窗口最大值题目:给你一个整数数组nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k 个数字。滑动窗口每次只向右......