S
sammyt09
Guest
Hola,
Tengo una breve pregunta en relación a algunos de verilog sinc3 decimación filtro.
En el código, creo 2s complemento se está utilizando en el proceso de acumulación,
sin embargo, yo te comprendo perfectamente lo que está sucediendo.Como no tengo un simulador verilog en este momento, estoy esperando que alguien podría explicar a mí.La relativa partes del código en cuestión es la siguiente:
-----
/ * Definiciones * /
mdata1 de entrada;
reg [23:0] ip_data1;
reg [23:0] acc1;
reg [23:0] ACC2;
reg [23:0] acc3;
/ * Cambio de un 0 a un -1 para
la comp 2 * /
siempre @ (mdata1)
if (mdata1 == 0)
ip_data1 <= 0;
algo más
ip_data1 <= 1;
/ * Acumulación etapa * /
siempre @ (posedge mclk1 o posedge reset)
if (reset) comenzar
/ *
Inicialización de los registros según el restablecimiento * /
acc1 <= 0;
ACC2 <= 0;
acc3 <= 0;
final
más comenzar
/ * realizar proceso de acumulación * /
acc1 <= acc1 ip_data1;
ACC2 <= ACC2 acc1;
acc3 <= acc3 ACC2;
final
------------
(Tenga en cuenta, el código completo de verilog puede encontrarse aquí: http://www.analog.com/static/imported-files/data_sheets/AD7401A.pdf)
MI PREGUNTA:
Si 2s complemento se está utilizando, ¿por qué es' ip_data1 'se define como cualquiera de'0' o'1 '?Supuse que tendría que ser'00 .... 01 'o «11 .... 11',
es decir, más o menos 1 utilizando notación complemento 2s.
Si 'ip_data1' es'0 'o'1' el acumulador seguramente sólo se acumulan hacia arriba y nunca puede ser negativo.En cuyo caso, no es 2s complemento a todos los (?)
Si alguien puede ayudarme en mi comprensión de este fragmento de código,
estaría muy agradecido.Como digo, no tengo un simulador availalable en esta etapa, de lo contrario podría haber figurado esto yo mismo.
Muchas gracias de antemano!
sammyt09
Tengo una breve pregunta en relación a algunos de verilog sinc3 decimación filtro.
En el código, creo 2s complemento se está utilizando en el proceso de acumulación,
sin embargo, yo te comprendo perfectamente lo que está sucediendo.Como no tengo un simulador verilog en este momento, estoy esperando que alguien podría explicar a mí.La relativa partes del código en cuestión es la siguiente:
-----
/ * Definiciones * /
mdata1 de entrada;
reg [23:0] ip_data1;
reg [23:0] acc1;
reg [23:0] ACC2;
reg [23:0] acc3;
/ * Cambio de un 0 a un -1 para
la comp 2 * /
siempre @ (mdata1)
if (mdata1 == 0)
ip_data1 <= 0;
algo más
ip_data1 <= 1;
/ * Acumulación etapa * /
siempre @ (posedge mclk1 o posedge reset)
if (reset) comenzar
/ *
Inicialización de los registros según el restablecimiento * /
acc1 <= 0;
ACC2 <= 0;
acc3 <= 0;
final
más comenzar
/ * realizar proceso de acumulación * /
acc1 <= acc1 ip_data1;
ACC2 <= ACC2 acc1;
acc3 <= acc3 ACC2;
final
------------
(Tenga en cuenta, el código completo de verilog puede encontrarse aquí: http://www.analog.com/static/imported-files/data_sheets/AD7401A.pdf)
MI PREGUNTA:
Si 2s complemento se está utilizando, ¿por qué es' ip_data1 'se define como cualquiera de'0' o'1 '?Supuse que tendría que ser'00 .... 01 'o «11 .... 11',
es decir, más o menos 1 utilizando notación complemento 2s.
Si 'ip_data1' es'0 'o'1' el acumulador seguramente sólo se acumulan hacia arriba y nunca puede ser negativo.En cuyo caso, no es 2s complemento a todos los (?)
Si alguien puede ayudarme en mi comprensión de este fragmento de código,
estaría muy agradecido.Como digo, no tengo un simulador availalable en esta etapa, de lo contrario podría haber figurado esto yo mismo.
Muchas gracias de antemano!
sammyt09