我认识到的VHDL代码

D

DoraSzasz

Guest
您好...我想要的代码,在赛灵思....我认识到VHDL代码,但我不知道訾Verilog中...

以下是代码....但我在柜台的问题...经过10年的计数器显示10个小数目
, 前数....

图书馆ieee;
使用ieee.std_logic_1164.all;
使用ieee.std_logic_arith.all;
使用ieee.std_logic_unsigned.all;

实体计数器
港口(enable1在锁相环:;
时钟:在位;
复位,reset1:在位;
bcd_d:出std_logic_vector(7 downto 0));

结束计数器;

反拱结构是
信号qint,qint1:std_logic_vector(3 downto 0);
信号full1:锁相环;
开始

CNT1:过程(enable1,时钟,复位)

-声明

开始
如果复位= '1',那么
qint“=(其他=”'0');
elsif时钟= '1',然后和clk'event
如果enable1 = '1',那么
如果qint(0)= '1'和qint(3)= '1',那么

full1“= '1';

qint“=(其他=”'0');

其他的
qint“= qint 1;
full1“= '0';
如果结束;
如果结束;
如果结束;
bcd_d(3 downto 0)“= qint;
结束进程;

CNT2:过程(full1,时钟,reset1)
开始
如果reset1 = '1'当时
qint1“=(其他=”'0');
elsif时钟= '1',然后和clk'event
如果full1 = '1',那么
如果qint1(0)= '1'和qint1(3)= '1',那么
qint1“=(其他=”'0');

其他的
qint1“= qint1 1;

如果结束;
如果结束;
如果结束;
bcd_d(7 downto 4)“= qint1;
结束进程;
结束拱;

你能谮用Verilog和纠正这一错误?
谢谢了很多!

 
如果我知道你正确
, 您已经有了一个漂亮的
常见错误:
你想一个动作时

如果qint(0)= '1'和qint(3)= '1',那么
FF

但是你注册 full1
这种情况法郎
那么你的逻辑'其他地方看到'一个时钟的条件
周期的后期;
要么改变qint套价值从full1
'9'到'8'或更改full1从触发器的组合逻辑;
看看波形重视活跃在full1
在我的示例代码[顶部]和你的代码[下]

本身的Verilog代码:
代码:

计数器模块



输入时钟,enable1,

输入复位,reset1,

输出[7:0] bcd_d

);第[3:0] qint,qint1;总是@(posedge时钟或posedge重置)

开始

如果(复位)qint“= 4'h0;

否则,如果(enable1)

如果(qint == 4'h9)qint“= 4'h0;

否则qint“= qint 4'h1;

否则qint“= qint;

末端丝full1 =(qint == 4'h9)?
1'b1:1'b0;总是@(posedge时钟或posedge reset1)

如果(reset1)qint1“= 4'h0;

否则,如果(full1)

如果(qint1 == 4'h9)qint1“= 4'h0;

否则qint1“= qint1 4'h1;

否则qint1“= qint1;分配bcd_d =(qint1,qint);endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top