Reborn Lee

思路清晰,身体轻松,方有目标。

【Verilog HDL 训练】第 13 天(存储器、SRAM)

存储器。 1. rom,ram,flash,ddr,sram,dram,mram..列举并解释一下这些名词。 2. 用verilog实现一个深度为16,位宽8bit的单端口SRAM。搭建一个仿真环境,完成初始化,读取,写入的操作。 3. 接第2题,如果同时对一个地址进行读和写操作,会怎样...

2019-05-18 18:11:09

阅读数 16

评论数 0

// synopsys_translate_off,parallel_case 和 full_case

下面这段话是在别人的博文下引导语句“// synopsys translate_off”找到的,它针对的是综合软件Synopsys: 以前一直没弄懂,以为就是个简单的注释完事,原来还可以用来引导综合过程: 设计者在写设计代码时,有时可能针对仿真写一些语句,这些语句可能是不为DC所接受,也不希望...

2019-05-18 14:07:25

阅读数 3

评论数 0

算术运算的RTL代码规则总结

这篇博文是上篇博文:【Verilog HDL 训练】第 12 天(数据通路)的指导规则。 对有符号数以及无符号数运算的一些指导规则。 注:英文为原文,中文为个人认为重要的总结。 1. Signed Arithmetic • Rule: Use type 'signed' (VHDL, Ve...

2019-05-16 11:03:52

阅读数 20

评论数 2

【Verilog HDL 训练】第 12 天(数据通路)

数据通路。 y = func(a,b) func可以是加法,减法,乘法,比较,移位,舍入,饱和等。 分别针对有符号数,无符号数的情况。 提示:可以参考synopsys的一篇文档 https://t.zsxq.com/QF6QNju 加法: 对于无符号数而言: module arit...

2019-05-15 23:07:06

阅读数 21

评论数 0

【Verilog HDL 训练】第 11 天(分频电路)

设计一个占空比50%的三分频电路。 针对这个分频器,博文的末尾会给出一个反面教材,这是我上次写的一个分频器,看起来很好,其实是不能综合的。针对其中的错误,我令立博文记录之:【 Verilog 】always@()的敏感源中为什么不能双边沿触发?为什么不能双时钟触发? 感谢学习道路上的前辈给予的...

2019-05-15 16:21:48

阅读数 30

评论数 0

【 Verilog 】always@()的敏感源中为什么不能双边沿触发?为什么不能双时钟触发?

最近用Verilog HDL设计了一个小电路,一个3分频的电路,用的是我刚接触FPGA时,别人告诉我的思路,没想到今天才发现有大问题? 如下: module Freq_divide( input clk, input rst_n, output reg clk_divide ...

2019-05-15 15:47:25

阅读数 20

评论数 0

SPI 2 - A simple implementation

ARM processor To get an opportunity to test our newly acquired SPI knowledge, we use aSaxo-Lboard. It has an ARM7 processor (LPC2138) and a Cyclone ...

2019-05-09 09:56:10

阅读数 28

评论数 0

【Verilog HDL 训练】第 10 天(PWM 呼吸灯)

5月8日 PWM 用verilog实现PWM控制呼吸灯。呼吸周期2秒:1秒逐渐变亮,1秒逐渐变暗。系统时钟24MHz,pwm周期1ms,精度1us。 今天的题目我是第一次见,答案借鉴大神的:Verilog没有葵花宝典打卡day10.md 简述PWM PWM——脉宽调制信号(Pulse W...

2019-05-08 20:59:19

阅读数 93

评论数 1

边沿检测与信号同步?

关于边沿检测,之前写过的博文不下于3篇了,个人感觉是十分重要的。 今天重新来谈边沿检测,是对边沿检测的一个认识的提升,同时提出自己的疑问?最后提出自己的观点,以及给出其一个简单应用,通过实践,可以看出边沿检测可以对信号进行同步(本测试,用的是慢时钟信号)。 下面是具体笔记: 边沿检测的学问 ...

2019-05-08 17:09:46

阅读数 32

评论数 0

SPI 1 - What is SPI?

SPI is a simple interface that allows one chip to communicate with one or more other chips. How does it look? Let's start with a simple example whe...

2019-05-08 14:52:49

阅读数 15

评论数 0

【Verilog HDL 训练】第 09 天(按键消抖)

5月7日 按键防抖 1. 用verilog实现按键抖动消除电路,抖动小于15ms,输入时钟12MHz。 在编写Verilog代码之前,先分析下一些前提问题,首先是几个按键(1个,多个),我们以1个和三个为例; 其次是算下按键按下后计数多少后,采样按键值,这个需要简单的运算:输入时钟为12M...

2019-05-07 19:59:02

阅读数 57

评论数 0

【Verilog HDL 训练】第 08 天(二进制、Johnson、环形计数器)

5月6日 计数器 1. 用verilog实现一个4bit二进制计数器。 a) 异步复位 b) 同步复位 input clk, rst_n; output [3:0] o_cnt; Verilog实现代码: module count_2( input clk, inpu...

2019-05-06 15:40:44

阅读数 67

评论数 2

Verilog 中的 function

函数的目的是返回一个用于表达式的值。定义函数的语法: function <返回值的类型或范围>函数名; <端口说明语句> <变量类型说明语句> begin <语句&g...

2019-05-04 15:10:03

阅读数 23

评论数 0

Verilog 中的 ^ 的用法

复习函数和任务中总遇到^,让我疑惑, cal_parity = ^address; 这个不是异或吗?怎么可以这么用呢? 难道意思是:cal_parity = cal_parity ^ address(类似于C语言),事实还真不是! 这里就来总结下^的用法: (1)奇偶判断 ^a操作就是...

2019-05-04 15:07:09

阅读数 116

评论数 0

Verilog 中的移位(算术移位, 逻辑移位, 循环移位)

(1)>>>(算术右移)与>>(逻辑右移)的区别: 逻辑右移就是不考虑符号位,右移一位,左边补零即可。算术右移需要考虑符号位,右移一位,若符号位为1,就在左边补1,;否则,就补0。 所以算术右移也可以进行有符号位的除法,右移,...

2019-05-04 14:57:21

阅读数 115

评论数 0

Verilog中的二维数组及其初始化

Verilog中的二维数组 Verilog中提供了两维数组来帮助我们建立内存的行为模型。具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问。这样的数组的定义方式如下: reg [wordsize : 0] array_name [0 : ar...

2019-05-04 00:00:13

阅读数 92

评论数 0

Verilog系统函数(一) $display

Verilog系统函数$display 参考:FPGA篇(四)Verilog系统函数介绍($display,$fopen,$fscanf,$fwrite($fdisplay),$fclose,$random,$stop) 下面代码截自仿真文件部分: reg flag; //---...

2019-05-03 23:48:21

阅读数 31

评论数 0

【Verilog HDL 训练】第 07 天(串并转换)

串并转换 1. 复习verilog语法 【选做题】 - 文件操作fopen fdisplay fwrite fclose - 生成随机数 random - 初始化 readmemh readmemb - finish stop 这几个我真没用过,先给一个优秀的链接:FPGA篇(四)Ve...

2019-05-03 17:49:25

阅读数 135

评论数 0

【Verilog HDL 训练】第 06 天(边沿检测)

1. 复习verilog语法 【选做题】 - reg和wire的区别 寄存器数据类型 Verilog中规定,凡是在程序块中被赋值的变量,都必须是寄存器类型的。(程序块:例如always块) 这里未免还是会让人产生疑惑?寄存器数据类型的变量最后一定会被综合成寄存器吗? 对应于实际的数字...

2019-04-29 10:44:03

阅读数 88

评论数 0

使用握手协议的方式处理跨时钟域传输问题

所谓握手,即通信双方使用了专用控制信号进行状态指示,这个控制信号既有发送域给接受域的也有接收域给控制域的,有别于单向控制信号方式。 使用握手协议方式处理跨时钟域数据传输时,只需要对双方的握手信号(req 和 ack)分别使用脉冲检测方法进行同步,在具体实现中,假设req ,ack, data,总线...

2019-04-28 22:46:02

阅读数 28

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭