[原创] SIMterix-Simplies~4~ Verilog

xutong   2022-9-23 15:24 楼主

 

在整数模混合的系统时候,往往仿真只能仿真Verilog 或者仿真只能仿真模拟,若是数字部分只有输出还好,只需要编辑电压源导入波形文件即可。但如果这个模块既要有输入又要有输出那仿真起来就会比较麻烦。

可能需要用门电路构建一些逻辑。

而SIMterix-Simplies就可以模拟和数字一起仿真,若是我们要构建一个简单的ASIC直接用Simplies就可以直接构建,并且搭上外围电路直接验证其逻辑。在这里我们就讨论如何在Simplies 里面仿真Verilog。

首先我们先撸一段Verillog代码,最好用Modelsim仿真过这样可以直接在Simplies里面仿真其输出波形做对比。以下为Verilog 分频代码

`timescale 1ns / 1ps

`define div_width 16

`define Counter_rst 16'h0000

module divider(

    //设置输入时钟

    input in_clk,

    //设置分频比例

    input [`div_width-1:0]div_ratio,

    //输入复位信号

    input rst,

    //设置输出时钟

    output reg out_clk

);

//定义上升沿下降沿触发计数器

reg [`div_width-1:0]Counter;

initial begin

    //初始化Counter

    Counter<=`Counter_rst;

    out_clk<=1'b0;

end

//设置上升沿计数

always@( posedge in_clk or negedge rst) begin

    if(!rst)begin

        Counter<=`Counter_rst;

        out_clk<=1'b0;

    end

    else begin

        //如果Counter值小于 (div-1)*2 那么就自加1,否则就置0

        Counter<=((Counter<=(div_ratio-1)*2)?(Counter+1'b1):`Counter_rst);

        //如果Counter<=(div_ratio-1)那就置1,否则就置0

        out_clk<=(Counter<=(div_ratio-1)?1'b1:1'b0);

    end

end

endmodule

 

 

代码1:分频器

152429o8mf2f2l5v93r0tm.png

图1:分频器

152429f94ccr3223c2mrcd.png

图2:Simplies启动页面

启动simplies,create new schematic,新建 schematic 后找到Verilog 选择 construct Verilog-hdl symbol 选择你的.V文件。直接就会构建一个module名称一样的器件。

152429jkmpyqv32j92vqtt.png

图3:构建Verilog 模块

152429rljulthmihilmi4f.png

图4:在原理图上放置Verilog模块

152429a0uozyl5jo0y1a00.png

图5:放置 digital constant 给divider赋值

用bus ripper 将digital constant 变成一个总线

152429jz4vksdgvpt48cm8.png

图6:仿真结果

今天就先聊到这了,拜拜!

参考文档

Verilog 数字系统设计教程 –夏宇闻

SIMetrix – Simplies Users Manual

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

回复评论 (2)

谢谢分享:)

加油!在电子行业默默贡献自己的力量!:)
点赞  2022-9-26 17:41
引用: soso 发表于 2022-9-26 17:41 谢谢分享:)

感谢捧场,🙏🦀️🦀️

希望做一些大家觉得好用的东西!
点赞  2022-9-26 22:08
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复