2629|0

2642

帖子

6

TA的资源

五彩晶圆(初级)

楼主
 

SIMterix-Simplis~8~ [复制链接]

记得之前读书时候学门电路就是用门电路搭三人表决器,虽然已经过了很久,但这个还是比较经典的,咱们就用SIMterix-simplis来复现下。

首先新建一个 voter.v的文件,如果用的是VScode记得安装下相关的Verilog插件。使用verilog编程像我这样的新手可以参考夏宇闻老师的书。

图1:使用VScode打开Voter.v

首先咱们先确定下输入输出,如下所示

输入:A,B,C, 输出:D \\当大多数人同意时候输出D为高。

确定输入输出逻辑后直接开始撸。

图2:参考代码1

参考代码1:

module Voter (

    input wire a,

    input wire b,

    input wire c,

    output wire d

);

// 使用1个&代表按位&

// 使用两个|代表逻辑或

// assign 用来实现wire型的输出

assign d=(a&b)||(b&c)||(c&a);

endmodule

 

根据以上代码参考SIMterix-simplis~4~构建完的电路如下图所示。

 

图3:三人表决器电路图

图4:三人表决器仿真结果

虽然直接使用电压源就可以做仿真,但是这样整太麻烦了,咱们在写个测试三人表决器的module。

当时钟输入时候,a,b,c各种花样变一下就好了。咱们就新建一个文件脚vocter_tb.v。

参考代码2:

module vocter_tb (

    input wire clk,

    output reg a,

    output reg b,

    output reg c

);

//定义一个3位的寄存器

reg [2:0]temp;

//初始化 abc 让abc一开始等于0

//避免错误触发

initial begin

    a=1'b0;

    b=1'b0;

    c=1'b0;

    temp=3'b000;

end

//每当时钟来临temp+1

always @( negedge clk) begin

    temp<=temp+1'b1;

    a<=temp[0];

    b<=temp[1];

    c<=temp[2];

end

 

endmodule

 

图5:参考代码2

 

图6:参考电路

 

图7:仿真结果

直接使用Verilog编写驱动代码就省事多了,我们只需要一个信号源直接就能得到3个变换的信号,相比改电源发生器的逻辑简单了许多。

突然发觉这个test的发生器适用于测试HC138,咱们就在撸一个138译码器。刚好复习以下Verilog的语法。

参考代码3:

module HC_138(

input A,

input B,

input C,

input EN,

output reg [7:0] Q

);

always @( A or B or C or EN) begin

    case({A,B,C,EN})

    4'b0001 : Q <= 8'b00000001;

    4'b0011 : Q <= 8'b00000010;

    4'b0101 : Q <= 8'b00000100;

    4'b0111 : Q <= 8'b00001000;

    4'b1001 : Q <= 8'b00010000;

    4'b1011 : Q <= 8'b00100000;

    4'b1101 : Q <= 8'b01000000;

    4'b1111 : Q <= 8'b10000000;

    default : Q <= 8'b00000000;

    endcase

end

endmodule

 

 

 

 

 

图8:接上138 decoder的图纸

图9:Probe 要选择 bus probe

 

图10:HC138仿真结果

今天的仿真就到此为止吧~

此帖出自模拟电子论坛
点赞 关注
个人签名

希望做一些大家觉得好用的东西!


回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表