greatwp
驱动牛犊
驱动牛犊
  • 注册日期2001-12-07
  • 最后登录2005-10-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2086回复:18

verilog

楼主#
更多 发布于:2002-12-31 10:47
某个时钟clk的上升沿和下降沿都触发数据,需要一个程序,这个程序要求用ckl1的上升沿来触发这个数据。我怎么创建出这个时钟clk1啊。
wp
green_pine
驱动太牛
驱动太牛
  • 注册日期2002-10-22
  • 最后登录2019-06-10
  • 粉丝3
  • 关注0
  • 积分48分
  • 威望599点
  • 贡献值1点
  • 好评度144点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-01-02 16:32
verilog不会,vhdl到是不难实现
mustang
驱动小牛
驱动小牛
  • 注册日期2002-05-17
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-02 16:50
不难,VHDL很容易就能够实现,VERILOG应该也很方便,我想随便一本有例子的参考书上就可以找得到。
green_pine
驱动太牛
驱动太牛
  • 注册日期2002-10-22
  • 最后登录2019-06-10
  • 粉丝3
  • 关注0
  • 积分48分
  • 威望599点
  • 贡献值1点
  • 好评度144点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-01-03 12:02
这种例子应该不多,因为一般不同时用上升和下降沿,一般的都是用一个边沿,我用vhdl做过双边沿的,但对你应该没用
greatwp
驱动牛犊
驱动牛犊
  • 注册日期2001-12-07
  • 最后登录2005-10-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-01-07 15:16
green_pine,你贴出来看看,为什么说没有用哪。多谢了。
wp
wuhao
驱动小牛
驱动小牛
  • 注册日期2002-06-14
  • 最后登录2005-02-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-01-07 15:29
这是个小问题,去www.altera.com有类同的例子








------------------
解决问题后加点分?
green_pine
驱动太牛
驱动太牛
  • 注册日期2002-10-22
  • 最后登录2019-06-10
  • 粉丝3
  • 关注0
  • 积分48分
  • 威望599点
  • 贡献值1点
  • 好评度144点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2003-01-07 17:53
green_pine,你贴出来看看,为什么说没有用哪。多谢了。

那个例子是很早以前写的,明天我给你找找,贴出来,之所以说没用是因为用vhdl写的,不是用verilog
green_pine
驱动太牛
驱动太牛
  • 注册日期2002-10-22
  • 最后登录2019-06-10
  • 粉丝3
  • 关注0
  • 积分48分
  • 威望599点
  • 贡献值1点
  • 好评度144点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2003-01-08 08:40
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY EXAM IS
PORT(CLK:IN STD_LOGIC;
     wr:in std_logic;
     reset:in std_logic;
     en:in std_logic;
     data:in std_logic_vector(5 downto 0);
       out1:OUT STD_LOGIC_vector(5 downto 0));
END EXAM;

ARCHITECTURE FUNC OF EXAM IS
SIGNAL TEMP1,TEMP2 :std_logic_vector(5 downto 0);
signal flag1:std_logic:=\'0\';
signal flag2:std_logic:=\'0\';
signal  out2:std_logic_vector(5 downto 0);
begin
out1<=out2;
l1:process(clk,reset)
begin
if(reset=\'1\')then
temp1<=(others=>\'0\');
elsif(clk\'event and clk=\'1\') then
    if wr=\'1\' then
if flag2=\'0\' then
  temp1<=data;
      flag1<=\'1\';
else
 temp1<=(others=>\'0\');
end if;
else
   temp1<=temp1+1;
   flag1<=\'0\';
    end if;
end if;
end process;

l2:process(clk,reset)
begin
if(reset=\'1\') then
temp2<=(others=>\'0\');
elsif (clk\'event and clk=\'0\') then
   if wr=\'1\' then
      if flag1=\'0\' then
         temp2<=data;
         flag2<=\'1\';
       else
         temp2<=(others=>\'0\');
      end if;
   else
   temp2<=temp2+1;
   flag2<=\'0\';
   end if;
end if;
end process;
l3:process(clk,wr)
begin
if wr=\'1\' then
   out2<=data;
elsif(en=\'1\') then
   out2 <= out2;
elsif clk=\'1\' then
   out2 <= temp2 + temp1;
elsif clk=\'0\' then
   out2<=temp2+temp1;
end if;
end process;
end func;
这是一个双边沿的计数器,但是有毛刺,因为用到了+
wuhao
驱动小牛
驱动小牛
  • 注册日期2002-06-14
  • 最后登录2005-02-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-01-08 16:38
进程多,如配合不好,就会有毛剌.
wuhao
驱动小牛
驱动小牛
  • 注册日期2002-06-14
  • 最后登录2005-02-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-01-08 16:43
verilog,vhdl是不难实现,但它们编写的核就要比ahdl大3倍,所以就会有时间的延时,毛刺的产生.








---------------------
答的正确,加点分!!!!

greatwp
驱动牛犊
驱动牛犊
  • 注册日期2001-12-07
  • 最后登录2005-10-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-01-08 16:48
多谢green_pi了
wuhao,你能不能提供一个verilog的程序阿。
wp
wuhao
驱动小牛
驱动小牛
  • 注册日期2002-06-14
  • 最后登录2005-02-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-01-08 17:12
在高速处理事件时,一般不用Verilog语言,因为它的速度跟不上,有可产生各种自己想向不到的问题,向您这样用双边沿(上升沿和下降沿都触发器)实时性太强,数据是否正确这是您成功的关键,我都用的是ahdl语言写,而不用Verilog语言写.无法满定您的一个完整的例子.
greatwp
驱动牛犊
驱动牛犊
  • 注册日期2001-12-07
  • 最后登录2005-10-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-03-25 17:06
green_pine,能不能帮我讲解一下你的程序啊。
wp
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-03-26 09:53
在高速处理事件时,一般不用Verilog语言,因为它的速度跟不上,有可产生各种自己想向不到的问题,向您这样用双边沿(上升沿和下降沿都触发器)实时性太强,数据是否正确这是您成功的关键,我都用的是ahdl语言写,而不用Verilog语言写.无法满定您的一个完整的例子.

这个观点不能同意,目前绝大多数的asic设计都是使用verilog语言,并且速度越来越快,按照上面的观点,似乎都应该采用ahdl才对.实际上asic设计实现的速度主要和设计方法(不是指语言,是指在设计阶段就合理的使用资源),综合工具(如果是PLD,FPGA,就是要针对特定的器件的资源状况合理的优化设计)有关.
对于一个asic设计人员来说,使用怎样的设计语言是小问题,关键是看设计方法.
兄弟们,给点分吧
X_ray
驱动中牛
驱动中牛
  • 注册日期2003-02-03
  • 最后登录2004-07-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-03-26 11:01
[quote]在高速处理事件时,一般不用Verilog语言,因为它的速度跟不上,有可产生各种自己想向不到的问题,向您这样用双边沿(上升沿和下降沿都触发器)实时性太强,数据是否正确这是您成功的关键,我都用的是ahdl语言写,而不用Verilog语言写.无法满定您的一个完整的例子.

这个观点不能同意,目前绝大多数的asic设计都是使用verilog语言,并且速度越来越快,按照上面的观点,似乎都应该采用ahdl才对.实际上asic设计实现的速度主要和设计方法(不是指语言,是指在设计阶段就合理的使用资源),综合工具(如果是PLD,FPGA,就是要针对特定的器件的资源状况合理的优化设计)有关.
对于一个asic设计人员来说,使用怎样的设计语言是小问题,关键是看设计方法. [/quote]

verilog的延时结果不可预见,AHDL更接近硬件延时清楚,所以wuhao的观点有一定的道理。
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-03-26 12:35
[quote][quote]在高速处理事件时,一般不用Verilog语言,因为它的速度跟不上,有可产生各种自己想向不到的问题,向您这样用双边沿(上升沿和下降沿都触发器)实时性太强,数据是否正确这是您成功的关键,我都用的是ahdl语言写,而不用Verilog语言写.无法满定您的一个完整的例子.

这个观点不能同意,目前绝大多数的asic设计都是使用verilog语言,并且速度越来越快,按照上面的观点,似乎都应该采用ahdl才对.实际上asic设计实现的速度主要和设计方法(不是指语言,是指在设计阶段就合理的使用资源),综合工具(如果是PLD,FPGA,就是要针对特定的器件的资源状况合理的优化设计)有关.
对于一个asic设计人员来说,使用怎样的设计语言是小问题,关键是看设计方法. [/quote]

verilog的延时结果不可预见,AHDL更接近硬件延时清楚,所以wuhao的观点有一定的道理。 [/quote]
延时特性不会因为换了一种语言的描述方法而改变,如果说换了verilog就无法预见只能说明对这种语言的熟悉程度有限.实际上几乎所有的ahdl语句在verilog中都能找到对应的描述方法,其他硬件描述语言也一样,同样的一个触发器不会因为用了ahdl而和verilog描述的触发器工作特性有所不同.改善时延特性的关键还是设计方法和综合工具.如果说同样的设计在altera的器件中实现ahdl比verilog要好的话,无非是altera的综合工具对ahdl的处理更完善(毕竟是亲生的).
兄弟们,给点分吧
X_ray
驱动中牛
驱动中牛
  • 注册日期2003-02-03
  • 最后登录2004-07-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-03-27 02:58
[quote][quote][quote]在高速处理事件时,一般不用Verilog语言,因为它的速度跟不上,有可产生各种自己想向不到的问题,向您这样用双边沿(上升沿和下降沿都触发器)实时性太强,数据是否正确这是您成功的关键,我都用的是ahdl语言写,而不用Verilog语言写.无法满定您的一个完整的例子.

这个观点不能同意,目前绝大多数的asic设计都是使用verilog语言,并且速度越来越快,按照上面的观点,似乎都应该采用ahdl才对.实际上asic设计实现的速度主要和设计方法(不是指语言,是指在设计阶段就合理的使用资源),综合工具(如果是PLD,FPGA,就是要针对特定的器件的资源状况合理的优化设计)有关.
对于一个asic设计人员来说,使用怎样的设计语言是小问题,关键是看设计方法. [/quote]

verilog的延时结果不可预见,AHDL更接近硬件延时清楚,所以wuhao的观点有一定的道理。 [/quote]
延时特性不会因为换了一种语言的描述方法而改变,如果说换了verilog就无法预见只能说明对这种语言的熟悉程度有限.实际上几乎所有的ahdl语句在verilog中都能找到对应的描述方法,其他硬件描述语言也一样,同样的一个触发器不会因为用了ahdl而和verilog描述的触发器工作特性有所不同.改善时延特性的关键还是设计方法和综合工具.如果说同样的设计在altera的器件中实现ahdl比verilog要好的话,无非是altera的综合工具对ahdl的处理更完善(毕竟是亲生的). [/quote]

没错,C语言中还可以嵌入ASM呢,但那不是本质的C。
jzt369
驱动牛犊
驱动牛犊
  • 注册日期2003-03-27
  • 最后登录2005-03-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-03-28 11:05
系统运行速度的快慢,全在于你的设计方法及开发工具综合布线器的性能和使用,我认为与具体使用的语言无关。其实,verilog可以实现RTL描述,altera公司的AHDL就是RTL描述语言(他也支持门级描述),用AHDL语言写起来比较累,而且移植性不好!还是用verilog开发比较好,言简意赅!在编写速度要求很高的程序时,最好少用行为描述语句!
hwzhou
驱动小牛
驱动小牛
  • 注册日期2003-01-28
  • 最后登录2004-06-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-03-29 10:23
现在,许多FPGA和CPLD内部都具有PLL电路,因此对于高速应用场合,以及需要用到上升和下降沿触发的时钟,通常都会使用PLL产生内部时钟以及相位差180度的时钟,从而使需要用到下降沿的时钟还是使用了上升沿。从FPGA的数据手册中可以看到,是否使用PLL对速度还是有一定的影响。
游客

返回顶部