首页 > 其他分享 >Verilog与数电[4]-点灯

Verilog与数电[4]-点灯

时间:2022-10-15 22:11:49浏览次数:77  
标签:count 点灯 数电 value 硬件 Verilog 网表 reg

硬件

SiPeed Tang-Primer-20k开发板

点灯

[https://wiki.sipeed.com/hardware/zh/tang/tang-primer-20k/examples/led.html]
candy1.v

//点灯
module led(
    input  Clock,
    output IO_voltage
);

/**********计时部分**********/
//parameter Clock_frequency = 27_000_000; // 时钟频率为27Mhz
parameter count_value       = 13_499_999; // 计时 0.5S 所需要的计数次数

reg [23:0]  count_value_reg ; // 计数器
reg         count_value_flag; // IO 电平翻转标志

always @(posedge Clock) begin
    if ( count_value_reg <= count_value ) begin //没有计数到 0.5S
        count_value_reg  <= count_value_reg + 1'b1; // 继续计数
        count_value_flag <= 1'b0 ; // 不产生翻转标志
    end
    else begin //计数到 0.5S 了
        count_value_reg  <= 23'b0; // 清零计数器,为重新计数最准备
        count_value_flag <= 1'b1 ; // 产生翻转标志
    end
end
reg IO_voltage_reg = 1'b0; // 声明 IO 电平状态用于达到计时时间后的翻转,并赋予一个低电平初始态

/**********电平翻转部分**********/
always @(posedge Clock) begin
    if ( count_value_flag )  //  电平翻转标志有效
        IO_voltage_reg <= ~IO_voltage_reg; // IO 电平翻转
    else //  电平翻转标志无效
        IO_voltage_reg <= IO_voltage_reg; // IO 电平不变
end


/**********补充一行代码**********/
assign IO_voltage = IO_voltage_reg;

endmodule

保存文件后点击左下Process,右击Synthesize->Run进行综合生成综合网表

网表通常传递了电路连接方面的信息,例如模块的实例、线网以及相关属性。如果需要包含更多的硬件信息,通常会使用硬件描述语言,例如Verilog、VHDL或其他的专用语言来进行描述、验证和仿真。高抽象层次(如寄存器传输级)的硬件描述可以通过逻辑综合转换为低抽象层次(逻辑门级)的电路连线网表,这一步骤目前可以使用自动化工具完成,这也大大降低了设计人员处理超大规模集成电路的繁琐程度。硬件厂商利用上述网表,可以制造具体的专用集成电路或其他电路。一些相对较小的电路也可以在现场可编程逻辑门阵列上实现。



点击 Synthesize 上面的 FloorPlanner 来进行管脚约束



完成约束后就要开始运行布局布线了,目的是为了把综合所生成的网表与我们自己定义的约束来通过 IDE 算出最优解然后将资源合理地分配在 FPGA 芯片上。
双击Place&Route

使用高云云源编程器教育版进行烧录,
接线说明:

接线有些费事,一定要注意丝印的示意图,别接反了

标签:count,点灯,数电,value,硬件,Verilog,网表,reg
From: https://www.cnblogs.com/qsbye/p/16795142.html

相关文章

  • Verilog与数电[3]-波形图
    保命声明:笔者在校属于中低水平学生,代码能力有限,若行文中有错漏之处欢迎大家指出。在线小工具在线波形图查看[https://wavedrom.com/editor.html]Verilog刷题网站[http......
  • Verilog中assign的使用
    assign相当于连线,一般是将一个变量的值不间断地赋值给另一个变量,就像把这两个变量连在一起,所以习惯性的当做连线用,比如把一个模块的输出给另一个模块当输入。assign的功能......
  • 如何在macOS上使用vivado的部分功能:利用vs code进行verilog代码编写,使用vivado的替代
    首先要说明本文介绍的是如何使用vivado的替代品在macOS上实现vivado的部分功能:verilog代码编写,仿真(simulation)和生成波形图。而并没有成功安装vivado。 刚开始为了实现......
  • Verilog 学习笔记
    这篇文章仅记录了一些本人在修读课程「数字逻辑与计算机组成实验」时自学Verilog留下的一些笔记和备忘,不是一则教程,也不能作为教程使用,因此不可避免的含有大量缺乏例子,......
  • HDLBits-Verilog Practice-1-Getting started -> Circuits.Combinational Logic
    注:建议使用Ctrl+F利用关键词、题号、题目名称查阅本文内容笔记内容本文范围Gettingstarted->Circuits.CombinationalLogic网页本身给出的语法点,和一些语法......
  • HDLBits-Verilog Practice-2-Circuits.Sequential Logic -> Circuits.More Circuits
    注:建议使用Ctrl+F利用关键词、题号、题目名称查阅本文内容笔记内容本文范围Circuits.SequentialLogic->Circuits.MoreCircuits网页本身给出的语法点,和一些......
  • Verilog中端口的连接规则
    摘自于(15条消息)Verilog中端口应该设置为wire形还是reg形_CLL_caicai的博客-CSDN博客,以及(15条消息)Verilog端口连接规则_「已注销」的博客-CSDN博客_verilog端口连接......
  • 通用串行异步收发器8251的VerilogHDL源代码
     /*****************************************************************************通用串行异步收发器8251的VerilogHDL源代码***************************************......
  • GPIO点灯工程的详解
    GPIO点灯工程的实现1、时钟的选择BYPASSClockSource(旁路时钟源)指无需使用外部晶体时所需的芯片内部时钟驱动组件,直接从外界导入时钟信号。Crystal/CeramicResonat......
  • verilog的signed和unsigned
    数字IC秋招面试专题(二)verilog的signed和unsigned前言一、右值按signed还是unsigned二、signed的自动扩位三、系统函数$signed和$unsigned总结前言如果用veri......